Skip to content

Commit db2b647

Browse files
authored
Merge branch 'main' into exceptions-on-logs-otep
2 parents 53dd845 + 8155988 commit db2b647

31 files changed

+233
-88
lines changed

CHANGELOG.md

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ release.
1111

1212
### Traces
1313

14+
- Define randomness value requirements for W3C Trace Context Level 2.
15+
([#4162](https://github.com/open-telemetry/opentelemetry-specification/pull/4162))
1416
- Deprecate `exception.escaped` attribute, add link to in-development semantic-conventions
1517
on how to record errors across signals.
1618
([#4368](https://github.com/open-telemetry/opentelemetry-specification/pull/4368))
@@ -2901,19 +2903,19 @@ Updates:
29012903

29022904
## v0.4.0 (2020-05-12)
29032905

2904-
- [OTEP-83](https://github.com/open-telemetry/oteps/blob/main/text/0083-component.md)
2906+
- [OTEP-83](oteps/0083-component.md)
29052907
Introduce the notion of InstrumentationLibrary.
2906-
- [OTEP-88](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0088-metric-instrument-optional-refinements.md)
2908+
- [OTEP-88](oteps/metrics/0088-metric-instrument-optional-refinements.md)
29072909
Metrics API instrument foundation.
2908-
- [OTEP-91](https://github.com/open-telemetry/oteps/blob/main/text/logs/0091-logs-vocabulary.md)
2910+
- [OTEP-91](oteps/logs/0091-logs-vocabulary.md)
29092911
Logs vocabulary.
2910-
- [OTEP-92](https://github.com/open-telemetry/oteps/blob/main/text/logs/0092-logs-vision.md)
2912+
- [OTEP-92](oteps/logs/0092-logs-vision.md)
29112913
Logs Vision.
2912-
- [OTEP-90](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0090-remove-labelset-from-metrics-api.md)
2914+
- [OTEP-90](oteps/metrics/0090-remove-labelset-from-metrics-api.md)
29132915
Remove LabelSet from the metrics API.
2914-
- [OTEP-98](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0098-metric-instruments-explained.md)
2916+
- [OTEP-98](oteps/metrics/0098-metric-instruments-explained.md)
29152917
Explain the metric instruments.
2916-
- [OTEP-99](https://github.com/open-telemetry/oteps/blob/main/text/0099-otlp-http.md)
2918+
- [OTEP-99](oteps/0099-otlp-http.md)
29172919
OTLP/HTTP: HTTP Transport Extension for OTLP.
29182920
- Define handling of null and empty attribute values.
29192921
- Rename Setter.put to Setter.set
@@ -2933,15 +2935,15 @@ Updates:
29332935

29342936
## v0.3.0 (2020-02-21)
29352937

2936-
- [OTEP-0059](https://github.com/open-telemetry/oteps/blob/main/text/trace/0059-otlp-trace-data-format.md)
2938+
- [OTEP-0059](oteps/trace/0059-otlp-trace-data-format.md)
29372939
Add OTLP Trace Data Format specification.
2938-
- [OTEP-0066](https://github.com/open-telemetry/oteps/blob/main/text/0066-separate-context-propagation.md)
2940+
- [OTEP-0066](oteps/0066-separate-context-propagation.md)
29392941
Separate Layer for Context Propagation.
2940-
- [OTEP-0070](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0070-metric-bound-instrument.md)
2942+
- [OTEP-0070](oteps/metrics/0070-metric-bound-instrument.md)
29412943
Rename metric instrument "Handles" to "Bound Instruments".
2942-
- [OTEP-0072](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0072-metric-observer.md)
2944+
- [OTEP-0072](oteps/metrics/0072-metric-observer.md)
29432945
Metric Observer instrument specification (refinement).
2944-
- [OTEP-0080](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0080-remove-metric-gauge.md)
2946+
- [OTEP-0080](oteps/metrics/0080-remove-metric-gauge.md)
29452947
Remove the Metric Gauge instrument, recommend use of other instruments.
29462948
- Update 0003-measure-metric-type to match current Specification.
29472949
- Update 0009-metric-handles to match current Specification.
@@ -2961,23 +2963,23 @@ Updates:
29612963

29622964
## v0.2.0 (2019-10-22)
29632965

2964-
- [OTEP-0001](https://github.com/open-telemetry/oteps/blob/main/text/0001-telemetry-without-manual-instrumentation.md)
2966+
- [OTEP-0001](oteps/0001-telemetry-without-manual-instrumentation.md)
29652967
Added Auto-Instrumentation.
2966-
- [OTEP-0002](https://github.com/open-telemetry/oteps/blob/main/text/trace/0002-remove-spandata.md):
2968+
- [OTEP-0002](oteps/trace/0002-remove-spandata.md):
29672969
Removed SpanData interface in favor of Span Start and End options.
2968-
- [OTEP-0003](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0003-measure-metric-type.md)
2970+
- [OTEP-0003](oteps/metrics/0003-measure-metric-type.md)
29692971
Consolidatesd pre-aggregated and raw metrics APIs.
2970-
- [OTEP-0008](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0008-metric-observer.md)
2972+
- [OTEP-0008](oteps/metrics/0008-metric-observer.md)
29712973
Added Metrics Observers API.
2972-
- [OTEP-0009](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0009-metric-handles.md)
2974+
- [OTEP-0009](oteps/metrics/0009-metric-handles.md)
29732975
Added Metrics Handle API.
2974-
- [OTEP-0010](https://github.com/open-telemetry/oteps/blob/main/text/metrics/0010-cumulative-to-counter.md)
2976+
- [OTEP-0010](oteps/metrics/0010-cumulative-to-counter.md)
29752977
Rename "Cumulative" to "Counter" in the Metrics API.
2976-
- [OTEP-006](https://github.com/open-telemetry/oteps/blob/main/text/trace/0006-sampling.md)
2978+
- [OTEP-006](oteps/trace/0006-sampling.md)
29772979
Moved sampling from the API tp the SDK.
2978-
- [OTEP-0007](https://github.com/open-telemetry/oteps/blob/main/text/0007-no-out-of-band-reporting.md)
2980+
- [OTEP-0007](oteps/0007-no-out-of-band-reporting.md)
29792981
Moved support for out-of-band telemetry from the API to the SDK.
2980-
- [OTEP-0016](https://github.com/open-telemetry/oteps/blob/main/text/0016-named-tracers.md)
2982+
- [OTEP-0016](oteps/0016-named-tracers.md)
29812983
Added named providers for Tracers and Meters.
29822984
- Added design goals and requirements for a telemetry data exchange protocol.
29832985
- Added a Span Processor interface for intercepting span start and end

development/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Features in Development must be:
1414
To avoid any confusion, all files in this directory must have a note about its Development status.
1515

1616
Development status precedes the alpha version (see
17-
[OTEP 0232](https://github.com/open-telemetry/oteps/blob/main/text/0232-maturity-of-otel.md#explanation)).
17+
[OTEP 0232](../oteps/0232-maturity-of-otel.md#explanation)).
1818
All changes in the `development` folder go through the regular review process. Changes are allowed to be merged faster as completeness of a solution is not a requirement. Approval means that proposed changes are OK for experimentation.
1919

2020
When the feature or parts of it are developed far enough to declare them as an alpha version of a main project and move out of the Development status, it must go through a **new** OTEP PR and it must be expected that design and APIs will be changed. In fact, the same people who approved the experiment may likely be the most critical reviewers. It demonstrates an interest and involvement, not critique.

development/trace/zpages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
zPages are an in-process alternative to external exporters. When included, they collect and aggregate tracing and metrics information in the background; this data is served on web pages when requested.
2626

27-
The idea of "zPages" originates from one of OpenTelemetry's predecessors, [OpenCensus](https://opencensus.io/). You can read more about zPages from the OpenCensus docs [here](https://opencensus.io/zpages) or the OTEP [here](https://github.com/open-telemetry/oteps/blob/main/text/0110-z-pages.md). OpenCensus has different zPage implementations in [Java](https://opencensus.io/zpages/java/), [Go](https://opencensus.io/zpages/go/), and [Node](https://opencensus.io/zpages/node/) and there has been similar internal solutions developed at companies like Uber. Within OpenTelemetry, zPages are available in Go and Rust. The OTel Collector also has [an implementation](https://github.com/open-telemetry/opentelemetry-collector/tree/master/extension/zpagesextension) of zPages.
27+
The idea of "zPages" originates from one of OpenTelemetry's predecessors, [OpenCensus](https://opencensus.io/). You can read more about zPages from the OpenCensus docs [here](https://opencensus.io/zpages) or the OTEP [here](../../oteps/0110-z-pages.md). OpenCensus has different zPage implementations in [Java](https://opencensus.io/zpages/java/), [Go](https://opencensus.io/zpages/go/), and [Node](https://opencensus.io/zpages/node/) and there has been similar internal solutions developed at companies like Uber. Within OpenTelemetry, zPages are available in Go and Rust. The OTel Collector also has [an implementation](https://github.com/open-telemetry/opentelemetry-collector/tree/master/extension/zpagesextension) of zPages.
2828

2929
zPages are uniquely useful in a couple of different ways. One is that they're more lightweight and quicker compared to installing external tracing systems like Jaeger and Zipkin, yet they still share useful ways to debug and gain insight into instrumented applications; these uses depend on the type of zPage, which is detailed below. For high throughput applications, zPages can also analyze more telemetry with the limited set of supported scenarios than external exporters; this is because zPages are in-memory while external exporters are typically configured to send a subset of telemetry for reach analysis to save costs.
3030

oteps/0156-columnar-encoding.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
**Abstract**: This OTEP describes a new protocol, the OTelArrow protocol, which is based on a **generic columnar representation
88
for metrics, logs and traces**. This protocol significantly improves efficiency in scenarios involving the transmission
99
of large batches of metrics, logs, traces. Moreover, it provides a better representation for [multivariate time-series](#multivariate-time-series).
10-
The OTelArrow protocol also supports a fallback mechanism to the [OpenTelemetry protocol (OTEP 0035)](https://github.com/open-telemetry/oteps/blob/main/text/0035-opentelemetry-protocol.md)
10+
The OTelArrow protocol also supports a fallback mechanism to the [OpenTelemetry protocol (OTEP 0035)](0035-opentelemetry-protocol.md)
1111
in instances when one of the endpoints does not support the OTelArrow protocol.
1212

1313
**Reference implementation**: The [OTel Arrow Adapter](https://github.com/f5/otel-arrow-adapter) Go library specifies
@@ -70,7 +70,7 @@ other in memory. The main benefits of a columnar approach are:
7070

7171
![row vs column-oriented](img/0156_OTEL%20-%20Row%20vs%20Column.png)
7272

73-
This OTEP proposes to improve the [OpenTelemetry protocol (OTEP 0035)](https://github.com/open-telemetry/oteps/blob/main/text/0035-opentelemetry-protocol.md)
73+
This OTEP proposes to improve the [OpenTelemetry protocol (OTEP 0035)](0035-opentelemetry-protocol.md)
7474
with a **generic columnar representation for metrics, logs and traces based on Apache Arrow**. Compared to the existing
7575
OpenTelemetry protocol this compatible extension has the following improvements:
7676

@@ -85,7 +85,7 @@ OpenTelemetry protocol this compatible extension has the following improvements:
8585
efficiency, and data minimization require additional data processing capabilities such as data projection,
8686
aggregation, and filtering.
8787

88-
These improvements not only address the aforementioned needs but also answer the [open questions](https://github.com/open-telemetry/oteps/blob/main/text/0035-opentelemetry-protocol.md#open-questions)
88+
These improvements not only address the aforementioned needs but also answer the [open questions](0035-opentelemetry-protocol.md#open-questions)
8989
cited in OTEP 035 (i.e. cpu usage, memory pressure, compression optimization).
9090

9191
**It is important to understand that this proposal is complementary to the existing protocol. The row-oriented version
@@ -749,7 +749,7 @@ the client select between OTLP or OTel Arrow protocol depending on the nature of
749749
## Future Versions and Interoperability
750750

751751
As far as protocol evolution and interoperability mechanisms are concerned, this extension follows the
752-
[recommendations](https://github.com/open-telemetry/oteps/blob/main/text/0035-opentelemetry-protocol.md#future-versions-and-interoperability)
752+
[recommendations](0035-opentelemetry-protocol.md#future-versions-and-interoperability)
753753
outlined in the OTLP spec.
754754

755755
## Prior Art and Alternatives

oteps/0243-app-telemetry-schema-vision-roadmap.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
Discoverability, Interoperability, Type-Safe Client SDKs, Client SDKs Generation,
88
CI/CD Integration, Data Governance, Data Privacy.
99

10-
**Related OTEPs**: [OTEP0152](https://github.com/open-telemetry/oteps/blob/main/text/0152-telemetry-schemas.md), [OTEP0202](https://github.com/open-telemetry/oteps/blob/main/text/0202-events-and-logs-api.md).
10+
**Related OTEPs**: [OTEP0152](0152-telemetry-schemas.md), [OTEP0202](0202-events-and-logs-api.md).
1111

1212
----
1313
_Unlike the traditional data ecosystem (OLTP and OLAP), the world of telemetry
@@ -193,7 +193,7 @@ Telemetry Schemas would replace/augment existing SchemaURL.
193193
![Use cases](./img/0243-otel-weaver-use-cases.svg)
194194

195195
Note: The relationship between Telemetry Schema v1.1
196-
([OTEP 0152](https://github.com/open-telemetry/oteps/blob/main/text/0152-telemetry-schemas.md))
196+
([OTEP 0152](0152-telemetry-schemas.md))
197197
and the Component and Resolved Telemetry Schema concepts is still being
198198
discussed. This will be clarified in future OTEPs (refer to the last section).
199199

oteps/entities/0264-resource-and-entities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ The DataModel would ensure that attributes in Resource are produced from both th
214214

215215
### ResourceEntityRef
216216

217-
The entityref data model, would have the following changes from the original [entity OTEP](https://github.com/open-telemetry/oteps/blob/main/text/entities/0256-entities-data-model.md) to denote references within Resource:
217+
The entityref data model, would have the following changes from the original [entity OTEP](0256-entities-data-model.md) to denote references within Resource:
218218

219219
| Field | Type | Description | Changes |
220220
| ----- | ---- | ----------- | ------- |

oteps/trace/0168-sampling-propagation.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,11 +441,11 @@ data to avoid the computational cost of hashing TraceIDs.
441441

442442
Restricting parent sampling probabilities to powers of two does not limit tail
443443
Samplers from using arbitrary probabilities. The companion [OTEP
444-
170](https://github.com/open-telemetry/oteps/blob/main/text/trace/0170-sampling-probability.md) has discussed
444+
170](0170-sampling-probability.md) has discussed
445445
the use of a `sampler.adjusted_count` attribute that would not be
446446
limited to power-of-two values. Discussion about how to represent the
447447
effective adjusted count for tail-sampled Spans belongs in [OTEP
448-
170](https://github.com/open-telemetry/oteps/blob/main/text/trace/0170-sampling-probability.md), not this OTEP.
448+
170](0170-sampling-probability.md), not this OTEP.
449449

450450
Restricting parent sampling probabilities to powers of two does not limit
451451
Samplers from using arbitrary effective probabilities over a period of
@@ -465,7 +465,7 @@ propagate the `p` value when the context is not sampled, since
465465
`ParentBased` samplers will not change the decision. Although one
466466
use-case was docmented in Google's early Dapper system (known as
467467
"inflationary sampling", see
468-
[OTEP 170](https://github.com/open-telemetry/oteps/blob/main/text/trace/0170-sampling-probability.md#dappers-inflationary-sampler)), the same effect can
468+
[OTEP 170](0170-sampling-probability.md#dappers-inflationary-sampler)), the same effect can
469469
be achieved using a consistent sampling decision in this framework.
470470

471471
### Default behavior

oteps/trace/0220-messaging-semantic-conventions-span-structure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ scenarios and different messaging systems.
6161

6262
## Stages of producing and consuming messages
6363

64-
As previously described in [OTEP 173](https://github.com/open-telemetry/oteps/blob/main/text/trace/0173-messaging-semantic-conventions.md#scenarios.),
64+
As previously described in [OTEP 173](0173-messaging-semantic-conventions.md#scenarios),
6565
producing and consuming a message involves five stages:
6666

6767
```mermaid

spec-compliance-matrix.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ formats is required. Implementing more than one format is optional.
8787
| [Built-in `SpanProcessor`s implement `ForceFlush` spec](specification/trace/sdk.md#forceflush-1) | | | + | | + | + | + | + | + | + | + | |
8888
| [Attribute Limits](specification/common/README.md#attribute-limits) | X | | + | | + | + | + | + | | | | |
8989
| Fetch InstrumentationScope from ReadableSpan | | | + | | + | | | + | | | | |
90+
| [Support W3C Trace Context Level 2 randomness](specification/trace/sdk.md#traceid-randomness) | X | | | | | | | | | | | |
9091

9192
## Baggage
9293

@@ -180,9 +181,9 @@ formats is required. Implementing more than one format is optional.
180181
| A metric Producer accepts an optional metric Filter | | | | | | | - | | | | | |
181182
| The metric Reader implementation supports registering metric Filter and passing them its registered metric Producers | | | | | | | - | | | | | |
182183
| The metric SDK's metric Producer implementations uses the metric Filter | | | | | | | - | | | | | |
183-
| Metric SDK implements [cardinality limit](./specification/metrics/sdk.md#cardinality-limits) | | | | | | | | | | | | |
184-
| Metric SDK supports configuring cardinality limit at MeterReader level | | | | | | | | | | | | |
185-
| Metric SDK supports configuring cardinality limit per metric (using Views) | | | | | | | | | | | | |
184+
| Metric SDK implements [cardinality limit](./specification/metrics/sdk.md#cardinality-limits) | | | + | + | - | | | | - | + | + | |
185+
| Metric SDK supports configuring cardinality limit at MeterReader level | | | + | + | - | | | | - | - | - | |
186+
| Metric SDK supports configuring cardinality limit per metric (using Views) | | | + | + | - | | | | - | - | + | |
186187

187188
## Logs
188189

specification/context/api-propagators.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
* [Get Global Propagator](#get-global-propagator)
3333
* [Set Global Propagator](#set-global-propagator)
3434
- [Propagators Distribution](#propagators-distribution)
35+
* [W3C Trace Context Requirements](#w3c-trace-context-requirements)
3536
* [B3 Requirements](#b3-requirements)
3637
+ [B3 Extract](#b3-extract)
3738
+ [B3 Inject](#b3-inject)
@@ -377,6 +378,17 @@ Additional `Propagator`s implementing vendor-specific protocols such as AWS
377378
X-Ray trace header protocol MUST NOT be maintained or distributed as part of
378379
the Core OpenTelemetry repositories.
379380

381+
### W3C Trace Context Requirements
382+
383+
A W3C Trace Context propagator MUST parse and validate the `traceparent` and `tracestate` HTTP headers as specified in [W3C Trace Context Level 2](https://www.w3.org/TR/trace-context-2/). A W3C Trace Context propagator MUST propagate a valid `traceparent` value using the same header. A W3C Trace Context propagator MUST propagate a valid `tracestate` unless the value is empty, in which case the `tracestate` header may be omitted.
384+
385+
When injecting and extracting trace context to or from a carrier, the following fields from the `SpanContext` are propagated.
386+
387+
- TraceID (16 bytes)
388+
- SpanID (8 bytes)
389+
- TraceFlags (8 bits)
390+
- TraceState (string, unless empty)
391+
380392
### B3 Requirements
381393

382394
B3 has both single and multi-header encodings. It also has semantics that do not

0 commit comments

Comments
 (0)