Skip to content

Commit

Permalink
Merge branch 'main' into logs-integration-test
Browse files Browse the repository at this point in the history
  • Loading branch information
lalitb authored May 22, 2024
2 parents a16e407 + 6d3bea7 commit ce5a12a
Show file tree
Hide file tree
Showing 59 changed files with 492 additions and 491 deletions.
1 change: 1 addition & 0 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"reqwest",
"runtimes",
"rustc",
"shoppingcart",
"Tescher",
"tracerprovider",
"Zhongyang",
Expand Down
2 changes: 1 addition & 1 deletion CODEOWNERS → .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

## This file controls who is tagged for review for any given pull request.

## For anything not explicitly taken by someone else:
## For anything not explicitly taken by someone else

* @open-telemetry/rust-approvers
8 changes: 4 additions & 4 deletions .github/ISSUE_TEMPLATE/BUG-REPORT.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,27 +21,27 @@ body:
id: api-version
attributes:
label: API Version
description: What version of the OpenTelemetry API are you using?
description: What version of the `opentelemetry` crate are you using?
placeholder: 0.x, 1.x, etc.
validations:
required: true
- type: textarea
id: sdk-version
attributes:
label: SDK Version
description: What version of the OpenTelemetry SDK are you using?
description: What version of the `opentelemetry_sdk` crate are you using?
placeholder: 0.x, 1.x, etc.
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What Exporters are you seeing the problem on?
label: What Exporter(s) are you seeing the problem on?
multiple: true
options:
- OTLP
- Zipkin
- Jaeger (Deprecated)
- Prometheus
- N/A
- type: textarea
id: logs
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,19 @@ jobs:
env:
CARGO_INCREMENTAL: '0'
RUSTDOCFLAGS: -Dwarnings
semver: # This job uses the latest published crate as baseline for comparison.
runs-on: ubuntu-latest
name: semver
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install stable
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: cargo-semver-checks
uses: obi1kenobi/[email protected]
coverage:
continue-on-error: true
runs-on: ubuntu-latest
Expand Down
2 changes: 0 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ members = [
"examples/*",
"stress",
]
# Any deleted crates with remaining README
exclude = []
resolver = "2"

[profile.bench]
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,6 @@ you're more than welcome to participate!

## Approvers and Maintainers

For GitHub groups see the [code owners](CODEOWNERS) file.

### Maintainers

