- Notifications
You must be signed in to change notification settings - Fork0
The Rust OpenTelemetry implementation
License
my-contributes/opentelemetry-rust
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The RustOpenTelemetry implementation.
OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument,generate, collect, and export telemetry data (metrics, logs, and traces) foranalysis in order to understand your software's performance and behavior. Youcan export and analyze them usingPrometheus,Jaeger, and otherobservability tools.
The table below summarizes the overall status of each component. Some componentsinclude unstable features, which are documented in their respective cratedocumentation.
Signal/Component | Overall Status |
---|---|
Context | Beta |
Baggage | RC |
Propagators | Beta |
Logs-API | Stable* |
Logs-SDK | Stable |
Logs-OTLP Exporter | RC |
Logs-Appender-Tracing | Stable |
Metrics-API | Stable |
Metrics-SDK | RC |
Metrics-OTLP Exporter | RC |
Traces-API | Beta |
Traces-SDK | Beta |
Traces-OTLP Exporter | Beta |
*OpenTelemetry Rust is not introducing a new end user callable Logging API.Instead, it providesLogs BridgeAPI,that allows one to write log appenders that can bridge existing logginglibraries to the OpenTelemetry log data model. The following log appenders areavailable:
If you already use the logging APIs from above, continue to use them, and usethe appenders above to bridge the logs to OpenTelemetry. If you are using alibrary not listed here, feel free to contribute a new appender for the same.
If you are starting fresh, we recommend usingtracing as your logging API. It supportsstructured logging and is actively maintained.OpenTelemetry
itself usestracing
for its internal logging.
Project versioning information and stability guarantees can be foundhere.
If you are new to OpenTelemetry, start with theStdoutExample. This example demonstrateshow to use OpenTelemetry for logs, metrics, and traces, and displaytelemetry data on your console.
For those using OTLP, the recommended OpenTelemetry Exporter for productionscenarios, refer to theOTLP Example -HTTP and theOTLPExample - gRPC.
Additional examples for various integration patterns can be found in theexamples directory.
The following crates are maintained in this repo:
opentelemetry
This is the OpenTelemetry API crate, and is the craterequired to instrument libraries and applications. It contains Context API,Baggage API, Propagators API, Logging Bridge API, Metrics API, and TracingAPI.opentelemetry-sdk
This is the OpenTelemetry SDK crate, and contains theofficial OpenTelemetry SDK implementation. It contains Logging SDK, MetricsSDK, and Tracing SDK. It also contains propagator implementations.opentelemetry-otlp
- exporter to send telemetry (logs, metrics and traces)in theOTLPformatto an endpoint accepting OTLP. This could be theOTelCollector,telemetry backends likeJaeger,Prometheusorvendor specific endpoints.opentelemetry-stdout
exporter for sending logs, metrics and traces tostdout, for learning/debugging purposes.opentelemetry-http
This crate contains utility functions to help withexporting telemetry, propagation, overhttp
.opentelemetry-appender-log
This crate provides logging appender to routelogs emitted using thelog crate toopentelemetry.opentelemetry-appender-tracing
This crate provides logging appender toroute logs emitted using thetracing crateto opentelemetry.opentelemetry-jaeger-propagator
provides context propagation usingjaegerpropagationformat.opentelemetry-prometheus
provides a pipeline and exporter for sendingmetrics toPrometheus
.opentelemetry-semantic-conventions
provides standard names and semanticotel conventions.opentelemetry-zipkin
provides a pipeline and exporter for sending tracestoZipkin
.
In addition, there are several other useful crates in theOTel Rust Contribrepo. A lot ofcrates maintained outside OpenTelemetry owned repos can be found in theOpenTelemetryRegistry.
OpenTelemetry is built against the latest stable release. The minimum supportedversion is 1.75. The current OpenTelemetry version is not guaranteed to buildon Rust versions earlier than the minimum supported version.
The current stable Rust compiler and the three most recent minor versionsbefore it will always be supported. For example, if the current stable compilerversion is 1.49, the minimum supported version will not be increased past 1.46,three minor versions prior. Increasing the minimum supported compiler versionis not considered a semver breaking change as long as doing so complies withthis policy.
See thecontributing file.
The Rust special interest group (SIG) meets weekly on Tuesdays at 9 AM PacificTime. The meeting is subject to change depending on contributors' availability.Check theOpenTelemetry communitycalendarfor specific dates and for Zoom meeting links. "OTel Rust SIG" is the name ofmeeting for this group.
Meeting notes are available as a publicGoogledoc.If you have trouble accessing the doc, please get in touch onSlack.
The meeting is open for all to join. We invite everyone to join our meeting,regardless of your experience level. Whether you're a seasoned OpenTelemetrydeveloper, just starting your journey, or simply curious about the work we do,you're more than welcome to participate!
- Cijo Thomas, Microsoft
- Harold Dost
- Lalit Kumar Bhasin, Microsoft
- Utkarsh Umesan Pillai, Microsoft
- Zhongyang Wu
- Anton Grübel, Baz
- Björn Antonsson, Datadog
- Shaun Cox, Microsoft
- Scott Gerring, Datadog
About
The Rust OpenTelemetry implementation
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- Rust99.3%
- Other0.7%