Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move metrics SDK spec to Mixed #2304

Merged
merged 21 commits into from
Mar 22, 2022
Merged
Show file tree
Hide file tree
Changes from 20 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,9 @@ release.
([#2325](https://github.com/open-telemetry/opentelemetry-specification/pull/2325))
- Changed the Exemplar wording, exemplar should be turned off by default.
([#2414](https://github.com/open-telemetry/opentelemetry-specification/pull/2414))
- Mark Metrics SDK spec as Mixed, with most components moving to Stable, while
Exemplar remaining Feature-freeze.
([#2304](https://github.com/open-telemetry/opentelemetry-specification/pull/2304))

### Logs

Expand Down
23 changes: 19 additions & 4 deletions specification/metrics/sdk.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Metrics SDK

**Status**: [Feature-freeze](../document-status.md)
**Status**: [Mixed](../document-status.md)

<details>
<summary>Table of Contents</summary>
Expand Down Expand Up @@ -49,6 +49,8 @@

## MeterProvider

**Status**: [Stable](../document-status.md)

A `MeterProvider` MUST provide a way to allow a [Resource](../resource/sdk.md) to
be specified. If a `Resource` is specified, it SHOULD be associated with all the
metrics produced by any `Meter` from the `MeterProvider`. The [tracing SDK
Expand Down Expand Up @@ -183,9 +185,10 @@ are the inputs:
apply a [default aggregation](#default-aggregation) configurable on the
basis of instrument kind according to the [MetricReader](#metricreader)
instance.
* The `exemplar_reservoir` (optional) to use for storing exemplars.
This should be a factory or callback similar to aggregation which allows
different reservoirs to be chosen by the aggregation.
* **Status**: [Feature-freeze](../document-status.md) - the
`exemplar_reservoir` (optional) to use for storing exemplars. This should be
a factory or callback similar to aggregation which allows different
reservoirs to be chosen by the aggregation.

In order to avoid conflicts, views which specify a name SHOULD have an
instrument selector that selects at most one instrument. For the registration
Expand Down Expand Up @@ -467,13 +470,17 @@ between two non-identical `Metric` instances having the same `name`:

## Attribute limits

**Status**: [Stable](../document-status.md)

Attributes which belong to Metrics are exempt from the
[common rules of attribute limits](../common/common.md#attribute-limits) at this
time. Attribute truncation or deletion could affect identity of metric time
series and the topic requires further analysis.

## Exemplar

**Status**: [Feature-freeze](../document-status.md)
reyang marked this conversation as resolved.
Show resolved Hide resolved

Exemplars are example data points for aggregated data. They provide specific
context to otherwise general aggregations. Exemplars allow correlation between
aggregated metric data and the original API calls where measurements are
Expand Down Expand Up @@ -635,6 +642,8 @@ measurements using the equivalent of the following naive algorithm:

## MetricReader

**Status**: [Stable](../document-status.md)
reyang marked this conversation as resolved.
Show resolved Hide resolved

`MetricReader` is an SDK implementation object that provides the
common configurable aspects of the OpenTelemetry Metrics SDK and
determines the following capabilities:
Expand Down Expand Up @@ -763,6 +772,8 @@ from `MetricReader` and start a background task which calls the inherited

## MetricExporter

**Status**: [Stable](../document-status.md)

`MetricExporter` defines the interface that protocol-specific exporters MUST
implement so that they can be plugged into OpenTelemetry SDK and support sending
of telemetry data.
Expand Down Expand Up @@ -994,6 +1005,8 @@ errors/exceptions are taken care of.

## Compatibility requirements

**Status**: [Stable](../document-status.md)

All the metrics components SHOULD allow new methods to be added to existing
components without introducing breaking changes.

Expand All @@ -1002,6 +1015,8 @@ existing methods without introducing breaking changes, if possible.

## Concurrency requirements

**Status**: [Stable](../document-status.md)

For languages which support concurrent execution the Metrics SDKs provide
specific guarantees and safeties.

Expand Down