Skip to content

Commit e47a80f

Browse files
authored
Merge branch 'main' into otel-json
2 parents efa8588 + 58ec379 commit e47a80f

File tree

23 files changed

+454
-299
lines changed

23 files changed

+454
-299
lines changed

.cspell.json

+3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"appenders",
3131
"Bhasin",
3232
"Cijo",
33+
"clippy",
3334
"codecov",
3435
"deque",
3536
"Dirkjan",
@@ -40,6 +41,7 @@
4041
"Kühle",
4142
"Kumar",
4243
"Lalit",
44+
"LIBCLANG",
4345
"msrv",
4446
"Ochtman",
4547
"opentelemetry",
@@ -48,6 +50,7 @@
4850
"quantile",
4951
"Redelmeier",
5052
"reqwest",
53+
"runtimes",
5154
"rustc",
5255
"Tescher",
5356
"tracerprovider",

CONTRIBUTING.md

+14-36
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
The Rust special interest group (SIG) meets weekly on Tuesdays at 9 AM Pacific
44
Time. The meeting is subject to change depending on contributors'
55
availability. Check the [OpenTelemetry community
6-
calendar](https://calendar.google.com/calendar/embed?src=google.com_b79e3e90j7bbsa2n2p5an5lf60%40group.calendar.google.com)
6+
calendar](https://github.com/open-telemetry/community?tab=readme-ov-file#calendar)
77
for specific dates and for Zoom meeting links. "OTel Rust SIG" is the name of
88
meeting for this group.
99

@@ -17,6 +17,15 @@ regardless of your experience level. Whether you're a seasoned OpenTelemetry
1717
developer, just starting your journey, or simply curious about the work we do,
1818
you're more than welcome to participate!
1919

20+
Even though, anybody can contribute, there are benefits of being a member of our
21+
community. See to the [community membership
22+
document](https://github.com/open-telemetry/community/blob/main/community-membership.md)
23+
on how to become a
24+
[**Member**](https://github.com/open-telemetry/community/blob/main/community-membership.md#member),
25+
[**Approver**](https://github.com/open-telemetry/community/blob/main/community-membership.md#approver)
26+
and
27+
[**Maintainer**](https://github.com/open-telemetry/community/blob/main/community-membership.md#maintainer).
28+
2029
## Pull Requests
2130

2231
### Prerequisites
@@ -65,7 +74,7 @@ Open a pull request against the main
6574
repo.
6675

6776
> **Note**
68-
> It is recommended to run [pre-commit script](precommit.sh) from the root of
77+
> It is recommended to run [pre-commit script](scripts/precommit.sh) from the root of
6978
the repo to catch any issues locally.
7079

7180
### How to Receive Comments
@@ -137,7 +146,7 @@ OpenTelemetry supports multiple ways to configure the API, SDK and other compone
137146
- Environment variables
138147
- Compiling time configurations provided in the source code
139148

140-
### Experimental/Unstable features:
149+
### Experimental/Unstable features
141150

142151
Use `otel_unstable` feature flag for implementation of specification with [experimental](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.27.0/specification/document-status.md) status. This approach ensures clear demarcation and safe integration of new or evolving features. Utilize the following structure:
143152

@@ -147,9 +156,10 @@ Use `otel_unstable` feature flag for implementation of specification with [exper
147156
// Your feature implementation
148157
}
149158
```
159+
150160
It's important to regularly review and remove the `otel_unstable` flag from the code once the feature becomes stable. This cleanup process is crucial to maintain the overall code quality and to ensure that stable features are accurately reflected in the main build.
151161

152-
### Optional features:
162+
### Optional features
153163

154164
The potential features include:
155165

@@ -173,38 +183,6 @@ projects in this workspace.
173183
- Run `cargo bench` - this will run benchmarks to show performance
174184
regressions
175185

176-
## Approvers and Maintainers
177-
178-
For GitHub groups see the [code owners](CODEOWNERS) file.
179-
180-
### Maintainers
181-
182-
* [Cijo Thomas](https://github.com/cijothomas)
183-
* [Harold Dost](https://github.com/hdost)
184-
* [Julian Tescher](https://github.com/jtescher)
185-
* [Zhongyang Wu](https://github.com/TommyCpp)
186-
187-
### Approvers
188-
189-
* [Lalit Kumar Bhasin](https://github.com/lalitb)
190-
* [Shaun Cox](https://github.com/shaun-cox)
191-
192-
### Emeritus
193-
194-
- [Dirkjan Ochtman](https://github.com/djc)
195-
- [Jan Kühle](https://github.com/frigus02)
196-
- [Isobel Redelmeier](https://github.com/iredelmeier)
197-
- [Mike Goldsmith](https://github.com/MikeGoldsmith)
198-
199-
### Become an Approver or a Maintainer
200-
201-
See the [community membership document in OpenTelemetry community
202-
repo](https://github.com/open-telemetry/community/blob/master/community-membership.md).
203-
204-
### Thanks to all the people who have contributed
205-
206-
[![contributors](https://contributors-img.web.app/image?repo=open-telemetry/opentelemetry-rust)](https://github.com/open-telemetry/opentelemetry-rust/graphs/contributors)
207-
208186
## FAQ
209187

210188
### Where should I put third party propagators/exporters, contrib or standalone crates?

README.md

+82-80
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
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-
51
# OpenTelemetry Rust
62

73
The Rust [OpenTelemetry](https://opentelemetry.io/) implementation.
@@ -13,10 +9,6 @@ The Rust [OpenTelemetry](https://opentelemetry.io/) implementation.
139
[![codecov](https://codecov.io/gh/open-telemetry/opentelemetry-rust/branch/main/graph/badge.svg)](https://codecov.io/gh/open-telemetry/opentelemetry-rust)
1410
[![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023)
1511

16-
[Website](https://opentelemetry.io/) |
17-
[Slack](https://cloud-native.slack.com/archives/C03GDP0H023) |
18-
[Documentation](https://docs.rs/opentelemetry)
19-
2012
## Overview
2113

2214
OpenTelemetry is a collection of tools, APIs, and SDKs used to instrument,
@@ -48,7 +40,6 @@ available:
4840

4941
* [opentelemetry-appender-log](opentelemetry-appender-log/README.md)
5042
* [opentelemetry-appender-tracing](opentelemetry-appender-tracing/README.md)
51-
* opentelemetry-appender-slog // TODO: Add link once available
5243

5344
If you already use the logging APIs from above, continue to use them, and use
5445
the appenders above to bridge the logs to OpenTelemetry. If you are using a
@@ -91,89 +82,73 @@ The example above requires the following packages:
9182
```toml
9283
# Cargo.toml
9384
[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"] }
9788
```
9889

9990
See the [examples](./examples) directory for different integration patterns.
10091

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 Context API,
98+
Baggage API, Propagators API, Logging Bridge API, Metrics API, and Tracing
99+
API.
100+
* [`opentelemetry-sdk`] This is the OpenTelemetry SDK crate, and contains the
101+
official OpenTelemetry SDK implementation. It contains Logging SDK, Metrics
102+
SDK, and Tracing SDK. It also contains propagator implementations.
103+
* [`opentelemetry-otlp`] - exporter to send telemetry (logs, metrics and traces)
104+
in the [OTLP
105+
format](https://github.com/open-telemetry/opentelemetry-specification/tree/main/specification/protocol)
106+
to an endpoint accepting OTLP. This could be the [OTel
107+
Collector](https://github.com/open-telemetry/opentelemetry-collector),
108+
telemetry backends like [Jaeger](https://www.jaegertracing.io/),
109+
[Prometheus](https://prometheus.io/docs/prometheus/latest/feature_flags/#otlp-receiver)
110+
or [vendor specific endpoints](https://opentelemetry.io/ecosystem/vendors/).
111+
* [`opentelemetry-stdout`] exporter for sending logs, metrics and traces to
112+
stdout, for learning/debugging purposes.
113+
* [`opentelemetry-http`] This crate contains utility functions to help with
114+
exporting telemetry, propagation, over [`http`].
115+
* [`opentelemetry-appender-log`] This crate provides logging appender to route
116+
logs emitted using the [log](https://docs.rs/log/latest/log/) crate to
117+
opentelemetry.
118+
* [`opentelemetry-appender-tracing`] This crate provides logging appender to
119+
route logs emitted using the [tracing](https://crates.io/crates/tracing) crate
120+
to opentelemetry.
121+
* [`opentelemetry-jaeger-propagator`] provides context propagation using [jaeger
122+
propagation
123+
format](https://www.jaegertracing.io/docs/1.18/client-libraries/#propagation-format).
123124
* [`opentelemetry-prometheus`] provides a pipeline and exporter for sending
124-
metrics information to [`Prometheus`].
125+
metrics to [`Prometheus`].
125126
* [`opentelemetry-semantic-conventions`] provides standard names and semantic
126127
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
128+
* [`opentelemetry-zipkin`] provides a pipeline and exporter for sending traces
129+
to [`Zipkin`].
130+
131+
In addition, there are several other useful crates in the [OTel Rust Contrib
132+
repo](https://github.com/open-telemetry/opentelemetry-rust-contrib). A lot of
133+
crates maintained outside OpenTelemetry owned repos can be found in the
134+
[OpenTelemetry
135+
Registry](https://opentelemetry.io/ecosystem/registry/?language=rust).
136+
137+
[`opentelemetry`]: https://crates.io/crates/opentelemetry
138+
[`opentelemetry-sdk`]: https://crates.io/crates/opentelemetry-sdk
139+
[`opentelemetry-appender-log`]: https://crates.io/crates/opentelemetry-appender-log
140+
[`opentelemetry-appender-tracing`]: https://crates.io/crates/opentelemetry-appender-tracing
151141
[`opentelemetry-http`]: https://crates.io/crates/opentelemetry-http
142+
[`opentelemetry-otlp`]: https://crates.io/crates/opentelemetry-otlp
143+
[`opentelemetry-stdout`]: https://crates.io/crates/opentelemetry-stdout
144+
[`opentelemetry-jaeger-propagator`]: https://crates.io/crates/opentelemetry-jaeger-propagator
152145
[`opentelemetry-prometheus`]: https://crates.io/crates/opentelemetry-prometheus
153-
[`opentelemetry-aws`]: https://crates.io/crates/opentelemetry-aws
154146
[`Prometheus`]: https://prometheus.io
155147
[`opentelemetry-zipkin`]: https://crates.io/crates/opentelemetry-zipkin
156148
[`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
161149
[`opentelemetry-semantic-conventions`]: https://crates.io/crates/opentelemetry-semantic-conventions
162150
[`http`]: https://crates.io/crates/http
163151

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-
177152
## Supported Rust Versions
178153

179154
OpenTelemetry is built against the latest stable release. The minimum supported
@@ -192,9 +167,9 @@ this policy.
192167
See the [contributing file](CONTRIBUTING.md).
193168

194169
The Rust special interest group (SIG) meets weekly on Tuesdays at 9 AM Pacific
195-
Time. The meeting is subject to change depending on contributors'
196-
availability. Check the [OpenTelemetry community
197-
calendar](https://calendar.google.com/calendar/embed?src=google.com_b79e3e90j7bbsa2n2p5an5lf60%40group.calendar.google.com)
170+
Time. The meeting is subject to change depending on contributors' availability.
171+
Check the [OpenTelemetry community
172+
calendar](https://github.com/open-telemetry/community?tab=readme-ov-file#calendar)
198173
for specific dates and for Zoom meeting links. "OTel Rust SIG" is the name of
199174
meeting for this group.
200175

@@ -207,3 +182,30 @@ The meeting is open for all to join. We invite everyone to join our meeting,
207182
regardless of your experience level. Whether you're a seasoned OpenTelemetry
208183
developer, just starting your journey, or simply curious about the work we do,
209184
you're more than welcome to participate!
185+
186+
## Approvers and Maintainers
187+
188+
For GitHub groups see the [code owners](CODEOWNERS) file.
189+
190+
### Maintainers
191+
192+
* [Cijo Thomas](https://github.com/cijothomas)
193+
* [Harold Dost](https://github.com/hdost)
194+
* [Julian Tescher](https://github.com/jtescher)
195+
* [Zhongyang Wu](https://github.com/TommyCpp)
196+
197+
### Approvers
198+
199+
* [Lalit Kumar Bhasin](https://github.com/lalitb)
200+
* [Shaun Cox](https://github.com/shaun-cox)
201+
202+
### Emeritus
203+
204+
* [Dirkjan Ochtman](https://github.com/djc)
205+
* [Jan Kühle](https://github.com/frigus02)
206+
* [Isobel Redelmeier](https://github.com/iredelmeier)
207+
* [Mike Goldsmith](https://github.com/MikeGoldsmith)
208+
209+
### Thanks to all the people who have contributed
210+
211+
[![contributors](https://contributors-img.web.app/image?repo=open-telemetry/opentelemetry-rust)](https://github.com/open-telemetry/opentelemetry-rust/graphs/contributors)

opentelemetry-jaeger/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Please check the [README](https://crates.io/crates/opentelemetry-jaeger) for mor
1313

1414
### Changed
1515

16-
- Update to tonic 0.11 and prost 0.12 (#1536)
16+
- Update to tonic 0.11 and prost 0.12 [#1536](https://github.com/open-telemetry/opentelemetry-rust/pull/1536)
1717

1818
### Removed
1919

opentelemetry-jaeger/src/exporter/thrift/agent.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#![allow(unused_imports)]
55
#![allow(unused_extern_crates)]
6-
#![cfg_attr(feature = "cargo-clippy", allow(clippy::too_many_arguments, clippy::type_complexity))]
6+
#![cfg_attr(clippy, allow(clippy::too_many_arguments, clippy::type_complexity))]
77
#![cfg_attr(rustfmt, rustfmt_skip)]
88

99
extern crate thrift;

opentelemetry-jaeger/src/exporter/thrift/jaeger.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#![allow(unused_imports)]
55
#![allow(unused_extern_crates)]
6-
#![cfg_attr(feature = "cargo-clippy", allow(clippy::too_many_arguments, clippy::type_complexity))]
6+
#![cfg_attr(clippy, allow(clippy::too_many_arguments, clippy::type_complexity))]
77
#![cfg_attr(rustfmt, rustfmt_skip)]
88

99
extern crate thrift;

opentelemetry-jaeger/src/exporter/thrift/zipkincore.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
#![allow(unused_imports)]
55
#![allow(unused_extern_crates)]
6-
#![cfg_attr(feature = "cargo-clippy", allow(clippy::too_many_arguments, clippy::type_complexity))]
6+
#![cfg_attr(clippy, allow(clippy::too_many_arguments, clippy::type_complexity))]
77
#![cfg_attr(rustfmt, rustfmt_skip)]
88

99
extern crate thrift;

0 commit comments

Comments
 (0)