Skip to content
This repository was archived by the owner on Aug 14, 2024. It is now read-only.

Commit b442499

Browse files
committed
add otel context spec
1 parent 5343eed commit b442499

File tree

1 file changed

+42
-4
lines changed
  • src/docs/sdk/performance/opentelemetry

1 file changed

+42
-4
lines changed

src/docs/sdk/performance/opentelemetry/index.mdx

Lines changed: 42 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,54 @@ TODO: Add history about OpenTelemetry Sentry Exporter: https://github.com/open-t
2222

2323
TODO: Talk about the approach we are using, based on Matt's hackweek project - https://github.com/getsentry/sentry-ruby/pull/1876
2424

25-
## OpenTelemetry Context
26-
27-
TODO: Do we add OpenTelemetry Event Context?
28-
2925
## Transaction Protocol
3026

3127
TODO: Talk about generating transactions
3228

3329
import "./span-protocol.mdx"
3430

31+
## OpenTelemetry Context
32+
33+
Aside from information from Spans and Transactions, OpenTelemetry has meta-level information about the SDK, resource, and service that generated spans. To track this information, we generate a new OpenTelemetry Event Context.
34+
35+
The existence of this context on an event (transaction or error) is how the Sentry backend will know that the incoming event is an OpenTelemetry event.
36+
37+
It uses the following schema:
38+
39+
```ts
40+
interface OpenTelemetryContext {
41+
type?: "opentelemetry",
42+
43+
// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#service
44+
service?: {
45+
// from: service.name
46+
name: string;
47+
// from: service.namespace
48+
namespace?: string;
49+
// from: service.instance.id
50+
instance_id?: string;
51+
// from: service.version
52+
version?: string;
53+
};
54+
55+
// https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/README.md#telemetry-sdk
56+
sdk?: {
57+
// from: telemetry.sdk.name
58+
name?: string;
59+
// from: telemetry.sdk.language
60+
language?: SDKLanguage;
61+
// from: telemetry.sdk.version
62+
version?: string;
63+
// from: telemetry.auto.version
64+
auto_version?: string;
65+
};
66+
67+
// Rest of attribute keys excluding service and sdk keys
68+
// https://github.com/open-telemetry/opentelemetry-proto/blob/724e427879e3d2bae2edc0218fff06e37b9eb46e/opentelemetry/proto/resource/v1/resource.proto#L32
69+
[key: string]?: string,
70+
}
71+
```
72+
3573
## SDK Spec
3674

3775
- SpanProcessor: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk.md#span-processor

0 commit comments

Comments
 (0)