Skip to content

Commit

Permalink
feat: migrate to opentelemetry 0.27
Browse files Browse the repository at this point in the history
  • Loading branch information
wiseaidev committed Jan 9, 2025
1 parent 90dc790 commit e507b31
Show file tree
Hide file tree
Showing 4 changed files with 176 additions and 192 deletions.
8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,20 @@ repository = "https://github.com/haixuanTao/opentelemetry-system-metrics"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
opentelemetry = { version = "0.23.0", features = ["metrics"] }
opentelemetry = { version = "0.27.1", features = ["metrics"] }
sysinfo = "0.29"
indexmap = "1.8"
nvml-wrapper = "0.9.0"
eyre = "0.6.8"
tracing = "0.1.40"

[dev-dependencies]
opentelemetry_sdk = { version = "0.23.0", features = ["rt-tokio", "metrics"] }
opentelemetry_sdk = { version = "0.27.1", features = ["rt-tokio", "metrics"] }
futures = "0.3.12"
tokio = { version = "1.17.0", features = ["full"] }
opentelemetry-otlp = { version = "0.16.0", features = ["tonic", "metrics"] }
opentelemetry-otlp = { version = "0.27.0", features = ["tonic", "metrics"] }
eyre = "0.6.8"
opentelemetry-stdout = { version = "0.4.0", features = ["metrics"] }
opentelemetry-stdout = { version = "0.27.0", features = ["metrics"] }

[[example]]
name = "otlp-tokio-metrics"
Expand Down
47 changes: 25 additions & 22 deletions examples/otlp-tokio-metrics/main.rs
Original file line number Diff line number Diff line change
@@ -1,35 +1,38 @@
use opentelemetry::{
metrics::MeterProvider as _,
metrics::{self},
};
use opentelemetry::metrics::MeterProvider as _;

use opentelemetry_otlp::{ExportConfig, WithExportConfig};
use opentelemetry_sdk::{metrics::SdkMeterProvider, runtime};
use opentelemetry_system_metrics::init_process_observer;
use opentelemetry_otlp::Protocol;
use opentelemetry_otlp::WithExportConfig;
use opentelemetry_sdk::metrics::{MetricResult, SdkMeterProvider};
use opentelemetry_system_metrics::build_process_observer;
use std::time::Duration;

fn init_metrics() -> metrics::Result<SdkMeterProvider> {
let export_config = ExportConfig {
endpoint: "http://localhost:4317".to_string(),
..ExportConfig::default()
};

opentelemetry_otlp::new_pipeline()
.metrics(runtime::Tokio)
.with_exporter(
opentelemetry_otlp::new_exporter()
.tonic()
.with_export_config(export_config),
)
.with_period(Duration::from_secs(10))
fn init_metrics() -> MetricResult<SdkMeterProvider> {
let exporter = opentelemetry_otlp::MetricExporter::builder()
.with_tonic()
.with_endpoint("http://localhost:4317")
.with_protocol(Protocol::Grpc)
.with_timeout(Duration::from_secs(10))
.build()
.unwrap();

let reader = opentelemetry_sdk::metrics::PeriodicReader::builder(
exporter,
opentelemetry_sdk::runtime::Tokio,
)
.with_interval(std::time::Duration::from_secs(10))
.with_timeout(Duration::from_secs(10))
.build();

Ok(opentelemetry_sdk::metrics::SdkMeterProvider::builder()
.with_reader(reader)
.build())
}

#[tokio::main]
async fn main() {
let meter_provider = init_metrics().unwrap();
let meter = meter_provider.meter("mylibraryname");
init_process_observer(meter).unwrap();
build_process_observer(meter).unwrap();

// Do some work

Expand Down
40 changes: 27 additions & 13 deletions examples/stdout-tokio-metrics/main.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,37 @@
use opentelemetry::metrics::MeterProvider as _;
use opentelemetry_sdk::{
metrics::{PeriodicReader, SdkMeterProvider},
runtime,
};
use opentelemetry_system_metrics::init_process_observer;
use opentelemetry_otlp::Protocol;
use opentelemetry_otlp::WithExportConfig;
use opentelemetry_sdk::metrics::{MetricResult, SdkMeterProvider};

use opentelemetry_system_metrics::build_process_observer;
use std::time::Duration;
fn init_metrics() -> SdkMeterProvider {
let exporter = opentelemetry_stdout::MetricsExporter::default();
let reader = PeriodicReader::builder(exporter, runtime::Tokio)
.with_interval(Duration::from_secs(1))
.build();
SdkMeterProvider::builder().with_reader(reader).build()
fn init_metrics() -> MetricResult<SdkMeterProvider> {
let exporter = opentelemetry_otlp::MetricExporter::builder()
.with_tonic()
.with_endpoint("http://localhost:4317")
.with_protocol(Protocol::Grpc)
.with_timeout(Duration::from_secs(10))
.build()
.unwrap();

let reader = opentelemetry_sdk::metrics::PeriodicReader::builder(
exporter,
opentelemetry_sdk::runtime::Tokio,
)
.with_interval(std::time::Duration::from_secs(1))
.with_timeout(Duration::from_secs(10))
.build();

Ok(opentelemetry_sdk::metrics::SdkMeterProvider::builder()
.with_reader(reader)
.build())
}

#[tokio::main]
async fn main() {
let meter_provider = init_metrics();
let meter_provider = init_metrics().expect("meter_provider");
let meter = meter_provider.meter("mylibraryname");
let _ = init_process_observer(meter).unwrap();
let _ = build_process_observer(meter).unwrap();

tokio::time::sleep(Duration::from_secs(60)).await;
meter_provider.shutdown().unwrap();
Expand Down
Loading

0 comments on commit e507b31

Please sign in to comment.