Skip to content

Commit 695258f

Browse files
authored
Add ecosystem crates to readme (#312)
1 parent bf28d41 commit 695258f

File tree

4 files changed

+132
-2
lines changed

4 files changed

+132
-2
lines changed

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,67 @@ fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
4949

5050
See the [examples](./examples) directory for different integration patterns.
5151

52+
## Ecosystem
53+
54+
### Related Crates
55+
56+
In addition to `opentelemetry`, the [`open-telemetry/opentelemetry-rust`]
57+
repository contains several additional crates designed to be used with the
58+
`opentelemetry` ecosystem. This includes a collection of trace `SpanExporter`
59+
and metrics pull and push controller implementations, as well as utility and
60+
adapter crates to assist in propagating state and instrumenting applications.
61+
62+
In particular, the following crates are likely to be of interest:
63+
64+
- [`opentelemetry-jaeger`] provides a pipeline and exporter for sending trace
65+
information to [`Jaeger`].
66+
- [`opentelemetry-otlp`] exporter for sending trace and metric data in the OTLP
67+
format to the OpenTelemetry collector.
68+
- [`opentelemetry-prometheus`] provides a pipeline and exporter for sending
69+
metrics information to [`Prometheus`].
70+
- [`opentelemetry-zipkin`] provides a pipeline and exporter for sending trace
71+
information to [`Zipkin`].
72+
- [`opentelemetry-contrib`] provides additional exporters to vendors like
73+
[`Datadog`].
74+
- [`opentelemetry-semantic-conventions`] provides standard names and semantic
75+
otel conventions.
76+
77+
Additionally, there are also several third-party crates which are not
78+
maintained by the `opentelemetry` project. These include:
79+
80+
- [`tracing-opentelemetry`] provides integration for applications instrumented
81+
using the [`tracing`] API and ecosystem.
82+
- [`actix-web-opentelemetry`] provides integration for the [`actix-web`] web
83+
server and ecosystem.
84+
- [`opentelemetry-application-insights`] provides an unofficial [Azure
85+
Application Insights] exporter.
86+
- [`opentelemetry-tide`] provides integration for the [`Tide`] web server and
87+
ecosystem.
88+
89+
If you're the maintainer of an `opentelemetry` ecosystem crate not listed
90+
above, please let us know! We'd love to add your project to the list!
91+
92+
[`open-telemetry/opentelemetry-rust`]: https://github.com/open-telemetry/opentelemetry-rust
93+
[`opentelemetry-jaeger`]: https://crates.io/crates/opentelemetry-jaeger
94+
[`Jaeger`]: https://www.jaegertracing.io
95+
[`opentelemetry-otlp`]: https://crates.io/crates/opentelemetry-otlp
96+
[`opentelemetry-prometheus`]: https://crates.io/crates/opentelemetry-prometheus
97+
[`Prometheus`]: https://prometheus.io
98+
[`opentelemetry-zipkin`]: https://crates.io/crates/opentelemetry-zipkin
99+
[`Zipkin`]: https://zipkin.io
100+
[`opentelemetry-contrib`]: https://crates.io/crates/opentelemetry-contrib
101+
[`Datadog`]: https://www.datadoghq.com
102+
[`opentelemetry-semantic-conventions`]: https://crates.io/crates/opentelemetry-semantic-conventions
103+
104+
[`tracing-opentelemetry`]: https://crates.io/crates/tracing-opentelemetry
105+
[`tracing`]: https://crates.io/crates/tracing
106+
[`actix-web-opentelemetry`]: https://crates.io/crates/actix-web-opentelemetry
107+
[`actix-web`]: https://crates.io/crates/actix-web
108+
[`opentelemetry-application-insights`]: https://crates.io/crates/opentelemetry-application-insights
109+
[Azure Application Insights]: https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview
110+
[`opentelemetry-tide`]: https://crates.io/crates/opentelemetry-tide
111+
[`Tide`]: https://crates.io/crates/tide
112+
52113
## Supported Rust Versions
53114

54115
OpenTelemetry is built against the latest stable release. The minimum supported

src/api/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
pub mod baggage;
22
pub(crate) mod context;
33
pub(crate) mod core;
4+
#[cfg(feature = "metrics")]
5+
#[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
46
pub mod labels;
57
#[cfg(feature = "metrics")]
68
#[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]

src/lib.rs

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,66 @@
3030
//! See the [examples](https://github.com/open-telemetry/opentelemetry-rust/tree/master/examples)
3131
//! directory for different integration patterns.
3232
//!
33+
//! ## Related Crates
34+
//!
35+
//! In addition to `opentelemetry`, the [`open-telemetry/opentelemetry-rust`]
36+
//! repository contains several additional crates designed to be used with the
37+
//! `opentelemetry` ecosystem. This includes a collection of trace
38+
//! `SpanExporter` and metrics pull and push controller implementations, as well
39+
//! as utility and adapter crates to assist in propagating state and
40+
//! instrumenting applications.
41+
//!
42+
//! In particular, the following crates are likely to be of interest:
43+
//!
44+
//! - [`opentelemetry-jaeger`] provides a pipeline and exporter for sending
45+
//! trace information to [`Jaeger`].
46+
//! - [`opentelemetry-otlp`] exporter for sending trace and metric data in the
47+
//! OTLP format to the OpenTelemetry collector.
48+
//! - [`opentelemetry-prometheus`] provides a pipeline and exporter for sending
49+
//! metrics information to [`Prometheus`].
50+
//! - [`opentelemetry-zipkin`] provides a pipeline and exporter for sending
51+
//! trace information to [`Zipkin`].
52+
//! - [`opentelemetry-contrib`] provides additional exporters to vendors like
53+
//! [`Datadog`].
54+
//! - [`opentelemetry-semantic-conventions`] provides standard names and
55+
//! semantic otel conventions.
56+
//!
57+
//! Additionally, there are also several third-party crates which are not
58+
//! maintained by the `opentelemetry` project. These include:
59+
//!
60+
//! - [`tracing-opentelemetry`] provides integration for applications
61+
//! instrumented using the [`tracing`] API and ecosystem.
62+
//! - [`actix-web-opentelemetry`] provides integration for the [`actix-web`] web
63+
//! server and ecosystem.
64+
//! - [`opentelemetry-application-insights`] provides an unofficial [Azure
65+
//! Application Insights] exporter.
66+
//! - [`opentelemetry-tide`] provides integration for the [`Tide`] web server
67+
//! and ecosystem.
68+
//!
69+
//! If you're the maintainer of an `opentelemetry` ecosystem crate not listed
70+
//! above, please let us know! We'd love to add your project to the list!
71+
//!
72+
//! [`open-telemetry/opentelemetry-rust`]: https://github.com/open-telemetry/opentelemetry-rust
73+
//! [`opentelemetry-jaeger`]: https://crates.io/crates/opentelemetry-jaeger
74+
//! [`Jaeger`]: https://www.jaegertracing.io
75+
//! [`opentelemetry-otlp`]: https://crates.io/crates/opentelemetry-otlp
76+
//! [`opentelemetry-prometheus`]: https://crates.io/crates/opentelemetry-prometheus
77+
//! [`Prometheus`]: https://prometheus.io
78+
//! [`opentelemetry-zipkin`]: https://crates.io/crates/opentelemetry-zipkin
79+
//! [`Zipkin`]: https://zipkin.io
80+
//! [`opentelemetry-contrib`]: https://crates.io/crates/opentelemetry-contrib
81+
//! [`Datadog`]: https://www.datadoghq.com
82+
//! [`opentelemetry-semantic-conventions`]: https://crates.io/crates/opentelemetry-semantic-conventions
83+
//!
84+
//! [`tracing-opentelemetry`]: https://crates.io/crates/tracing-opentelemetry
85+
//! [`tracing`]: https://crates.io/crates/tracing
86+
//! [`actix-web-opentelemetry`]: https://crates.io/crates/actix-web-opentelemetry
87+
//! [`actix-web`]: https://crates.io/crates/actix-web
88+
//! [`opentelemetry-application-insights`]: https://crates.io/crates/opentelemetry-application-insights
89+
//! [Azure Application Insights]: https://docs.microsoft.com/en-us/azure/azure-monitor/app/app-insights-overview
90+
//! [`opentelemetry-tide`]: https://crates.io/crates/opentelemetry-tide
91+
//! [`Tide`]: https://crates.io/crates/tide
92+
//!
3393
//! ## Supported Rust Versions
3494
//!
3595
//! OpenTelemetry is built against the latest stable release. The minimum
@@ -70,6 +130,9 @@ pub mod sdk;
70130
#[cfg(test)]
71131
pub mod testing;
72132

133+
#[cfg(feature = "metrics")]
134+
#[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
135+
pub use api::labels;
73136
#[cfg(feature = "metrics")]
74137
#[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
75138
pub use api::metrics;
@@ -80,5 +143,5 @@ pub use api::{
80143
baggage,
81144
context::{Context, ContextGuard},
82145
core::{Key, KeyValue, Unit, Value},
83-
labels, propagation,
146+
propagation,
84147
};

src/sdk/resource.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
//! produced by any `Tracer` from the provider are associated with this `Resource`.
1414
//!
1515
//! [`TracerProvider`]: ../../api/trace/provider/trait.TracerProvider.html
16-
use crate::{labels, Key, KeyValue, Value};
16+
#[cfg(feature = "metrics")]
17+
use crate::labels;
18+
use crate::{Key, KeyValue, Value};
1719
#[cfg(feature = "serialize")]
1820
use serde::{Deserialize, Serialize};
1921
use std::collections::{btree_map, btree_map::Entry, BTreeMap};
@@ -105,6 +107,8 @@ impl Resource {
105107
}
106108

107109
/// Encoded labels
110+
#[cfg(feature = "metrics")]
111+
#[cfg_attr(docsrs, doc(cfg(feature = "metrics")))]
108112
pub fn encoded(&self, encoder: &dyn labels::Encoder) -> String {
109113
encoder.encode(&mut self.into_iter())
110114
}

0 commit comments

Comments
 (0)