Opened 16 months ago
Closed 16 months ago
#168 closed enhancement (fixed)
Add Monitoring feature to BNC with Prometheus
Reported by: | Owned by: | stuerze | |
---|---|---|---|
Priority: | normal | Component: | BNC |
Version: | Keywords: | ||
Cc: |
Description
BNC is able to write several logs.
It would be nice if BNC would have the ability to provide some life data over Prometheus. Within the BKG Ntrip Caster there is already such a feature.
Possibly data sources for PROM:
- bnc_main_info_cpu (version=2.13.01, pid=995889) ..
- bnc_main_info_ram (version=2.13.01, pid=995889) ..
- bnc_upload_eph (version=2.13.01, pid=995889) 5.3411 [MB]
- bnc_upload_ssr (...) ...
- bnc_stream_bytes (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01, decoder=RTCM_3.2, lat=47.07, lon=15.49, nmea=no, ntrip=2) = 14.659 [kB]
- bnc_stream_throughput (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01) = 15.623 [kbps]
- bnc_stream_latency_avg (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01, interval=10sec) 0.36 [sec]
- bnc_stream_latency_min (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01, interval=10sec) 0.25 [sec]
- bnc_stream_latency_max (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01, interval=10sec) 0.46 [sec]
- bnc_stream_latency_rms (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01, interval=10sec) 0.38 [sec]
- bnc_stream_latency_gap (uid=SRC01, source=ntrip://***:***@127.0.0.1:2101/SRC01, interval=10sec) 0
- bnc_stream_ppp_plot (...) ..
kind regards, Jürgen F.
Attachments (0)
Change History (7)
comment:1 by , 16 months ago
comment:2 by , 16 months ago
Dear Erwin!
Thanks for your answer! This would be an easier way to get the info from BNC. Let's say if you have multiple instances of BNC running on different servers, it is easier if you could collect the information via standardized parameters (PROM).
Kind regards, Jürgen
follow-up: 4 comment:3 by , 16 months ago
Then you would have an endpoint for every BNC instance. Not so practicable. On some machines we have more than 20 instances running.
We extract the metrics from the logs and store them in a central database (ETL). Then we use Grafana that reads from the DB and makes the visualisations/alerting.
Best regards, Erwin
comment:4 by , 16 months ago
Replying to wiese:
Then you would have an endpoint for every BNC instance. Not so practicable. On some machines we have more than 20 instances running.
We extract the metrics from the logs and store them in a central database (ETL). Then we use Grafana that reads from the DB and makes the visualisations/alerting.
Best regards, Erwin
Dear Erwin!
Having so many instances is no problem actually. If you have a good monitoring platform (Grafana, nagios, etc.) it does not matter how many instances/servers you're running. Good that you mentioned Grafana, we use it to for e.g. BNC's latency visualization. Ad ETL, I already built such process chain for BNC and that's why i mentioned Prometheus, since it is easy to integrate into Grafana, it comes with a Prometheus datasource. Configuring ETL processes for multiple instances and/or servers can be overwhelming too!
Kind regards, Jürgen
comment:5 by , 16 months ago
Yes in principle you can push to e.g. InfluxDB or Prometheus Pushgateway, or let Prometheus pull. If you are in the same network and your firewall allows. What is not the case for us. So we keep pushing...
comment:7 by , 16 months ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Dear Jürgen,
a prometheus endpoint is often provided by daemons like webserver (and caster) that are already accessable via http. Less for clients like BNC. We refer to the logs instead where latency information etc. is provided. If "Miscellaneous > Log latency" is selected.
cpu and ram of a process can be monitored by several monitoring solutions.
Best regards,
Erwin