summaryrefslogtreecommitdiffstats
path: root/docs/openapi.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/openapi.yaml')
-rw-r--r--docs/openapi.yaml261
1 files changed, 143 insertions, 118 deletions
diff --git a/docs/openapi.yaml b/docs/openapi.yaml
index acd2ce0..bc9652e 100644
--- a/docs/openapi.yaml
+++ b/docs/openapi.yaml
@@ -342,13 +342,18 @@ paths:
`text/plain` (as Prometheus does), the Prometheus text format (0.0.4) instead,
with per-peer series labelled `peer` (the node ID). Aliases are only in
`continuum_info` and `continuum_peer_info`, for joining.
+
+ A node started with `--relay-only` answers `RelayOnlyStats` instead (and has
+ only `/health`, `/admin/stats` and `/admin/log`).
responses:
'200':
description: Statistics.
content:
application/json:
schema:
- $ref: '#/components/schemas/Stats'
+ oneOf:
+ - $ref: '#/components/schemas/Stats'
+ - $ref: '#/components/schemas/RelayOnlyStats'
text/plain; version=0.0.4:
schema:
type: string
@@ -1270,6 +1275,142 @@ components:
type: integer
description: Age of the last sample.
+ TransportStats:
+ type: object
+ description: How the transports find and reach peers (`measurements.md`, Transports).
+ properties:
+ paths:
+ description: The paths layer's; null without one.
+ oneOf:
+ - type: 'null'
+ - type: object
+ required: [paths, probesSent, probesAnswered, probesUnanswered, sendFailures, failovers, switches]
+ properties:
+ paths:
+ type: array
+ description: Every path measured (of peers with several addresses used lately, and every path keepalives went over).
+ items:
+ type: object
+ required: [address, down]
+ properties:
+ address:
+ type: string
+ rttMs:
+ type: [number, 'null']
+ down:
+ type: boolean
+ probesSent:
+ type: integer
+ probesAnswered:
+ type: integer
+ probesUnanswered:
+ type: integer
+ sendFailures:
+ type: integer
+ failovers:
+ type: integer
+ switches:
+ type: integer
+ identity:
+ description: The identity layer's; null without one.
+ oneOf:
+ - type: 'null'
+ - type: object
+ required: [proven, hinted, proofsRejected, addressChanges, droppedUnproven, refusedUnproven, seedsUnanswered]
+ properties:
+ proven:
+ type: object
+ description: Nodes proven at an address, by transport (scheme).
+ additionalProperties:
+ type: integer
+ hinted:
+ type: integer
+ description: Nodes known only from hints, proven nowhere.
+ proofsRejected:
+ type: integer
+ addressChanges:
+ type: integer
+ droppedUnproven:
+ type: integer
+ refusedUnproven:
+ type: integer
+ seedsUnanswered:
+ type: integer
+ libp2p:
+ description: The libp2p transport's; null if it isn't one of this node's.
+ oneOf:
+ - type: 'null'
+ - type: object
+ required: [reachability, connections, relaySlots, holePunches, dialFailures]
+ properties:
+ reachability:
+ type: string
+ enum: [unknown, private, public]
+ description: What AutoNAT says.
+ publicAddress:
+ type: [string, 'null']
+ description: The address AutoNAT confirmed, while public.
+ connections:
+ type: object
+ required: [direct, relayed]
+ properties:
+ direct:
+ type: integer
+ relayed:
+ type: integer
+ relaySlots:
+ type: object
+ required: [held, paused, granted, lost, notGranted]
+ properties:
+ held:
+ type: integer
+ paused:
+ type: integer
+ description: Relays not picked again for a while, after refusing a slot or not granting it.
+ granted:
+ type: integer
+ lost:
+ type: integer
+ notGranted:
+ type: integer
+ holePunches:
+ type: object
+ required: [succeeded, failed]
+ properties:
+ succeeded:
+ type: integer
+ failed:
+ type: integer
+ dialFailures:
+ type: object
+ required: [unreachable, wrongPeerId, noAddresses, other]
+ properties:
+ unreachable:
+ type: integer
+ wrongPeerId:
+ type: integer
+ noAddresses:
+ type: integer
+ other:
+ type: integer
+ RelayOnlyStats:
+ type: object
+ description: '`/admin/stats` of a node started with `--relay-only`.'
+ required: [peerId, addresses, uptimeSecs, transports]
+ properties:
+ peerId:
+ type: string
+ description: The relay's libp2p peer ID.
+ addresses:
+ type: array
+ items:
+ type: string
+ description: Where nodes reach it, as `libp2p:` addresses to list in `_continuum/relays`.
+ uptimeSecs:
+ type: integer
+ transports:
+ $ref: '#/components/schemas/TransportStats'
+
Stats:
type: object
required: [nodeId, addresses, uptimeSecs, ready, epoch, document, catchUp, remakes, sync, relay, topology, stability, staleHelloReplies, traffic, incidents, propagation, disk, transports]
@@ -1439,123 +1580,7 @@ components:
$ref: '#/components/schemas/Traffic'
description: All peers, including ones no longer listed.
transports:
- type: object
- description: How the transports find and reach peers (`measurements.md`, Transports).
- properties:
- paths:
- description: The paths layer's; null without one.
- oneOf:
- - type: 'null'
- - type: object
- required: [paths, probesSent, probesAnswered, probesUnanswered, sendFailures, failovers, switches]
- properties:
- paths:
- type: array
- description: Every path measured (of peers with several addresses used lately, and every path keepalives went over).
- items:
- type: object
- required: [address, down]
- properties:
- address:
- type: string
- rttMs:
- type: [number, 'null']
- down:
- type: boolean
- probesSent:
- type: integer
- probesAnswered:
- type: integer
- probesUnanswered:
- type: integer
- sendFailures:
- type: integer
- failovers:
- type: integer
- switches:
- type: integer
- identity:
- description: The identity layer's; null without one.
- oneOf:
- - type: 'null'
- - type: object
- required: [proven, hinted, proofsRejected, addressChanges, droppedUnproven, refusedUnproven, seedsUnanswered]
- properties:
- proven:
- type: object
- description: Nodes proven at an address, by transport (scheme).
- additionalProperties:
- type: integer
- hinted:
- type: integer
- description: Nodes known only from hints, proven nowhere.
- proofsRejected:
- type: integer
- addressChanges:
- type: integer
- droppedUnproven:
- type: integer
- refusedUnproven:
- type: integer
- seedsUnanswered:
- type: integer
- libp2p:
- description: The libp2p transport's; null if it isn't one of this node's.
- oneOf:
- - type: 'null'
- - type: object
- required: [reachability, connections, relaySlots, holePunches, dialFailures]
- properties:
- reachability:
- type: string
- enum: [unknown, private, public]
- description: What AutoNAT says.
- publicAddress:
- type: [string, 'null']
- description: The address AutoNAT confirmed, while public.
- connections:
- type: object
- required: [direct, relayed]
- properties:
- direct:
- type: integer
- relayed:
- type: integer
- relaySlots:
- type: object
- required: [held, paused, granted, lost, notGranted]
- properties:
- held:
- type: integer
- paused:
- type: integer
- description: Relays picked that never granted a slot, not picked again for a while.
- granted:
- type: integer
- lost:
- type: integer
- notGranted:
- type: integer
- holePunches:
- type: object
- required: [succeeded, failed]
- properties:
- succeeded:
- type: integer
- failed:
- type: integer
- dialFailures:
- type: object
- required: [unreachable, wrongPeerId, noAddresses, other]
- properties:
- unreachable:
- type: integer
- wrongPeerId:
- type: integer
- noAddresses:
- type: integer
- other:
- type: integer
+ $ref: '#/components/schemas/TransportStats'
incidents:
$ref: '#/components/schemas/Incidents'
description: The peers currently listed.