Substrate’s client telemetry is a part of substrate that allows ingesting telemetry data with for example Polkadot telemetry.
It works using Tokio’s tracing library. The telemetry
information uses tracing’s logging to report the telemetry data which is then retrieved by a
Layer. This layer will then send the data through an asynchronous channel to a
background task called
TelemetryWorker which will send the information to the configured
remote telemetry servers.
If multiple substrate nodes are running in the same process, it uses a
identify which substrate node is reporting the telemetry. Every task spawned using sc-service’s
TaskManager automatically inherit this span.
Substrate’s nodes initialize/register with the
TelemetryWorker using a
TelemetryWorkerHandle. This handle can be cloned and passed around. It uses an asynchronous
channel to communicate with the running
TelemetryWorker dedicated to registration.
Registering can happen at any point in time during the process execution.
- Report a telemetry.
- Message sent when the connection (re-)establishes.
- Hardware and software information for the node.
- A telemetry instance that can be used to send telemetry messages.
- Used to create a stream of events with only one event: when a telemetry connection (re-)establishes.
- List of telemetry servers we want to talk to. Contains the URL of the server, and the maximum verbosity level.
- Handle to a
- Telemetry worker.
- Handle to the
TelemetryWorkerthats allows initializing the telemetry for a Substrate node.
- Consensus DEBUG log level.
- Consensus INFO log level.
- Consensus TRACE log level.
- Consensus WARN log level.
- Substrate DEBUG log level.
- Substrate INFO log level.
- Telemetry message verbosity.