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
{{ message }}
Repository navigation
Commit 5943f4d
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: site/content/docs/reference/router.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -64,6 +64,13 @@ replica count.
64
64
router on `/info` while the lease is live.
65
65
4. Runs the mutual credential handshake on every inbound connection and
66
66
refuses peers whose credential does not verify and peers on the ban list.
67
+
Until a peer passes it, the router serves it nothing but the handshake:
68
+
a DHT or gossip stream it opens waits, unread, and is served once the
69
+
peer is authenticated, or reset when the connection closes at
70
+
`--auth-deadline` first. A member's streams open on connect, a moment
71
+
before its handshake completes, which is why they wait instead of being
72
+
refused outright. The routing table admits authenticated peer routers and
73
+
nothing else, and the router queries no one else either.
67
74
5. Refreshes its own credential before it expires, like a node.
68
75
6. Every 5 seconds, compares the members it holds, the peers that passed
69
76
the handshake, with `--high-watermark`. At the mark it picks members at
@@ -120,7 +127,7 @@ The metrics address exposes, next to the Go runtime metrics:
120
127
|`agentmesh_router_goaway_sent_total{reason,result}`| Members sent away, by reason (`DRAINING`, `OVERLOADED`) and outcome: `ok` when the member took the message, `unsupported` when it does not speak the protocol and was closed instead, `failed` when the stream broke. A rising `OVERLOADED` count on a router that is not draining is a fleet that has outgrown its routers. |
121
128
|`agentmesh_router_unauthenticated_connections_closed_total`| Connections closed at `--auth-deadline` without a handshake. Members handshake with every router they connect to, so a steady rate is members running a node release that predates that, and a burst is a scanner. |
122
129
|`agentmesh_router_inbound_connections_refused_total`| Inbound connections refused by the per-address cap. |
123
-
|`agentmesh_router_streams_refused_total{scope,protocol}`| Streams the resource manager refused, by scope and protocol or service. A count on `/mesh/kad/1.0.0` or a `/meshsub/*` protocol is members the router keeps out of discovery; see the scalability guide. |
130
+
|`agentmesh_router_streams_refused_total{scope,protocol}`| Streams refused, by scope and protocol or service. `scope="unauthenticated"` is a stream from a peer that never passed the handshake, reset when its connection closed; a steady rate is a scanner, or a member whose handshake fails. The other scopes are the resource manager's: a count on `/mesh/kad/1.0.0` or a `/meshsub/*` protocol there is members the router keeps out of discovery; see the scalability guide. |
124
131
|`agentmesh_router_busiest_connection_streams{transport}`| The most streams any one connection carries. The connection to a service the router relays for holds one stream per relayed caller, and QUIC admits 256 per connection; see the scalability guide. |
125
132
|`libp2p_relaysvc_*`| The relay service's own counters: `reservations_total{type}` and `connections_total{type}` (`opened`, `closed`, `renewed`), requests by response status, rejections and bytes relayed. The difference between `opened` and `closed` is the number in use; read it against `agentmesh_router_relay_limit` to see how close the relay is to its budget. |
0 commit comments