27 Commits

Author SHA1 Message Date
Igor Sirotin
afe90a9d31
chore(metrics): sync fleet dashboards from Grafana (#4079)
Refreshed the two shared-Grafana dashboards and re-applied the old-or-new metric
name union from #4074, so the panels keep working across the rename.

  waku-fleet-dashboard.json         v181 -> v191
    drops the five deprecated Store v2 panels; the "Store V3 Times wire-to-wire"
    query moves to sum without (phase) and changes() instead of deriv(), which is
    the better staleness filter for a gauge that moves and returns
  waku-single-node-dashboard.json   v7 -> v9
    no functional change, a Grafana 12 re-save (pluginVersion, threshold base,
    schemaVersion 40 -> 41)

The $dc variable is populated from libp2p_peers rather than waku_version as the
export had it: libp2p_* comes from a dependency and is immune to our renames, so
it cannot rot the next time metrics are renamed. Grafana keeps variable queries
outside `expr`, so the #4074 union pass never saw this one.

Store/Archive is collapsed again, matching the other rows; the export had it open
because of whoever last hit save. "Store v3 query request rates" moves to x=0 to
fill the space left by deleting its v2 sibling.

The dashboards under apps/ are deliberately not synced. They are provisioned into
the docker-compose stacks that ship beside them (docker-compose.yml mounts
monitoring/configuration/dashboards into /var/lib/grafana/dashboards), so they
must match the local datasources.yaml and prometheus-config.yml, not status.prod.
The Grafana copies carry a datasource uid that the local stack does not provision
and job selectors that its single scrape job cannot match.
2026-07-30 16:42:39 +01:00
Igor Sirotin
8125cd0262
refactor(metrics): give every metric a logos_delivery_ prefix (#4074)
* refactor(metrics): prefix node metrics with logos_delivery_

Every metric the node exports now starts with logos_delivery_. There was no
prefix mechanism before: nim-metrics derives the exported name from the Nim
identifier, no declaration passed an explicit `name = "..."`, and the waku_
convention was maintained by hand -- 69 of the 80 node metrics followed it and
11 did not (query_count, query_time_secs, event_loop_load,
event_loop_accumulated_lag_secs, postgres_payload_size_bytes, reconciliation_*,
total_* and the camelCase rendezvousPeerFoundTotal).

Identifiers are renamed rather than given a `name = "..."` argument, keeping the
invariant that the Nim identifier is the exported name and letting the compiler
check every call site.

rendezvousPeerFoundTotal becomes logos_delivery_rendezvous_peer_found: it was the
only camelCase metric, and the trailing Total was redundant since nim-metrics
already appends _total to counters at exposition time.

library/ is untouched on purpose -- `proc waku_version()` in
kernel_api/debug_node_api.nim is the exported libwaku C ABI symbol, not the gauge
of the same name in node_telemetry.nim.

BREAKING CHANGE: metric names change. Dashboards, alert rules and recording rules
that reference waku_* must be updated; see docs/operators/how-to/monitor.md.

* refactor(metrics): prefix auxiliary app metrics with logos_delivery_

Applies the same prefix to the tools shipped from this repo: liteprotocoltester
(lpt_*), networkmonitor (networkmonitor_*), chat2bridge (chat2_*) and the
lightpush_mix example (lp_mix_*).

These tools are not the delivery node and already had their own consistent
prefixes, so this commit is separable from the node rename if the intent was to
namespace only the node itself.

* chore(metrics): query old and new metric names in Grafana dashboards

212 expressions across 9 dashboards now match both the waku_* and the
logos_delivery_* spelling, so panels keep working across the upgrade and over
historical data:

  sum by (type)((increase(waku_node_errors_total{...}[$__rate_interval])
              or increase(logos_delivery_node_errors_total{...}[$__rate_interval])))

The `or` is placed around the leaf, inside every aggregation. That depth is
load-bearing: `or` keeps its right operand only for label sets absent from the
left, so `sum by (type)(old) or sum by (type)(new)` aggregates each half of the
fleet separately and then discards the right one entirely -- silently dropping
every already-upgraded node. 36 panels here collapse `instance`.

Measured against a local Prometheus scraping two targets, one exporting old names
at 10/s and one exporting new names at 20/s (truth 30/s): union outside the
aggregation gives 10, union around the leaf gives 30.

Where the leaf sits in a range vector the whole call is duplicated, since
`(a or b)[5m]` is not valid PromQL.

Once every scraped node runs a release with the new names and the old samples
have aged out of retention, the `or` half can be deleted.

* test(e2e): expect logos_delivery_-prefixed metric names

The e2e suite asserts against a live /metrics endpoint, which serves only the new
names, so these are replaced rather than unioned. libp2p_* entries are unchanged.

* docs(operators): document the logos_delivery_ metric prefix

Records that every metric the node exports is prefixed, that dependency metrics
(libp2p_*, nim_gc_*, process_*) keep their own names, and shows where the `or`
has to sit if operators maintain their own dashboards or alert rules.

* refactor(metrics): name the store fleet metrics after store, not relay

logos_delivery_relay_fleet_store_msg_size_bytes and _msg_count are declared in
waku_store/protocol_metrics.nim and recorded by the store client, but carried a
relay prefix. Renamed to logos_delivery_store_fleet_msg_size_bytes and
logos_delivery_store_fleet_msg_count.

The dashboard keeps matching the old exported name, which was
waku_relay_fleet_store_*.

Note that both metrics are wrong independently of their name, see the PR
description.
2026-07-29 18:56:50 +01:00
Darshan K
04fdf0a8c1 chore: add missing metrics (#3565) 2025-09-26 03:30:55 +05:30
Prem Chaitanya Prathi
a27eec90d1 fix: use counter instead of gauge for metrics that only increase over time (#3355)
Co-authored-by: Ivan Folgueira Bande <ivansete@status.im>
2025-08-01 12:41:32 +02:00
Simon-Pierre Vivier
827aada89d fix store sync dashboard (#3508) 2025-07-16 16:12:13 -04:00
Simon-Pierre Vivier
0304f063b8 waku sync cached message metric (#3387) 2025-04-23 08:26:34 -04:00
Simon-Pierre Vivier
2f49aae2b7 feat: Waku Sync dashboard new panel & update (#3379) 2025-04-22 08:37:11 -04:00
Simon-Pierre Vivier
0369679704 feat: added store sync dashboard panel (#3307) 2025-03-20 15:32:35 -04:00
Darshan K
4f77bb21d1 chore: add two metrics and panal (#3181) 2024-12-04 17:11:41 +05:30
NagyZoltanPeter
7fee882533 Extend fleet dashboard with PeerExhcange metrics (#3056) 2024-09-25 11:56:47 +02:00
Ivan FB
96cc2f1b39 chore: Better database query logs and logarithmic scale in grafana store panels (#3048) 2024-09-20 17:43:56 +02:00
Ivan FB
1f768cb3e8 chore: extending store metrics (#3042)
* adding query_metrics module
* update fleet-dashboard with new store panels for better timing insight
2024-09-20 13:23:53 +02:00
NagyZoltanPeter
dabb4eb60a Update waku-fleet-dashboard from latest (v142) Grafana (#3025) 2024-09-10 10:02:21 +02:00
NagyZoltanPeter
b68cc07261 Distinction between gross/net trafic in bandwidth per shard metric, added bandwidths and request rate panels to single node and fleet dashboards (#2920) 2024-08-21 17:10:29 +02:00
Simon-Pierre Vivier
6b22823b64 feat: misc. updates for discovery network analysis (#2930)
added metrics, a way to start without RLN and a new avg latency algorithm
2024-08-07 14:58:28 -04:00
Anton Iakimov
40b687c0a5 chore: switch wakuv2 to waku fleet (#2519)
See https://github.com/status-im/infra-nim-waku/issues/91
2024-03-20 16:28:00 +01:00
Aaryamann Challani
d03f79e80b chore(rln-relay): update metrics dashboard (#1745) 2023-05-19 16:24:53 +05:30
Alvaro Revuelta
88dffc73d4 chore(metrics): add plot with traffic + update to latest grafana dashboard (#1433) 2022-11-29 16:15:55 +01:00
Alvaro Revuelta
6bc5aa81a5 chore(dashboard): Add network-monitor dashboard (#1401) 2022-11-21 10:07:43 +01:00
Aaryamann Challani
e00f9ac784 feat(rln-relay): add metrics dashboard (#1275)
* feat(rln-relay): add metrics dashboard

* feat(rln-relay): single node dashboard
2022-10-19 15:08:15 +05:30
Hanno Cornelius
02899d21aa chore: update existing Grafana dashboards (#1166) 2022-09-20 10:01:54 +01:00
Hanno Cornelius
9dbf4c209b Update default fleet metrics dashboard (#844) 2022-02-08 12:22:06 +01:00
Hanno Cornelius
5772831f4c Added waku fleet dashboard (#704) 2021-08-19 09:57:53 +02:00
Ebube Sered Ud
a6aceb2db4 Add Swap account Metrics to Grafana (#585)
* Fix gcsafe issues with log account metrics function

Signed-off-by: kripsonud <kripsonud@gmail.com>

* Change Line ending to LF

* Minor changes to waku_swap

* Mount keepalive on chat2bridge and bridge (#591)

* Light push beta bump (#590)

Closes https://github.com/status-im/nim-waku/issues/565

* Filter and lightpush showcase (#593)

* Filter and lightpush showcase

* Fix log error

* Add swap account panel to grafana dashboard template

Co-authored-by: Hanno Cornelius <68783915+jm-clius@users.noreply.github.com>
Co-authored-by: Oskar Thorén <ot@oskarthoren.com>
2021-06-06 16:15:18 +01:00
Hanno Cornelius
31a8528a67 Fixed grafana dashboard to view Waku v2 metrics (#357) 2021-02-03 17:49:34 +02:00
Kim De Mey
ecdc29d93a Use metrics with labels, fix #24 (#27) 2020-06-09 13:44:39 +02:00
Kim De Mey
910fc605d2 Move and update Readme.md (#9) 2020-05-08 22:39:16 +02:00