* Add new hardware and software metrics * Move sysinfo tests into `mod tests` * Correct a typo in a comment * Remove unnecessary `nix` dependency * Fix the version tests * Add a `--disable-hardware-benchmarks` CLI argument * Disable hardware benchmarks in the integration tests * Remove unused import * Fix benchmarks compilation * Move code to a new `sc-sysinfo` crate * Correct `impl_version` comment * Move `--disable-hardware-benchmarks` to the chain-specific bin crate * Move printing out of hardware bench results to `sc-sysinfo` * Move hardware benchmarks to a separate messages; trigger them manually * Rename some of the fields in the `HwBench` struct * Revert changes to the telemetry crate; manually send hwbench messages * Move sysinfo logs into the sysinfo crate * Move the `TARGET_OS_*` constants into the sysinfo crate * Minor cleanups * Move the `HwBench` struct to the sysinfo crate * Derive `Clone` for `HwBench` * Fix broken telemetry connection notification stream * Prevent the telemetry connection notifiers from leaking if they're disconnected * Turn the telemetry notification failure log into a debug log * Rename `--disable-hardware-benchmarks` to `--no-hardware-benchmarks`
sc-telemetry
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
tracing 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 tracing::Span to
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 [TelemetryHandle].
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.
License: GPL-3.0-or-later WITH Classpath-exception-2.0