Brewblox assistence

My very basic experience with the relay controllers, is I have 4x and 4x show up but if I disconnect 3x so I can isolate and identify, all 4x still how up under the Blocks > Services page. If possible, and if someone is willing I would like to learn from the group for how and what they have setup in their systems under the new software so I can learn from you guys for how you have been integrating and testing the new software. TIA.

Will a re-fresh of the block/page or a reboot of the brewpi not show you only the connected devices? I had notes of the ID numbers of each of by relay control boards and of the ports each things was connected to from when I initially assembled my fridges.

My graphs have all just stopped loading. status in brewblox_ctl is showing all services as up and I’m still getting values for individual blocks. I’m guessing the history service may have fallen over but isn’t showing as down. Whats the best way to check and give you useful info on what went wrong @Elco and @Bob_Steers? Are there logs that would be useful? Is the easiest way for me to get things working again just stop and restart everything with brewblox_ctl?

brewblox-ctl log will do a full dump, and offer to do a termbin upload.

Meanwhile, some steps you could take to spot errors are:

  • force refresh the page if you’ve updated recently, to avoid browser cache issues (ctrl+f5).
  • check the network tab in your browser’s developer tools (ctrl+shift+I in chrome/firefox). When refreshing a page with graphs in it, does it have any failed requests?
  • if you run docker-compose ps, what is the up time for the history / influx services? If they’re much shorter than the others, it means the service crashed and restarted.
  • docker-compose logs influx history will print the logs for just the influx and history services.
  • (advanced) docker-compose exec influx influx will bring up the native InfluxDB CLI, if you suspect missing / malformed data.

Logs are here. I notice there’s memory warnings from eventbus. Possible memory leak?

ctrl + shift + r didn’t help.

No errors in the console. No failed network requests.Though the request to _changes on the data store seems to be remaining open. Not sure if that’s just streaming data.

docker-compose ps doesn’t include the uptime. Only shows that everything is up (including influx & history).

Warnings in logs for influx & history:

history_1    | /usr/local/lib/python3.7/site-packages/aioinflux/compat.py:11: UserWarning: Pandas/Numpy is not available. Support for 
'dataframe' mode is disabled.
history_1    |   warnings.warn(no_pandas_warning)

and

history_1    | /usr/local/lib/python3.7/site-packages/brewblox_service/events.py:240: UserWarning: Connection error in <EventListener 
for "eventbus">: <class 'ConnectionRefusedError'>:[Errno 111] Connect call failed ('172.22.0.5', 5672)
history_1    |   warnings.warn(f'Connection error in {self}: {type(ex)}:{ex}')

Guessing they’re not critical, given they’re just listed as warnings.

I’ve not dived into the InfluxDB CLI yet in case there’s enough info above.

Worth nothing this all started happening a few hours ago. Around 10:30 UTC/local. Graphs were displaying fine first thing this morning.

Sorry. I forgot the log link https://termbin.com/ru62

‘docker ps’ shows the up time

pi@raspberrypi:~/brewblox $ docker-compose ps
        Name                      Command               State                    Ports
