• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

epazote / epazote / 14294038345

06 Apr 2025 03:34PM UTC coverage: 84.783%. Remained the same
14294038345

push

github

nbari
cargo update

0 of 5 new or added lines in 1 file covered. (0.0%)

2028 of 2392 relevant lines covered (84.78%)

82.96 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/cli/telemetry.rs
1
use anyhow::Result;
2
use opentelemetry::{global, trace::TracerProvider as _, KeyValue};
3
use opentelemetry_otlp::WithExportConfig;
4
use opentelemetry_sdk::{
5
    trace::{SdkTracerProvider, Tracer},
6
    Resource,
7
};
8
use std::time::Duration;
9
use tracing::Level;
10
use tracing_subscriber::{fmt, layer::SubscriberExt, EnvFilter, Registry};
11

12
fn init_tracer() -> Result<Tracer> {
×
13
    let tracer_provider = SdkTracerProvider::builder()
×
NEW
14
        .with_batch_exporter(
×
NEW
15
            opentelemetry_otlp::SpanExporter::builder()
×
NEW
16
                .with_tonic()
×
NEW
17
                .with_timeout(Duration::from_secs(3))
×
NEW
18
                .build()?,
×
19
        )
20
        .with_resource(
×
21
            Resource::builder_empty()
×
22
                .with_attributes(vec![
×
23
                    KeyValue::new("service.name", env!("CARGO_PKG_NAME")),
×
24
                    KeyValue::new("service.version", env!("CARGO_PKG_VERSION")),
×
25
                ])
×
26
                .build(),
×
27
        )
×
28
        .build();
×
29

×
30
    global::set_tracer_provider(tracer_provider.clone());
×
31

×
32
    Ok(tracer_provider.tracer(env!("CARGO_PKG_NAME")))
×
33
}
×
34

35
/// Start the telemetry layer
36
/// # Errors
37
/// Will return an error if the telemetry layer fails to start
38
pub fn init(verbosity_level: Option<Level>) -> Result<()> {
×
39
    let verbosity_level = verbosity_level.unwrap_or(Level::ERROR);
×
40

41
    let tracer = init_tracer()?;
×
42

43
    let otel_tracer_layer = tracing_opentelemetry::layer().with_tracer(tracer);
×
44

×
45
    let fmt_layer = fmt::layer()
×
46
        .with_file(false)
×
47
        .with_line_number(false)
×
48
        .with_thread_ids(false)
×
49
        .with_thread_names(false)
×
50
        .with_target(false)
×
51
        .json();
×
52

53
    // RUST_LOG=
54
    let filter = EnvFilter::builder()
×
55
        .with_default_directive(verbosity_level.into())
×
56
        .from_env_lossy()
×
57
        .add_directive("hyper=error".parse()?)
×
58
        .add_directive("tokio=error".parse()?)
×
59
        .add_directive("reqwest=error".parse()?);
×
60

61
    let subscriber = Registry::default()
×
62
        .with(fmt_layer)
×
63
        .with(otel_tracer_layer)
×
64
        .with(filter);
×
65

×
66
    Ok(tracing::subscriber::set_global_default(subscriber)?)
×
67
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc