1
+ fn main ( ) {
2
+
3
+ }
4
+ /*
5
+ use std::time::Duration;
6
+ use opentelemetry::KeyValue;
7
+ use opentelemetry_otlp::{ExportConfig, Protocol, TonicExporterBuilder, WithExportConfig};
8
+ use opentelemetry_resource_detectors::{OsResourceDetector, ProcessResourceDetector};
9
+ use opentelemetry_sdk::{Resource};
10
+ use opentelemetry_sdk::metrics::reader::DefaultAggregationSelector;
11
+ use tracing::{Level};
12
+ use tracing_subscriber::layer::SubscriberExt;
13
+ use tracing_subscriber::util::SubscriberInitExt;
14
+ use opentelemetry_sdk::resource::{ResourceDetector, SdkProvidedResourceDetector, TelemetryResourceDetector};
15
+ use opentelemetry_sdk::trace::config;
16
+ use opentelemetry_semantic_conventions::resource;
17
+ use tracing_subscriber::EnvFilter;
18
+
19
+ fn resource() -> Resource{
20
+ let os_resource = OsResourceDetector.detect(Duration::from_secs(0));
21
+ let process_resource = ProcessResourceDetector.detect(Duration::from_secs(0));
22
+ let telemetry_resource = TelemetryResourceDetector.detect(Duration::from_secs(0));
23
+ let sdk_resource = SdkProvidedResourceDetector.detect(Duration::from_secs(0));
24
+
25
+ let provided = Resource::new(vec![
26
+ KeyValue::new(resource::SERVICE_NAME, "spa-server"),
27
+ KeyValue::new(resource::SERVICE_VERSION, env!("CARGO_PKG_VERSION")),
28
+ ]);
29
+
30
+ sdk_resource
31
+ .merge(&provided)
32
+ .merge(&telemetry_resource)
33
+ .merge(&os_resource)
34
+ .merge(&process_resource)
35
+ }
36
+ fn otlp_exporter() -> TonicExporterBuilder {
37
+ let export_config = ExportConfig {
38
+ endpoint: "http://localhost:4317".to_string(),
39
+ timeout: Duration::from_secs(3),
40
+ protocol: Protocol::Grpc
41
+ };
42
+ opentelemetry_otlp::new_exporter().tonic()
43
+ .with_export_config(export_config)
44
+ }
45
+
46
+ #[tokio::main]
47
+ async fn main() -> anyhow::Result<()>{
48
+ let tracer = opentelemetry_otlp::new_pipeline()
49
+ .tracing()
50
+ .with_exporter(otlp_exporter())
51
+ .with_trace_config(config().with_resource(resource()))
52
+ .install_batch(opentelemetry_sdk::runtime::Tokio)?;
53
+
54
+ let metrics = opentelemetry_otlp::new_pipeline().metrics(opentelemetry_sdk::runtime::Tokio)
55
+ .with_exporter(otlp_exporter())
56
+ .with_resource(resource())
57
+ .with_aggregation_selector(DefaultAggregationSelector::new()).build()?;
58
+
59
+ let filter = EnvFilter::builder()
60
+ .with_default_directive(Level::INFO.into())
61
+ .from_env_lossy();
62
+
63
+ tracing_subscriber::registry()
64
+ .with(filter)
65
+ .with(tracing_subscriber::fmt::layer().compact())// stdout_layer
66
+ .with(tracing_opentelemetry::MetricsLayer::new(metrics))
67
+ .with(tracing_opentelemetry::layer().with_tracer(tracer)) // traces_layer
68
+ .init();
69
+
70
+ Ok(())
71
+ }
72
+ */
0 commit comments