--------------------------------------------------------------------------------------------------------
brewblox_datastore_1   tini -- /docker-entrypoint ...   Up      4369/tcp, 5984/tcp, 9100/tcp
brewblox_eventbus_1    docker-entrypoint.sh rabbi ...   Up      25672/tcp, 4369/tcp, 5671/tcp, 5672/tcp
brewblox_history_1     python3 -m brewblox_history      Up      5000/tcp
brewblox_influx_1      /entrypoint.sh influxd           Up      8086/tcp
brewblox_mdns_1        python3 -m brewblox_mdns         Up
brewblox_spark-one_1   python3 -m brewblox_devcon ...   Up      5000/tcp
brewblox_traefik_1     /traefik -c /config/traefi ...   Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
brewblox_ui_1          nginx -g daemon off;             Up      80/tcp
pi@raspberrypi:~/brewblox $ docker ps
CONTAINER ID        IMAGE                                     COMMAND                  CREATED             STATUS              PORTS                                      NAMES
cc10a679cb4e        brewblox/brewblox-history:rpi-edge        "python3 -m brewblox…"   29 minutes ago      Up 29 minutes       5000/tcp                                   brewblox_history_1
0aea32f1ec29        brewblox/brewblox-devcon-spark:rpi-edge   "python3 -m brewblox…"   29 minutes ago      Up 29 minutes       5000/tcp                                   brewblox_spark-one_1
5a6934cc06ab        arm32v6/rabbitmq:alpine                   "docker-entrypoint.s…"   29 minutes ago      Up 29 minutes       4369/tcp, 5671-5672/tcp, 25672/tcp         brewblox_eventbus_1
ff13495ed1f7        arm32v6/traefik                           "/traefik -c /config…"   29 minutes ago      Up 29 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   brewblox_traefik_1
db6f87701464        treehouses/couchdb                        "tini -- /docker-ent…"   29 minutes ago      Up 29 minutes       4369/tcp, 5984/tcp, 9100/tcp               brewblox_datastore_1
2f936b96492e        brewblox/brewblox-mdns:rpi-edge           "python3 -m brewblox…"   29 minutes ago      Up 29 minutes                                                  brewblox_mdns_1
122a59cb2710        brewblox/brewblox-ui:rpi-edge             "nginx -g 'daemon of…"   29 minutes ago      Up 29 minutes       80/tcp                                     brewblox_ui_1
63de526cd0f2        influxdb                                  "/entrypoint.sh infl…"   29 minutes ago      Up 29 minutes       8086/tcp                                   brewblox_influx_1

Thanks. All have been up 6 days.

Datastore indeed keeps an open connection to check for remote changes. If you have two pages open, you’ll see changes replicate.

The history and connection error warnings are to be expected. Our Influx client library has an optional dependency on the (very heavy) pandas / NumPy libraries.
The Spark service starts faster than the RabbitMQ eventbus, and has to retry its connection a few times.

In your logs, I do see the eventbus complaining about memory usage. If you run docker stats or htop, does it show something hogging all your RAM?

Edit: if RAM is full, or eventbus is the culprit, you can try restarting the eventbus with docker-compose restart eventbus. This may cause normal data publishing to resume.

docker stats has 0 for everything in memory. htop seems to be showing rabbitmq eating 40% memory and going in to swap

Best restart the eventbus then, and check whether the issue persists. (docker-compose restart eventbus)

Thanks. Getting data back in the graphs now but looks like it’s lost the datapoints during the period while rabbitmq was unhappy.

Publishing data points indeed is a fire and forget action for the spark service. That way we can keep as much as possible working if one thing fails.

I’ll do some digging in RabbitMQ configuration, see whether I can improve behavior somewhat.

Thanks for the help!

Hello. Another more feature request. Again, not a high priority one. Would it be possible to indicate blocks with an output to shown as inactive if that output is not used? e.g. if I have both a profile setpoint and regular setpoint for my beer, the regular setpoint is shown as inactive whilst my setpoint pair is using my profile setpoint and visa versa. There might be other suitable ways of indicating when a block isn’t in use instead.

Sorry. Another feature request. The profile block doesn’t seem to have any indicator where along the profile its up to. Would it be possible to add a vertical line or other marker to track that?

First issue (displaying if output is not used) is something semi-related to some other features we’re working on (displaying the chain of which block is driving what). We can have a look at also improving UX here when we’re implementing that.

I think the second one should be pretty straightforward.

Could you please make an issue for both on github, then we’ll see where and how we can schedule them.

Sorry. Just got home. Are these both best in the -ui repo?

Yes, they’re both UI issues.

So I just got the brewblox going on my new brewpi spark. Looks like I have the brewpi dashboard up and running, my question can I change units to °F. Can’t for the love of me see where I do that.