You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: metrics/README.md
+16-2Lines changed: 16 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -206,6 +206,10 @@ The primary actor initializes base Ergo metrics, starts the HTTP handler, and ru
206
206
|`ergo_events_received_total`| Gauge | Cumulative number of events received from remote nodes |
207
207
|`ergo_events_local_sent_total`| Gauge | Cumulative number of event messages delivered to local subscribers. Reflects actual fanout -- one publish with 100 subscribers produces 100 local deliveries |
208
208
|`ergo_events_remote_sent_total`| Gauge | Cumulative number of event messages sent to remote nodes. Counts one per node, not per subscriber, due to shared subscription optimization |
|`ergo_remote_messages_in_total`| Gauge | remote_node | Messages received from node |
@@ -508,7 +515,7 @@ Four table panels (specific events):
508
515
509
516
#### Process Activity (collapsed row)
510
517
511
-
A collapsed row containing ten panels organized by topic: message throughput, drains, then process utilization. Click to expand.
518
+
A collapsed row containing twelve panels organized by topic: message throughput, delivery errors, drains, then process utilization. Click to expand.
512
519
513
520
Two timeseries panels (message throughput overview):
514
521
@@ -525,6 +532,11 @@ Two panels (drains):
525
532
- **Drains per Node** -- per-node drain ratio over time (`rate(messages_in) / rate(wakeups)`). Value ~1 means spare capacity, growing value means processes batch more per wakeup. Complements utilization: two processes with 80% utilization may have drain ~1 (slow callbacks) or drain ~100 (fast callbacks, high volume) -- different problems requiring different solutions
526
533
- **Top Processes by Drains** -- table showing processes with highest drain ratio. Identifies which actors are under the heaviest sustained load
527
534
535
+
Two timeseries panels (delivery errors):
536
+
537
+
- **Delivery Errors (Cluster Total)** -- cluster-wide rate of message delivery failures split by type: Send Local (orange), Send Remote (red), Call Local (yellow), Call Remote (dark red). Local errors include process unknown, process terminated, and mailbox full. Remote errors include connection failures. A static cluster should show zero rates; any sustained rate indicates delivery problems worth investigating
538
+
- **Delivery Errors per Node** -- per-node delivery error rates combining send and call errors. Shows which nodes have the most delivery failures. Useful for identifying nodes with connectivity issues (remote errors) or overloaded processes (local errors from mailbox full)
539
+
528
540
Two timeseries panels (utilization overview):
529
541
530
542
- **Utilization Distribution** -- stacked area chart showing how many processes fall into each utilization range (1%-90%+). Utilization is `RunningTime / Uptime`. A shift toward higher ranges indicates increasing compute load
@@ -563,8 +575,10 @@ A collapsed row containing one timeseries graph. Click to expand.
563
575
564
576
#### Network (collapsed row)
565
577
566
-
A collapsed row containing six timeseries graphs. Click to expand. Shows cluster-wide totals, per-node breakdowns, and node-pair detail for both message rates and byte rates.
578
+
A collapsed row containing eight timeseries graphs. Click to expand. Shows connection health, handshake errors, cluster-wide totals, per-node breakdowns, and node-pair detail for both message rates and byte rates.
567
579
580
+
- **Connection Health** -- connection established and lost rates with connected nodes count on the right axis (dashed blue line). In a static cluster between deploys, established and lost rates should be near zero. Sustained churn indicates network instability or nodes restarting
581
+
- **Handshake Errors per Acceptor** -- handshake error rate per acceptor interface. Helps identify which listener is receiving bad connections (wrong protocol, authentication failures, incompatible versions)
568
582
- **Network Messages (Cluster Total)** -- total inbound and outbound message rate across all nodes. Provides a high-level view of cluster communication intensity. Sudden drops may indicate network partitions or node failures
569
583
- **Network Traffic (Cluster Total)** -- total inbound and outbound byte rate across all nodes. Helps estimate bandwidth requirements. A growing gap between message rate and byte rate means average message size is changing
570
584
- **Network Messages per Node** -- inbound and outbound message rate per node. Helps identify which nodes are communication hotspots and whether traffic is evenly distributed
Copy file name to clipboardExpand all lines: metrics/actor.go
+29Lines changed: 29 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -236,6 +236,17 @@ func (a *Actor) initializeErgoMetrics() error {
236
236
registerInternalGaugeVec(cm, a.registry, "ergo_remote_bytes_in_total", "Total number of bytes received from remote node", nodeLabels, []string{"remote_node"})
237
237
registerInternalGaugeVec(cm, a.registry, "ergo_remote_bytes_out_total", "Total number of bytes sent to remote node", nodeLabels, []string{"remote_node"})
0 commit comments