mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 04:11:07 +00:00
Add receiver for Grafana (#4211)
This commit is contained in:
Generated
+1
@@ -6578,6 +6578,7 @@ dependencies = [
|
||||
name = "substrate-tracing"
|
||||
version = "2.0.0"
|
||||
dependencies = [
|
||||
"grafana-data-source 2.0.0",
|
||||
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"substrate-telemetry 2.0.0",
|
||||
|
||||
@@ -265,6 +265,7 @@ arg_enum! {
|
||||
pub enum TracingReceiver {
|
||||
Log,
|
||||
Telemetry,
|
||||
Grafana,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,6 +274,7 @@ impl Into<substrate_tracing::TracingReceiver> for TracingReceiver {
|
||||
match self {
|
||||
TracingReceiver::Log => substrate_tracing::TracingReceiver::Log,
|
||||
TracingReceiver::Telemetry => substrate_tracing::TracingReceiver::Telemetry,
|
||||
TracingReceiver::Grafana => substrate_tracing::TracingReceiver::Grafana,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ parking_lot = "0.9.0"
|
||||
tracing-core = "0.1.7"
|
||||
|
||||
substrate-telemetry = { path = "../telemetry" }
|
||||
grafana-data-source = { path = "../grafana-data-source" }
|
||||
|
||||
[dev-dependencies]
|
||||
tracing = "0.1.10"
|
||||
|
||||
@@ -39,6 +39,7 @@ use parking_lot::Mutex;
|
||||
use tracing_core::{event::Event, Level, metadata::Metadata, span::{Attributes, Id, Record}, subscriber::Subscriber};
|
||||
|
||||
use substrate_telemetry::{telemetry, SUBSTRATE_INFO};
|
||||
use grafana_data_source::{self, record_metrics};
|
||||
|
||||
/// Used to configure how to receive the metrics
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -47,6 +48,8 @@ pub enum TracingReceiver {
|
||||
Log,
|
||||
/// Output to telemetry
|
||||
Telemetry,
|
||||
/// Output to Grafana,
|
||||
Grafana,
|
||||
}
|
||||
|
||||
impl Default for TracingReceiver {
|
||||
@@ -59,7 +62,7 @@ impl Default for TracingReceiver {
|
||||
struct SpanDatum {
|
||||
id: u64,
|
||||
name: &'static str,
|
||||
target: String,
|
||||
target: &'static str,
|
||||
level: Level,
|
||||
line: u32,
|
||||
start_time: Instant,
|
||||
@@ -124,7 +127,7 @@ impl Subscriber for ProfilingSubscriber {
|
||||
let span_datum = SpanDatum {
|
||||
id: id,
|
||||
name: attrs.metadata().name(),
|
||||
target: attrs.metadata().target().to_string(),
|
||||
target: attrs.metadata().target(),
|
||||
level: attrs.metadata().level().clone(),
|
||||
line: attrs.metadata().line().unwrap_or(0),
|
||||
start_time: Instant::now(),
|
||||
@@ -172,6 +175,7 @@ impl ProfilingSubscriber {
|
||||
match self.receiver {
|
||||
TracingReceiver::Log => print_log(span_datum),
|
||||
TracingReceiver::Telemetry => send_telemetry(span_datum),
|
||||
TracingReceiver::Grafana => send_grafana(span_datum),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -196,3 +200,7 @@ fn send_telemetry(span_datum: SpanDatum) {
|
||||
"time" => span_datum.overall_time.as_nanos(),
|
||||
);
|
||||
}
|
||||
|
||||
fn send_grafana(span_datum: SpanDatum) {
|
||||
record_metrics!(span_datum.target => span_datum.overall_time.as_nanos());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user