Skip to content

Commit 3d6e53b

Browse files
authored
Merge branch 'main' into remove-logdata
2 parents ee9ace9 + 2030f8f commit 3d6e53b

File tree

14 files changed

+2005
-214
lines changed

14 files changed

+2005
-214
lines changed

examples/logs-basic/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ publish = false
99
opentelemetry = { path = "../../opentelemetry", features = ["logs"] }
1010
opentelemetry_sdk = { path = "../../opentelemetry-sdk", features = ["logs"] }
1111
opentelemetry-stdout = { path = "../../opentelemetry-stdout", features = ["logs"]}
12-
opentelemetry-appender-log = { path = "../../opentelemetry-appender-log", default-features = false}
12+
opentelemetry-appender-tracing = { path = "../../opentelemetry-appender-tracing", default-features = false}
1313
opentelemetry-semantic-conventions = { path = "../../opentelemetry-semantic-conventions" }
14-
log = { workspace = true }
15-
serde_json = { workspace = true }
14+
tracing = { workspace = true, features = ["std"]}
15+
tracing-subscriber = { workspace = true, features = ["registry", "std"] }

examples/logs-basic/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
# OpenTelemetry Log Appender for log - Example
1+
# OpenTelemetry Log Appender for tracing - Example
22

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

1010
## Usage
1111

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

1515
```shell

examples/logs-basic/src/main.rs

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,22 @@
1-
use log::{error, Level};
21
use opentelemetry::KeyValue;
3-
use opentelemetry_appender_log::OpenTelemetryLogBridge;
2+
use opentelemetry_appender_tracing::layer;
43
use opentelemetry_sdk::logs::LoggerProvider;
54
use opentelemetry_sdk::Resource;
6-
use opentelemetry_semantic_conventions::resource::SERVICE_NAME;
5+
use tracing::error;
6+
use tracing_subscriber::prelude::*;
77

88
fn main() {
9-
// Setup LoggerProvider with a stdout exporter
109
let exporter = opentelemetry_stdout::LogExporter::default();
11-
let logger_provider = LoggerProvider::builder()
12-
.with_resource(Resource::new([KeyValue::new(
13-
SERVICE_NAME,
14-
"logs-basic-example",
10+
let provider: LoggerProvider = LoggerProvider::builder()
11+
.with_resource(Resource::new(vec![KeyValue::new(
12+
"service.name",
13+
"log-appender-tracing-example",
1514
)]))
1615
.with_simple_exporter(exporter)
1716
.build();
17+
let layer = layer::OpenTelemetryTracingBridge::new(&provider);
18+
tracing_subscriber::registry().with(layer).init();
1819

19-
// Setup Log Appender for the log crate.
20-
let otel_log_appender = OpenTelemetryLogBridge::new(&logger_provider);
21-
log::set_boxed_logger(Box::new(otel_log_appender)).unwrap();
22-
log::set_max_level(Level::Error.to_level_filter());
23-
24-
// Emit logs using macros from the log crate.
25-
// These logs gets piped through OpenTelemetry bridge and gets exported to stdout.
26-
error!(target: "my-target", "hello from {}. My price is {}", "apple", 2.99);
20+
error!(name: "my-event-name", target: "my-system", event_id = 20, user_name = "otel", user_email = "[email protected]", message = "This is an example message");
21+
let _ = provider.shutdown();
2722
}

opentelemetry-sdk/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
- logs::LogData - Previously deprecated in version 0.27.1
2323
Migration Guidance: This structure is no longer utilized within the SDK, and users should not have dependencies on it.
2424

25+
- *Breaking* Removed the following deprecated methods:
26+
- `Logger::provider()` : Previously deprecated in version 0.27.1
27+
- `Logger::instrumentation_scope()` : Previously deprecated in version 0.27.1.
28+
Migration Guidance:
29+
- These methods were intended for log appenders. Keep the clone of the provider handle, instead of depending on above methods.
30+
2531
## 0.27.1
2632

2733
Released 2024-Nov-27

opentelemetry-sdk/src/logs/log_emitter.rs

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -257,21 +257,8 @@ impl Logger {
257257
Logger { scope, provider }
258258
}
259259

260-
#[deprecated(
261-
since = "0.27.1",
262-
note = "This method was intended for appender developers, but has no defined use-case in typical workflows. It is deprecated and will be removed in the next major release."
263-
)]
264-
/// LoggerProvider associated with this logger.
265-
pub fn provider(&self) -> &LoggerProvider {
266-
&self.provider
267-
}
268-
269-
#[deprecated(
270-
since = "0.27.1",
271-
note = "This method was intended for appender developers, but has no defined use-case in typical workflows. It is deprecated and will be removed in the next major release."
272-
)]
273-
/// Instrumentation scope of this logger.
274-
pub fn instrumentation_scope(&self) -> &InstrumentationScope {
260+
#[cfg(test)]
261+
pub(crate) fn instrumentation_scope(&self) -> &InstrumentationScope {
275262
&self.scope
276263
}
277264
}

opentelemetry-semantic-conventions/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
## vNext
44

5+
- Update to [v1.29.0](https://github.com/open-telemetry/semantic-conventions/releases/tag/v1.29.0) of the semantic conventions.
6+
- Update to [v0.11.0](https://github.com/open-telemetry/weaver/releases/tag/v0.11.0) of the semantic conventions.
7+
58
## 0.27.0
69

710
Released 2024-Nov-11

opentelemetry-semantic-conventions/scripts/generate-consts-from-spec.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
55
CRATE_DIR="${SCRIPT_DIR}/../"
66

77
# freeze the spec version and generator version to make generation reproducible
8-
SPEC_VERSION=1.28.0
9-
WEAVER_VERSION=v0.10.0
8+
SPEC_VERSION=1.29.0
9+
WEAVER_VERSION=v0.11.0
1010

1111
cd "$CRATE_DIR"
1212

opentelemetry-semantic-conventions/scripts/templates/registry/rust/attribute.rs.j2

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111

1212
{% for root_ns in ctx %}
1313
{% for attr in root_ns.attributes | rejectattr("name", "in", params.excluded_attributes) %}
14-
{{ [attr.brief, concat_if("\n\n## Notes\n\n", attr.note), attr_macros.examples(attr)] | comment }}
14+
{# Escape any `<...>` tags to `[...]` to avoid Rustdoc warnings and HTML parsing issues. #}
15+
{% set safe_note = attr.note | replace('<', '[') | replace('>', ']') %}
16+
{{ [attr.brief, concat_if("\n\n## Notes\n\n", safe_note), attr_macros.examples(attr)] | comment }}
1517
{% if attr is experimental %}
1618
#[cfg(feature = "semconv_experimental")]
1719
{% endif %}

opentelemetry-semantic-conventions/scripts/templates/registry/rust/weaver.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ comment_formats:
1414
default_comment_format: rust
1515

1616
params:
17-
schema_url: "https://opentelemetry.io/schemas/1.28.0"
17+
schema_url: "https://opentelemetry.io/schemas/1.29.0"
1818
exclude_root_namespace: []
1919
excluded_attributes: ["messaging.client_id"]
2020

0 commit comments

Comments
 (0)