1个不稳定版本

0.1.0-beta.12023年6月13日

#35 in #metrics-exporter

Apache-2.0

480KB
10K SLoC

OpenTelemetry — An observability framework for cloud-native software.

OpenTelemetry Stdout

为使用 OpenTelemetry 仪器化的应用程序提供导出器。

Crates.io: opentelemetry-stdout Documentation LICENSE

概述

OpenTelemetry 是一套工具、API和SDK的集合,用于仪器化、生成、收集和导出遥测数据(指标、日志和跟踪),以便分析以了解软件的性能和行为。此crate提供导出器,用于将数据导出到标准输出或任何实现 std::io::Write 的实现。

编译器支持: 需要 rustc 1.60+

快速入门

将遥测信号导出到标准输出。

use opentelemetry_api::{
    metrics::MeterProvider as _,
    trace::{Span, Tracer, TracerProvider as _},
    Context, KeyValue,
};
use opentelemetry_sdk::{
    metrics::{MeterProvider, PeriodicReader},
    runtime,
    trace::{BatchSpanProcessor, TracerProvider},
};

fn init_trace() -> TracerProvider {
    let exporter = opentelemetry_stdout::SpanExporter::default();
    let processor = BatchSpanProcessor::builder(exporter, runtime::Tokio).build();
    TracerProvider::builder()
        .with_span_processor(processor)
        .build()
}

fn init_metrics() -> MeterProvider {
    let exporter = opentelemetry_stdout::MetricsExporter::default();
    let reader = PeriodicReader::builder(exporter, runtime::Tokio).build();
    MeterProvider::builder().with_reader(reader).build()
}

let tracer_provider = init_trace();
let meter_provider = init_metrics();

记录的跟踪和指标现在将发送到标准输出

{"resourceMetrics":{"resource":{"attributes":[{"key":"service.name","value":{"str..
{"resourceSpans":[{"resource":{"attributes":[{"key":"service.name","value":{"stri..

支持的Rust版本

OpenTelemetry基于最新的稳定版。最低支持的版本是1.60。当前OpenTelemetry版本不一定能在低于最低支持版本的Rust版本上构建。

当前的稳定Rust编译器和它之前的三个次要版本将始终得到支持。例如,如果当前稳定编译器版本是1.49,则最低支持版本不会超过1.46,即早于三个次要版本。只要这样做符合此政策,增加最低支持的编译器版本不被视为semver破坏性更改。

依赖项

~2.8–4.5MB
~88K SLoC