This PR refactors the metrics measuring and Prometheus exposing entity in sc-service into its own submodule and extends the parameters it exposes by:
- system load average (over one, five and 15min)
- the TCP connection state of the process (lsof), refs #5304
- number of tokio threads
- number of known forks
- counter for items in each unbounded queue (with internal unbounded channels)
- number of file descriptors opened by this process (*nix only at this point)
- number of system threads (*nix only at this point)
refs #4679
Co-authored-by: Max Inden <mail@max-inden.de>
Co-authored-by: Ashley <ashley.ruglys@gmail.com>
This patch renames the crate for the following two reasons:
1. The prometheus-exporter crate introduces native in-process Prometheus
style instrumentation to the Substrate project. Within the Prometheus
ecosystem the term "exporter" is used for external processes exposing
metrics for e.g. the Linux Kernel. In-process exposition would be
described via the term "endpoint".
2. "prometheus-exporter" is generic and ignores the fact that it is only
usable within the context of Substrate. In addition the name
"prometheus-exporter" is already taken on crates.io.
* Refactor rebase master prometheus_v0.3
* Milestone1: Final Version of v0.3
* no-std or warm compatibility issues, grapana-data -source code reference and correction,applicable
* Cargo.lock paritytech/master rebase
* prometheus networking.rs del, grafana-data-source networking.rs pub edit and note
* chore: reflect various feedback
* Spaces to tabs.
* Replace grafana and tidy
* Add generics
* Add photo back
* Re-fix spaces in primitives/consensus/babe/src/inherents.rs
* Refactor rebase master prometheus_v0.3
* Milestone1: Final Version of v0.3
* no-std or warm compatibility issues, grapana-data -source code reference and correction,applicable
* prometheus networking.rs del, grafana-data-source networking.rs pub edit and note
* chore: reflect various feedback
* Replace grafana and tidy
* Add generics
* Add photo back
* Re-fix spaces in primitives/consensus/babe/src/inherents.rs
* chore: revert this file back to paritytech/master inherents.rs.
* Add newline at EOF
* Tidy
* Use local registry
* fix typo
Co-Authored-By: Max Inden <mail@max-inden.de>
* chore: Apply review feedback
* endpoint -> exporter
* fix readme
* Remove lazy_static, use ServiceMetrics struct instead
* Switch to using GaugeVecs
* chore: without nightly , edit README
* block_height -> block_height_number
* Switch to a ready_transactions_number gauge
* Update utils/prometheus/src/lib.rs
Co-Authored-By: Max Inden <mail@max-inden.de>
* no-prometheus flag add
* /metrics url Input check
* remove prometheus in Tracing
* remove prometheus in Tracing
* chore: master code rebase edit
* gitlab-check-web-wasm edit code
* From:from and cargo.lock update
* with_prometheus_registry add background_tasks
* utils/prometheus/src/lib.rs: Restructure #[cfg] for wasm without hyper
Given that Hyper is not compatible with WASM targets it needs to be
excluded from WASM builds. Instead of introducing #[cfg] lines
throughout the crate, this patch splits the crate into two: known_os and
unknown_os (WASM).
* utils/prometheus/src/lib.rs: Feature gate known_os module
* client/cli/src/lib.rs: Re-add newline at end of file
Co-authored-by: JeseonLEE <zeroday26@gmail.com>
Co-authored-by: Gavin Wood <github@gavwood.com>
Co-authored-by: Ashley <ashley.ruglys@gmail.com>
Co-authored-by: Hyungsuk Kang <hskang9@gmail.com>