* [Cijo Thomas](https://github.com/cijothomas)
Expand Down
17 changes: 9 additions & 8 deletions examples/logs-basic/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
# Log Appender for API - Example
# OpenTelemetry Log Appender for log - Example

This example shows how to use the opentelemetry-appender-log crate, which is a
[logging appender](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#log-appender--bridge) that bridges logs from the [log crate](https://docs.rs/log/latest/log/) to OpenTelemetry.
The example setups a LoggerProvider with stdout exporter, so logs are emitted to stdout.
[logging
appender](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#log-appender--bridge)
that bridges logs from the [log crate](https://docs.rs/log/latest/log/) to
OpenTelemetry. The example setups a LoggerProvider with stdout exporter, so logs
are emitted to stdout.

## Usage

Run the following, and Logs emitted using [log](https://docs.rs/log/latest/log/) will be written out to stdout.
Run the following, and Logs emitted using [log](https://docs.rs/log/latest/log/)
will be written out to stdout.

```shell
$ cargo run
cargo run
```



5 changes: 0 additions & 5 deletions opentelemetry-appender-log/CODEOWNERS

This file was deleted.

25 changes: 15 additions & 10 deletions opentelemetry-appender-log/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
# OpenTelemetry Log Appender for `log` crate

![OpenTelemetry — An observability framework for cloud-native software.][splash]

[splash]: https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png

# OpenTelemetry Log Appender

A [Log Appender](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#log-appender--bridge) that bridges logs from the [log crate](https://docs.rs/log/latest/log/) to OpenTelemetry.
This crate contains a [Log Appender](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#log-appender--bridge) that bridges logs from the [log crate](https://docs.rs/log/latest/log/) to OpenTelemetry.

[![Crates.io: opentelemetry-appender-log](https://img.shields.io/crates/v/opentelemetry-appender-log.svg)](https://crates.io/crates/opentelemetry-appender-log)
[![Documentation](https://docs.rs/opentelemetry-appender-log/badge.svg)](https://docs.rs/opentelemetry-appender-log)
[![LICENSE](https://img.shields.io/crates/l/opentelemetry-appender-log)](./LICENSE)
[![GitHub Actions CI](https://github.com/open-telemetry/opentelemetry-rust/workflows/CI/badge.svg)](https://github.com/open-telemetry/opentelemetry-rust/actions?query=workflow%3ACI+branch%3Amain)
[![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023)

## Overview
## OpenTelemetry Overview

[`OpenTelemetry`] is a collection of tools, APIs, and SDKs used to instrument,
generate, collect, and export telemetry data (metrics, logs, and traces) for
analysis in order to understand your software's performance and behavior. This
crate provides additional propagators and exporters for sending telemetry data
to vendors or using experimental propagators like `base64`.
OpenTelemetry is an Observability framework and toolkit designed to create and
manage telemetry data such as traces, metrics, and logs. OpenTelemetry is
vendor- and tool-agnostic, meaning that it can be used with a broad variety of
Observability backends, including open source tools like [Jaeger] and
[Prometheus], as well as commercial offerings.

[`OpenTelemetry`]: https://crates.io/crates/opentelemetry
OpenTelemetry is *not* an observability backend like Jaeger, Prometheus, or other
commercial vendors. OpenTelemetry is focused on the generation, collection,
management, and export of telemetry. A major goal of OpenTelemetry is that you
can easily instrument your applications or systems, no matter their language,
infrastructure, or runtime environment. Crucially, the storage and visualization
of telemetry is intentionally left to other tools.
5 changes: 0 additions & 5 deletions opentelemetry-appender-tracing/CODEOWNERS

This file was deleted.

30 changes: 17 additions & 13 deletions opentelemetry-appender-tracing/README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,34 @@
# OpenTelemetry Log Appender for `tracing` crate

![OpenTelemetry — An observability framework for cloud-native software.][splash]

[splash]: https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png

# OpenTelemetry Log Appender for Tracing

A [Log
This crate contains a [Log
Appender](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/glossary.md#log-appender--bridge)
that bridges logs from the [tracing crate](https://tracing.rs/tracing/#events)
to OpenTelemetry logs. Note that this is different from the existing
to OpenTelemetry. Note that this is different from the existing
[tracing-opentelemetry](https://github.com/tokio-rs/tracing-opentelemetry)
project, which supports bridging traces and logs from tracing into OpenTelemetry
traces. This is an experimental component, and could be merged with the
tracing-opentelemetry crate itself.
traces.

[![Crates.io: opentelemetry-appender-tracing](https://img.shields.io/crates/v/opentelemetry-appender-tracing.svg)](https://crates.io/crates/opentelemetry-appender-tracing)
[![Documentation](https://docs.rs/opentelemetry-appender-tracing/badge.svg)](https://docs.rs/opentelemetry-appender-tracing)
[![LICENSE](https://img.shields.io/crates/l/opentelemetry-appender-tracing)](./LICENSE)
[![GitHub Actions CI](https://github.com/open-telemetry/opentelemetry-rust/workflows/CI/badge.svg)](https://github.com/open-telemetry/opentelemetry-rust/actions?query=workflow%3ACI+branch%3Amain)
[![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023)

## Overview
## OpenTelemetry Overview

[`OpenTelemetry`] is a collection of tools, APIs, and SDKs used to instrument,
generate, collect, and export telemetry data (metrics, logs, and traces) for
analysis in order to understand your software's performance and behavior. This
crate provides additional propagators and exporters for sending telemetry data
to vendors or using experimental propagators like `base64`.
OpenTelemetry is an Observability framework and toolkit designed to create and
manage telemetry data such as traces, metrics, and logs. OpenTelemetry is
vendor- and tool-agnostic, meaning that it can be used with a broad variety of
Observability backends, including open source tools like [Jaeger] and
[Prometheus], as well as commercial offerings.

[`OpenTelemetry`]: https://crates.io/crates/opentelemetry
OpenTelemetry is *not* an observability backend like Jaeger, Prometheus, or other
commercial vendors. OpenTelemetry is focused on the generation, collection,
management, and export of telemetry. A major goal of OpenTelemetry is that you
can easily instrument your applications or systems, no matter their language,
infrastructure, or runtime environment. Crucially, the storage and visualization
of telemetry is intentionally left to other tools.
5 changes: 0 additions & 5 deletions opentelemetry-http/CODEOWNERS

This file was deleted.

47 changes: 20 additions & 27 deletions opentelemetry-http/README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,30 @@
# OpenTelemetry HTTP

![OpenTelemetry — An observability framework for cloud-native software.][splash]

[splash]: https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png

# OpenTelemetry HTTP

The Rust [OpenTelemetry](https://opentelemetry.io/) implementation.
This crate contains helper implementations for sending HTTP requests. Uses
include propagating and extracting context over http, exporting telemetry,
requesting sampling strategies.

[![LICENSE](https://img.shields.io/crates/l/opentelemetry)](./LICENSE)
[![Crates.io: opentelemetry-http](https://img.shields.io/crates/v/opentelemetry-http.svg)](https://crates.io/crates/opentelemetry-http)
[![Documentation](https://docs.rs/opentelemetry-http/badge.svg)](https://docs.rs/opentelemetry-http)
[![LICENSE](https://img.shields.io/crates/l/opentelemetry-http)](./LICENSE)
[![GitHub Actions CI](https://github.com/open-telemetry/opentelemetry-rust/workflows/CI/badge.svg)](https://github.com/open-telemetry/opentelemetry-rust/actions?query=workflow%3ACI+branch%3Amain)
[![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023)

## Overview

[`OpenTelemetry`] is a collection of tools, APIs, and SDKs used to instrument,
generate, collect, and export telemetry data (metrics, logs, and traces) for
analysis in order to understand your software's performance and behavior. This
crate provides a HTTP client interface for use by trace exporters, as well as
helper types to inject and extract key value pairs into/from HTTP headers.

*Compiler support: [requires `rustc` 1.65+][msrv]*

[`OpenTelemetry`]: https://crates.io/crates/opentelemetry
[msrv]: #supported-rust-versions

## Supported Rust Versions
## OpenTelemetry Overview

OpenTelemetry is built against the latest stable release. The minimum supported
version is 1.65. The current OpenTelemetry version is not guaranteed to build
on Rust versions earlier than the minimum supported version.
OpenTelemetry is an Observability framework and toolkit designed to create and
manage telemetry data such as traces, metrics, and logs. OpenTelemetry is
vendor- and tool-agnostic, meaning that it can be used with a broad variety of
Observability backends, including open source tools like [Jaeger] and
[Prometheus], as well as commercial offerings.

The current stable Rust compiler and the three most recent minor versions
before it will always be supported. For example, if the current stable compiler
version is 1.49, the minimum supported version will not be increased past 1.46,
three minor versions prior. Increasing the minimum supported compiler version
is not considered a semver breaking change as long as doing so complies with
this policy.
OpenTelemetry is *not* an observability backend like Jaeger, Prometheus, or other
commercial vendors. OpenTelemetry is focused on the generation, collection,
management, and export of telemetry. A major goal of OpenTelemetry is that you
can easily instrument your applications or systems, no matter their language,
infrastructure, or runtime environment. Crucially, the storage and visualization
of telemetry is intentionally left to other tools.
49 changes: 20 additions & 29 deletions opentelemetry-jaeger-propagator/README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,30 @@
# OpenTelemetry Jaeger Propagator

![OpenTelemetry — An observability framework for cloud-native software.][splash]

[splash]: https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png

# OpenTelemetry Jaeger Propagator

[`Jaeger`] propagator integration for applications instrumented with [`OpenTelemetry`]. To export telemetry to Jaeger, use the opentelemetry-otlp crate.
This crate contains [`Jaeger`] propagator integration for applications
instrumented with [`OpenTelemetry`]. To export telemetry to Jaeger, use the
opentelemetry-otlp crate.

[![Crates.io: opentelemetry-jaeger](https://img.shields.io/crates/v/opentelemetry-jaeger.svg)](https://crates.io/crates/opentelemetry-jaeger)
[![Documentation](https://docs.rs/opentelemetry-jaeger/badge.svg)](https://docs.rs/opentelemetry-jaeger)
[![LICENSE](https://img.shields.io/crates/l/opentelemetry-jaeger)](./LICENSE)
[![Crates.io: opentelemetry-jaeger-propagator](https://img.shields.io/crates/v/opentelemetry-jaeger-propagator.svg)](https://crates.io/crates/opentelemetry-jaeger-propagator)
[![Documentation](https://docs.rs/opentelemetry-jaeger-propagator/badge.svg)](https://docs.rs/opentelemetry-jaeger-propagator)
[![LICENSE](https://img.shields.io/crates/l/opentelemetry-jaeger-propagator)](./LICENSE)
[![GitHub Actions CI](https://github.com/open-telemetry/opentelemetry-rust/workflows/CI/badge.svg)](https://github.com/open-telemetry/opentelemetry-rust/actions?query=workflow%3ACI+branch%3Amain)
[![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023)

## Overview

[`OpenTelemetry`] is a collection of tools, APIs, and SDKs used to instrument,
generate, collect, and export telemetry data (metrics, logs, and traces) for
analysis in order to understand your software's performance and behavior. This
crate provides the ability to create and interact with a Jaeger propagator.

*Compiler support: [requires `rustc` 1.65+][msrv]*

[`Jaeger`]: https://www.jaegertracing.io/
[`OpenTelemetry`]: https://crates.io/crates/opentelemetry
[msrv]: #supported-rust-versions

## Supported Rust Versions
## OpenTelemetry Overview

OpenTelemetry is built against the latest stable release. The minimum supported
version is 1.65. The current OpenTelemetry version is not guaranteed to build
on Rust versions earlier than the minimum supported version.
OpenTelemetry is an Observability framework and toolkit designed to create and
manage telemetry data such as traces, metrics, and logs. OpenTelemetry is
vendor- and tool-agnostic, meaning that it can be used with a broad variety of
Observability backends, including open source tools like [Jaeger] and
[Prometheus], as well as commercial offerings.

The current stable Rust compiler and the three most recent minor versions
before it will always be supported. For example, if the current stable compiler
version is 1.49, the minimum supported version will not be increased past 1.46,
three minor versions prior. Increasing the minimum supported compiler version
is not considered a semver breaking change as long as doing so complies with
this policy.
OpenTelemetry is *not* an observability backend like Jaeger, Prometheus, or other
commercial vendors. OpenTelemetry is focused on the generation, collection,
management, and export of telemetry. A major goal of OpenTelemetry is that you
can easily instrument your applications or systems, no matter their language,
infrastructure, or runtime environment. Crucially, the storage and visualization
of telemetry is intentionally left to other tools.
3 changes: 3 additions & 0 deletions opentelemetry-jaeger-propagator/src/propagator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ const DEPRECATED_PARENT_SPAN: &str = "0";
const TRACE_FLAG_DEBUG: TraceFlags = TraceFlags::new(0x04);

/// `Propagator` implements the [Jaeger propagation format].
/// See [module level documentation](self#Examples) for examples.
///
/// [jaeger propagation format]: https://www.jaegertracing.io/docs/1.18/client-libraries/#propagation-format
#[derive(Clone, Debug)]
pub struct Propagator {
baggage_prefix: &'static str,
Expand Down
6 changes: 6 additions & 0 deletions opentelemetry-otlp/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

## vNext

- Add "metrics", "logs" to default features. With this, default feature list is
"trace", "metrics" and "logs".
- `OtlpMetricPipeline.build()` no longer invoke the
`global::set_meter_provider`. User who setup the pipeline must do it
themselves using `global::set_meter_provider(meter_provider.clone());`.

## v0.16.0

### Fixed
Expand Down
6 changes: 0 additions & 6 deletions opentelemetry-otlp/CODEOWNERS

This file was deleted.

2 changes: 1 addition & 1 deletion opentelemetry-otlp/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ logs = ["opentelemetry/logs", "opentelemetry_sdk/logs", "opentelemetry-proto/log
# add ons
serialize = ["serde", "serde_json"]

default = ["grpc-tonic", "trace"]
default = ["grpc-tonic", "trace", "metrics", "logs"]

# grpc using tonic
grpc-tonic = ["tonic", "prost", "http", "tokio", "opentelemetry-proto/gen-tonic"]
Expand Down
5 changes: 3 additions & 2 deletions opentelemetry-otlp/examples/basic-otlp-http/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,6 @@ opentelemetry-appender-tracing = { path = "../../../opentelemetry-appender-traci
opentelemetry-semantic-conventions = { path = "../../../opentelemetry-semantic-conventions" }

tokio = { workspace = true, features = ["full"] }
opentelemetry-appender-log = { path = "../../../opentelemetry-appender-log", default-features = false}
log = { workspace = true }
tracing = { workspace = true, features = ["std"]}
tracing-core = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter","registry", "std"] }
Loading

0 comments on commit ce5a12a

Please sign in to comment.