1
- ![ OpenTelemetry — An observability framework for cloud-native software.] [ splash ]
2
-
3
- [ splash ] : https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png
4
-
5
1
# OpenTelemetry Rust
6
2
7
3
The Rust [ OpenTelemetry] ( https://opentelemetry.io/ ) implementation.
@@ -13,10 +9,6 @@ The Rust [OpenTelemetry](https://opentelemetry.io/) implementation.
13
9
[ ![ codecov] ( https://codecov.io/gh/open-telemetry/opentelemetry-rust/branch/main/graph/badge.svg )] ( https://codecov.io/gh/open-telemetry/opentelemetry-rust )
14
10
[ ![ Slack] ( https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack )] ( https://cloud-native.slack.com/archives/C03GDP0H023 )
15
11
16
- [ Website] ( https://opentelemetry.io/ ) |
17
- [ Slack] ( https://cloud-native.slack.com/archives/C03GDP0H023 ) |
18
- [ Documentation] ( https://docs.rs/opentelemetry )
19
-
20
12
## Overview
21
13
22
14
OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument,
@@ -48,7 +40,6 @@ available:
48
40
49
41
* [ opentelemetry-appender-log] ( opentelemetry-appender-log/README.md )
50
42
* [ opentelemetry-appender-tracing] ( opentelemetry-appender-tracing/README.md )
51
- * opentelemetry-appender-slog // TODO: Add link once available
52
43
53
44
If you already use the logging APIs from above, continue to use them, and use
54
45
the appenders above to bridge the logs to OpenTelemetry. If you are using a
@@ -91,89 +82,65 @@ The example above requires the following packages:
91
82
``` toml
92
83
# Cargo.toml
93
84
[dependencies ]
94
- opentelemetry = " 0.21 "
95
- opentelemetry_sdk = " 0.21 "
96
- opentelemetry-stdout = { version = " 0.2 " , features = [" trace" ] }
85
+ opentelemetry = " 0.22 "
86
+ opentelemetry_sdk = " 0.22 "
87
+ opentelemetry-stdout = { version = " 0.3 " , features = [" trace" ] }
97
88
```
98
89
99
90
See the [ examples] ( ./examples ) directory for different integration patterns.
100
91
101
- ## Ecosystem
102
-
103
- ### Related Crates
104
-
105
- In addition to ` opentelemetry ` , the [ ` open-telemetry/opentelemetry-rust ` ]
106
- repository contains several additional crates designed to be used with the
107
- ` opentelemetry ` ecosystem. This includes a collection of trace ` SpanExporter `
108
- and metrics pull and push controller implementations, as well as utility and
109
- adapter crates to assist in propagating state and instrumenting applications.
110
-
111
- In particular, the following crates are likely to be of interest:
112
-
113
- * [ ` opentelemetry-aws ` ] provides unofficial propagators for AWS X-ray.
114
- * [ ` opentelemetry-datadog ` ] provides additional exporters to [ ` Datadog ` ] .
115
- * [ ` opentelemetry-dynatrace ` ] provides additional exporters to Dynatrace.
116
- * [ ` opentelemetry-contrib ` ] provides additional exporters and propagators that
117
- are experimental.
118
- * [ ` opentelemetry-http ` ] provides an interface for injecting and extracting
119
- trace information from [ ` http ` ] headers.
120
- * [ ` opentelemetry-jaeger ` ] provides context propagation using [ jaeger propagation format] ( https://www.jaegertracing.io/docs/1.18/client-libraries/#propagation-format ) .
121
- * [ ` opentelemetry-otlp ` ] exporter for sending trace and metric data in the OTLP
122
- format to the OpenTelemetry collector.
92
+ ## Overview of crates
93
+
94
+ The following crates are maintained in this repo:
95
+
96
+ * [ ` opentelemetry ` ] This is the OpenTelemetry API crate, and is the crate
97
+ required to instrument libraries and applications. It contains Logging Bridge
98
+ API, Metrics API, and Tracing API.
99
+ * [ ` opentelemetry-sdk ` ] This is the OpenTelemetry SDK crate, and contains the
100
+ official OpenTelemetry SDK implementation. It contains Logging SDK, Metrics
101
+ SDK, and Tracing SDK.
102
+ * [ ` opentelemetry-otlp ` ] exporter for sending logs, metrics and traces in the
103
+ OTLP format to an endpoint accepting OTLP, typically the OpenTelemetry
104
+ collector.
105
+ * [ ` opentelemetry-stdout ` ] exporter for sending logs, metrics and traces to
106
+ stdout, for learning/debugging purposes.
107
+ * [ ` opentelemetry-http ` ] This crate contains utility functions to help with
108
+ exporting telemetry, propagation, over [ ` http ` ] .
109
+ * [ ` opentelemetry-appender-log ` ] This crate provides logging appender to route
110
+ logs emitted using the ` log ` crate to opentelemetry.
111
+ * [ ` opentelemetry-appender-tracing ` ] This crate provides logging appender to route
112
+ logs emitted using the ` tracing ` crate to opentelemetry.
113
+ * [ ` opentelemetry-jaeger-propagator ` ] provides context propagation using [ jaeger
114
+ propagation
115
+ format] ( https://www.jaegertracing.io/docs/1.18/client-libraries/#propagation-format ) .
123
116
* [ ` opentelemetry-prometheus ` ] provides a pipeline and exporter for sending
124
- metrics information to [ ` Prometheus ` ] .
117
+ metrics to [ ` Prometheus ` ] .
125
118
* [ ` opentelemetry-semantic-conventions ` ] provides standard names and semantic
126
119
otel conventions.
127
- * [ ` opentelemetry-stackdriver ` ] provides an exporter for Google's [ Cloud Trace]
128
- (which used to be called StackDriver).
129
- * [ ` opentelemetry-zipkin ` ] provides a pipeline and exporter for sending trace
130
- information to [ ` Zipkin ` ] .
131
-
132
- Additionally, there are also several third-party crates which are not
133
- maintained by the ` opentelemetry ` project. These include:
134
-
135
- * [ ` tracing-opentelemetry ` ] provides integration for applications instrumented
136
- using the [ ` tracing ` ] API and ecosystem.
137
- * [ ` actix-web-opentelemetry ` ] provides integration for the [ ` actix-web ` ] web
138
- server and ecosystem.
139
- * [ ` opentelemetry-application-insights ` ] provides an unofficial [ Azure
140
- Application Insights] exporter.
141
- * [ ` opentelemetry-tide ` ] provides integration for the [ ` Tide ` ] web server and
142
- ecosystem.
143
- * [ ` trillium-opentelemetry ` ] provides metrics instrumentation for [ ` trillium ` ] http servers following [ semantic-conventions] ( https://github.com/open-telemetry/semantic-conventions/blob/main/docs/http/http-metrics.md ) .
144
-
145
- If you're the maintainer of an ` opentelemetry ` ecosystem crate not listed
146
- above, please let us know! We'd love to add your project to the list!
147
-
148
- [ `open-telemetry/opentelemetry-rust` ] : https://github.com/open-telemetry/opentelemetry-rust
149
- [ `opentelemetry-jaeger` ] : https://crates.io/crates/opentelemetry-jaeger
150
- [ `opentelemetry-otlp` ] : https://crates.io/crates/opentelemetry-otlp
120
+ * [ ` opentelemetry-zipkin ` ] provides a pipeline and exporter for sending traces
121
+ to [ ` Zipkin ` ] .
122
+
123
+ In addition, there are several other useful crates in the [ OTel Rust Contrib
124
+ repo] ( https://github.com/open-telemetry/opentelemetry-rust-contrib ) . A lot of
125
+ crates maintained outside OpenTelemetry owned repos can be found in the
126
+ [ OpenTelemetry
127
+ Registry] ( https://opentelemetry.io/ecosystem/registry/?language=rust ) .
128
+
129
+ [ `opentelemetry` ] : https://crates.io/crates/opentelemetry
130
+ [ `opentelemetry-sdk` ] : https://crates.io/crates/opentelemetry-sdk
131
+ [ `opentelemetry-appender-log` ] : https://crates.io/crates/opentelemetry-appender-log
132
+ [ `opentelemetry-appender-tracing` ] : https://crates.io/crates/opentelemetry-appender-tracing
151
133
[ `opentelemetry-http` ] : https://crates.io/crates/opentelemetry-http
134
+ [ `opentelemetry-otlp` ] : https://crates.io/crates/opentelemetry-otlp
135
+ [ `opentelemetry-stdout` ] : https://crates.io/crates/opentelemetry-stdout
136
+ [ `opentelemetry-jaeger-propagator` ] : https://crates.io/crates/opentelemetry-jaeger-propagator
152
137
[ `opentelemetry-prometheus` ] : https://crates.io/crates/opentelemetry-prometheus
153
- [ `opentelemetry-aws` ] : https://crates.io/crates/opentelemetry-aws
154
138
[ `Prometheus` ] : https://prometheus.io
155
139
[ `opentelemetry-zipkin` ] : https://crates.io/crates/opentelemetry-zipkin
156
140
[ `Zipkin` ] : https://zipkin.io
157
- [ `opentelemetry-contrib` ] : https://crates.io/crates/opentelemetry-contrib
158
- [ `Datadog` ] : https://www.datadoghq.com
159
- [ `opentelemetry-datadog` ] : https://crates.io/crates/opentelemetry-datadog
160
- [ `opentelemetry-dynatrace` ] : https://crates.io/crates/opentelemetry-dynatrace
161
141
[ `opentelemetry-semantic-conventions` ] : https://crates.io/crates/opentelemetry-semantic-conventions
162
142
[ `http` ] : https://crates.io/crates/http
163
143
164
- [ `tracing-opentelemetry` ] : https://crates.io/crates/tracing-opentelemetry
165
- [ `tracing` ] : https://crates.io/crates/tracing
166
- [ `actix-web-opentelemetry` ] : https://crates.io/crates/actix-web-opentelemetry
167
- [ `actix-web` ] : https://crates.io/crates/actix-web
168
- [ `opentelemetry-application-insights` ] : https://crates.io/crates/opentelemetry-application-insights
169
- [ Azure Application Insights ] : https://docs.microsoft.com/azure/azure-monitor/app/app-insights-overview
170
- [ `opentelemetry-tide` ] : https://crates.io/crates/opentelemetry-tide
171
- [ `Tide` ] : https://crates.io/crates/tide
172
- [ `opentelemetry-stackdriver` ] : https://crates.io/crates/opentelemetry-stackdriver
173
- [ Cloud Trace ] : https://cloud.google.com/trace/
174
- [ `trillium-opentelemetry` ] : https://github.com/trillium-rs/trillium-opentelemetry
175
- [ `trillium` ] : https://github.com/trillium-rs/trillium
176
-
177
144
## Supported Rust Versions
178
145
179
146
OpenTelemetry is built against the latest stable release. The minimum supported
@@ -207,3 +174,30 @@ The meeting is open for all to join. We invite everyone to join our meeting,
207
174
regardless of your experience level. Whether you're a seasoned OpenTelemetry
208
175
developer, just starting your journey, or simply curious about the work we do,
209
176
you're more than welcome to participate!
177
+
178
+ ## Approvers and Maintainers
179
+
180
+ For GitHub groups see the [ code owners] ( CODEOWNERS ) file.
181
+
182
+ ### Maintainers
183
+
184
+ * [ Cijo Thomas] ( https://github.com/cijothomas )
185
+ * [ Harold Dost] ( https://github.com/hdost )
186
+ * [ Julian Tescher] ( https://github.com/jtescher )
187
+ * [ Zhongyang Wu] ( https://github.com/TommyCpp )
188
+
189
+ ### Approvers
190
+
191
+ * [ Lalit Kumar Bhasin] ( https://github.com/lalitb )
192
+ * [ Shaun Cox] ( https://github.com/shaun-cox )
193
+
194
+ ### Emeritus
195
+
196
+ * [ Dirkjan Ochtman] ( https://github.com/djc )
197
+ * [ Jan Kühle] ( https://github.com/frigus02 )
198
+ * [ Isobel Redelmeier] ( https://github.com/iredelmeier )
199
+ * [ Mike Goldsmith] ( https://github.com/MikeGoldsmith )
200
+
201
+ ### Thanks to all the people who have contributed
202
+
203
+ [ ![ contributors] ( https://contributors-img.web.app/image?repo=open-telemetry/opentelemetry-rust )] ( https://github.com/open-telemetry/opentelemetry-rust/graphs/contributors )
0 commit comments