@@ -21,7 +21,7 @@ formats is required. Implementing more than one format is optional.
2121| Get a Tracer | | + | + | + | + | + | + | + | + | + | + | + |
2222| Get a Tracer with schema_url | | + | + | | + | | | + | | + | | |
2323| Get a Tracer with scope attributes | | | | | + | | | + | | + | | |
24- | Associate Tracer with InstrumentationScope | | | | | + | | | + | | | | |
24+ | Associate Tracer with InstrumentationScope | | | | | + | + | | + | | | | |
2525| Safe for concurrent calls | | + | + | + | + | + | + | + | + | + | + | + |
2626| Shutdown (SDK only required) | | + | + | + | + | + | + | + | + | + | + | + |
2727| ForceFlush (SDK only required) | | + | + | - | + | + | + | + | + | + | + | + |
@@ -102,70 +102,70 @@ formats is required. Implementing more than one format is optional.
102102
103103| Feature | Optional | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
104104| ------- | -------- | -- | ---- | -- | ------ | ---- | ------ | --- | ---- | --- | ---- | ----- |
105- | The API provides a way to set and get a global default ` MeterProvider ` . | X | + | + | + | + | | + | + | + | + | - | |
106- | It is possible to create any number of ` MeterProvider ` s. | X | + | + | + | + | | + | + | + | + | + | |
107- | ` MeterProvider ` provides a way to get a ` Meter ` . | | + | + | + | + | | + | + | + | + | - | |
105+ | The API provides a way to set and get a global default ` MeterProvider ` . | X | + | + | + | + | + | + | + | + | + | - | |
106+ | It is possible to create any number of ` MeterProvider ` s. | X | + | + | + | + | + | + | + | + | + | + | |
107+ | ` MeterProvider ` provides a way to get a ` Meter ` . | | + | + | + | + | + | + | + | + | + | - | |
108108| ` get_meter ` accepts name, ` version ` and ` schema_url ` . | | + | + | + | + | | + | + | + | + | - | |
109109| ` get_meter ` accepts ` attributes ` . | | | | | + | | | + | + | + | | |
110- | When an invalid ` name ` is specified a working ` Meter ` implementation is returned as a fallback. | | + | + | + | + | | + | | + | + | - | |
111- | The fallback ` Meter ` ` name ` property keeps its original invalid value. | X | - | - | + | + | | + | | + | - | - | |
112- | Associate ` Meter ` with ` InstrumentationScope ` . | | | + | + | + | | + | | + | + | | |
113- | ` Counter ` instrument is supported. | | + | + | + | + | | + | + | + | + | + | |
114- | ` AsynchronousCounter ` instrument is supported. | | + | + | + | + | | + | + | + | + | + | |
115- | ` Histogram ` instrument is supported. | | + | + | + | + | | + | + | + | + | + | |
116- | ` AsynchronousGauge ` instrument is supported. | | + | + | + | + | | + | + | + | + | + | |
117- | ` Gauge ` instrument is supported. | | - | - | - | + | | - | - | + | - | - | |
118- | ` UpDownCounter ` instrument is supported. | | + | + | + | + | | + | + | + | + | + | |
119- | ` AsynchronousUpDownCounter ` instrument is supported. | | + | + | + | + | | + | + | + | + | + | |
120- | Instruments have ` name ` | | + | + | + | + | | + | + | + | + | + | |
121- | Instruments have kind. | | + | + | + | + | | + | + | + | + | + | |
122- | Instruments have an optional unit of measure. | | + | + | + | + | | + | + | + | + | + | |
123- | Instruments have an optional description. | | + | + | + | + | | + | + | + | + | + | |
124- | A valid instrument MUST be created and warning SHOULD be emitted when multiple instruments are registered under the same ` Meter ` using the same ` name ` . | | | + | + | + | | + | | | | | |
125- | Duplicate instrument registration name conflicts are resolved by using the first-seen for the stream name. | | | + | | | | + | | | | | |
110+ | When an invalid ` name ` is specified a working ` Meter ` implementation is returned as a fallback. | | + | + | + | + | + | + | | + | + | - | |
111+ | The fallback ` Meter ` ` name ` property keeps its original invalid value. | X | - | - | + | + | + | + | | + | - | - | |
112+ | Associate ` Meter ` with ` InstrumentationScope ` . | | | + | + | + | + | + | | + | + | | |
113+ | ` Counter ` instrument is supported. | | + | + | + | + | + | + | + | + | + | + | |
114+ | ` AsynchronousCounter ` instrument is supported. | | + | + | + | + | + | + | + | + | + | + | |
115+ | ` Histogram ` instrument is supported. | | + | + | + | + | + | + | + | + | + | + | |
116+ | ` AsynchronousGauge ` instrument is supported. | | + | + | + | + | + | + | + | + | + | + | |
117+ | ` Gauge ` instrument is supported. | | - | - | - | + | + | - | - | + | - | - | |
118+ | ` UpDownCounter ` instrument is supported. | | + | + | + | + | + | + | + | + | + | + | |
119+ | ` AsynchronousUpDownCounter ` instrument is supported. | | + | + | + | + | + | + | + | + | + | + | |
120+ | Instruments have ` name ` | | + | + | + | + | + | + | + | + | + | + | |
121+ | Instruments have kind. | | + | + | + | + | + | + | + | + | + | + | |
122+ | Instruments have an optional unit of measure. | | + | + | + | + | + | + | + | + | + | + | |
123+ | Instruments have an optional description. | | + | + | + | + | + | + | + | + | + | + | |
124+ | A valid instrument MUST be created and warning SHOULD be emitted when multiple instruments are registered under the same ` Meter ` using the same ` name ` . | | | + | + | + | + | + | | | | | |
125+ | Duplicate instrument registration name conflicts are resolved by using the first-seen for the stream name. | | | + | | | - | + | | | | | |
126126| It is possible to register two instruments with same ` name ` under different ` Meter ` s. | | + | + | + | + | | + | | + | + | + | |
127- | Instrument names conform to the specified syntax. | | + | + | + | + | | + | | | + | | |
128- | Instrument units conform to the specified syntax. | | - | + | | + | | - | | + | + | + | |
129- | Instrument descriptions conform to the specified syntax. | | - | + | | - | | - | | | - | + | |
127+ | Instrument names conform to the specified syntax. | | + | + | + | + | + | + | | | + | | |
128+ | Instrument units conform to the specified syntax. | | - | + | | + | + | - | | + | + | + | |
129+ | Instrument descriptions conform to the specified syntax. | | - | + | | - | + | - | | | - | + | |
130130| Instrument supports the advisory ExplicitBucketBoundaries parameter. | | | + | | | | + | | | | | |
131131| Instrument supports the advisory Attributes parameter. | | | + | | | | - | | | | | |
132132| All methods of ` MeterProvider ` are safe to be called concurrently. | | + | + | + | - | | + | | | + | + | |
133133| All methods of ` Meter ` are safe to be called concurrently. | | + | + | + | - | | + | | | + | + | |
134134| All methods of any instrument are safe to be called concurrently. | | + | + | + | - | | + | | | + | + | |
135- | ` MeterProvider ` allows a ` Resource ` to be specified. | | + | + | + | + | | | + | + | + | + | |
136- | A specified ` Resource ` can be associated with all the produced metrics from any ` Meter ` from the ` MeterProvider ` . | | + | + | + | + | | | + | + | + | + | |
135+ | ` MeterProvider ` allows a ` Resource ` to be specified. | | + | + | + | + | + | | + | + | + | + | |
136+ | A specified ` Resource ` can be associated with all the produced metrics from any ` Meter ` from the ` MeterProvider ` . | | + | + | + | + | + | | + | + | + | + | |
137137| The supplied ` name ` , ` version ` and ` schema_url ` arguments passed to the ` MeterProvider ` are used to create an ` InstrumentationLibrary ` instance stored in the ` Meter ` . | | + | - | | + | | | | + | + | - | |
138138| The supplied ` name ` , ` version ` and ` schema_url ` arguments passed to the ` MeterProvider ` are used to create an ` InstrumentationScope ` instance stored in the ` Meter ` . | | | + | + | + | | + | + | + | + | | |
139139| Configuration is managed solely by the ` MeterProvider ` . | | + | + | + | + | | + | + | + | + | + | |
140140| The ` MeterProvider ` provides methods to update the configuration | X | - | - | - | + | | - | | | - | + | |
141141| The updated configuration applies to all already returned ` Meter ` s. | if above | - | - | - | - | | - | | | - | + | |
142- | There is a way to register ` View ` s with a ` MeterProvider ` . | | - | + | + | + | | + | + | + | + | + | |
143- | The ` View ` instrument selection criteria is as specified. | | | + | + | + | | + | + | + | + | + | |
144- | The ` View ` instrument selection criteria supports wildcards. | X | | + | + | + | | - | | + | + | + | |
145- | The ` View ` instrument selection criteria supports the match-all wildcard. | | | + | + | + | | + | | + | + | + | |
146- | The name of the ` View ` can be specified. | | | + | + | + | | + | + | | + | + | |
142+ | There is a way to register ` View ` s with a ` MeterProvider ` . | | - | + | + | + | + | + | + | + | + | + | |
143+ | The ` View ` instrument selection criteria is as specified. | | | + | + | + | + | + | + | + | + | + | |
144+ | The ` View ` instrument selection criteria supports wildcards. | X | | + | + | + | + | - | | + | + | + | |
145+ | The ` View ` instrument selection criteria supports the match-all wildcard. | | | + | + | + | + | + | | + | + | + | |
146+ | The name of the ` View ` can be specified. | | | + | + | + | + | + | + | | + | + | |
147147| The ` View ` allows configuring the name, description, attributes keys and aggregation of the resulting metric stream. | | | + | + | + | | + | + | + | + | - | |
148148| The ` View ` allows configuring excluded attribute keys of resulting metric stream. | | + | | | | | | | | | | |
149149| The ` View ` allows configuring the exemplar reservoir of resulting metric stream. | X | | - | | - | | - | | | | - | |
150- | The SDK allows more than one ` View ` to be specified per instrument. | X | | + | + | + | | + | | + | + | + | |
151- | The ` Drop ` aggregation is available. | | + | + | + | + | | + | | + | + | + | |
152- | The ` Default ` aggregation is available. | | + | + | + | + | | + | | + | + | + | |
153- | The ` Default ` aggregation uses the specified aggregation by instrument. | | + | + | + | + | | + | | + | + | + | |
154- | The ` Sum ` aggregation is available. | | + | + | + | + | | + | + | + | + | + | |
155- | The ` LastValue ` aggregation is available. | | + | + | + | + | | + | + | + | + | + | |
156- | The ` ExplicitBucketHistogram ` aggregation is available. | | - | + | + | + | | + | + | + | + | + | |
157- | The ` ExponentialBucketHistogram ` aggregation is available. | | | | | + | | | | | | + | |
158- | The metrics Reader implementation supports registering metric Exporters | | | + | + | + | | + | + | + | + | + | |
159- | The metrics Reader implementation supports configuring the default aggregation on the basis of instrument kind. | | | + | | + | | + | | | - | - | |
160- | The metrics Reader implementation supports configuring the default temporality on the basis of instrument kind. | | | + | + | + | | + | | + | + | | |
161- | The metrics Exporter has access to the aggregated metrics data (aggregated points, not raw measurements). | | + | + | + | + | | + | | + | + | + | |
162- | The metrics Exporter ` export ` function can not be called concurrently from the same Exporter instance. | | + | + | + | - | | + | | | + | + | |
163- | The metrics Exporter ` export ` function does not block indefinitely. | | + | + | + | - | | + | | | + | + | |
164- | The metrics Exporter ` export ` function receives a batch of metrics. | | + | + | + | + | | + | + | + | + | + | |
165- | The metrics Exporter ` export ` function returns ` Success ` or ` Failure ` . | | + | + | + | + | | + | + | + | + | + | |
166- | The metrics Exporter provides a ` ForceFlush ` function. | | - | + | + | + | | + | + | + | + | + | |
167- | The metrics Exporter ` ForceFlush ` can inform the caller whether it succeeded, failed or timed out. | | | + | + | + | | + | + | | + | + | |
168- | The metrics Exporter provides a ` shutdown ` function. | | + | + | + | + | | + | + | + | + | + | |
150+ | The SDK allows more than one ` View ` to be specified per instrument. | X | | + | + | + | + | + | | + | + | + | |
151+ | The ` Drop ` aggregation is available. | | + | + | + | + | + | + | | + | + | + | |
152+ | The ` Default ` aggregation is available. | | + | + | + | + | + | + | | + | + | + | |
153+ | The ` Default ` aggregation uses the specified aggregation by instrument. | | + | + | + | + | + | + | | + | + | + | |
154+ | The ` Sum ` aggregation is available. | | + | + | + | + | + | + | + | + | + | + | |
155+ | The ` LastValue ` aggregation is available. | | + | + | + | + | + | + | + | + | + | + | |
156+ | The ` ExplicitBucketHistogram ` aggregation is available. | | - | + | + | + | + | + | + | + | + | + | |
157+ | The ` ExponentialBucketHistogram ` aggregation is available. | | | | | + | + | | | | | + | |
158+ | The metrics Reader implementation supports registering metric Exporters | | | + | + | + | + | + | + | + | + | + | |
159+ | The metrics Reader implementation supports configuring the default aggregation on the basis of instrument kind. | | | + | | + | + | + | | | - | - | |
160+ | The metrics Reader implementation supports configuring the default temporality on the basis of instrument kind. | | | + | + | + | + | + | | + | + | | |
161+ | The metrics Exporter has access to the aggregated metrics data (aggregated points, not raw measurements). | | + | + | + | + | + | + | | + | + | + | |
162+ | The metrics Exporter ` export ` function can not be called concurrently from the same Exporter instance. | | + | + | + | - | + | + | | | + | + | |
163+ | The metrics Exporter ` export ` function does not block indefinitely. | | + | + | + | - | + | + | | | + | + | |
164+ | The metrics Exporter ` export ` function receives a batch of metrics. | | + | + | + | + | + | + | + | + | + | + | |
165+ | The metrics Exporter ` export ` function returns ` Success ` or ` Failure ` . | | + | + | + | + | + | + | + | + | + | + | |
166+ | The metrics Exporter provides a ` ForceFlush ` function. | | - | + | + | + | + | + | + | + | + | + | |
167+ | The metrics Exporter ` ForceFlush ` can inform the caller whether it succeeded, failed or timed out. | | | + | + | + | + | + | + | | + | + | |
168+ | The metrics Exporter provides a ` shutdown ` function. | | + | + | + | + | + | + | + | + | + | + | |
169169| The metrics Exporter ` shutdown ` function do not block indefinitely. | | + | + | + | - | | + | | | + | + | |
170170| The metrics SDK samples ` Exemplar ` s from measurements. | | | + | | - | | + | | | | + | |
171171| Exemplar sampling can be disabled. | | | - | | - | | + | | | | + | |
@@ -194,23 +194,23 @@ Disclaimer: this list of features is still a work in progress, please refer to t
194194
195195| Feature | Optional | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
196196| ------- | -------- | -- | ---- | -- | ------ | ---- | ------ | --- | ---- | --- | ---- | ----- |
197- | LoggerProvider.Get Logger | | | + | | + | | | + | | + | - | |
197+ | LoggerProvider.Get Logger | | | + | | + | + | | + | | + | - | |
198198| LoggerProvider.Get Logger accepts attributes | | | | | + | | | + | | + | | |
199- | LoggerProvider.Shutdown | | | + | | + | | | + | | + | - | |
200- | LoggerProvider.ForceFlush | | | + | | + | | | + | | + | - | |
201- | Logger.Emit(LogRecord) | | | + | | + | | | + | | + | - | |
199+ | LoggerProvider.Shutdown | | | + | | + | + | | + | | + | - | |
200+ | LoggerProvider.ForceFlush | | | + | | + | + | | + | | + | - | |
201+ | Logger.Emit(LogRecord) | | | + | | + | + | | + | | + | - | |
202202| Reuse Standard Attributes | X | + | | | | | | | | | | |
203203| LogRecord.Set EventName | | + | | | | | | | + | + | | |
204204| Logger.Enabled | X | + | | | | | | | + | + | | |
205- | SimpleLogRecordProcessor | | | + | | + | | | + | | + | | |
206- | BatchLogRecordProcessor | | | + | | + | | | + | | + | | |
207- | Can plug custom LogRecordProcessor | | | + | | + | | | + | | + | | |
208- | LogRecordProcessor.Enabled | X | + | | | | | | | + | | | |
205+ | SimpleLogRecordProcessor | | | + | | + | + | | + | | + | | |
206+ | BatchLogRecordProcessor | | | + | | + | + | | + | | + | | |
207+ | Can plug custom LogRecordProcessor | | | + | | + | + | | + | | + | | |
208+ | LogRecordProcessor.Enabled | X | + | | | | + | | | + | | | |
209209| OTLP/gRPC exporter | | | + | | + | | | + | | + | + | |
210- | OTLP/HTTP exporter | | | + | | + | | | + | | + | + | |
210+ | OTLP/HTTP exporter | | | + | | + | + | | + | | + | + | |
211211| OTLP File exporter | | | - | | - | | | | | + | - | |
212- | Can plug custom LogRecordExporter | | | + | | + | | | + | | + | | |
213- | Trace Context Injection | | | + | | + | | | + | | + | + | |
212+ | Can plug custom LogRecordExporter | | | + | | + | + | | + | | + | | |
213+ | Trace Context Injection | | | + | | + | + | | + | | + | + | |
214214
215215## Resource
216216
@@ -253,35 +253,35 @@ Note: Support for environment variables is optional.
253253
254254| Feature | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
255255| ------- | -- | ---- | -- | ------ | ---- | ------ | --- | ---- | --- | ---- | ----- |
256- | OTEL_SDK_DISABLED | - | + | - | + | - | - | + | - | - | - | - |
256+ | OTEL_SDK_DISABLED | - | + | - | + | + | - | + | - | - | - | - |
257257| OTEL_RESOURCE_ATTRIBUTES | + | + | + | + | + | + | + | + | + | + | - |
258258| OTEL_SERVICE_NAME | + | + | + | + | + | + | + | | + | + | |
259259| OTEL_LOG_LEVEL | - | - | + | [ -] [ py1059 ] | + | - | + | | - | - | - |
260260| OTEL_PROPAGATORS | - | + | | + | + | + | + | - | - | - | - |
261261| OTEL_BSP_ * | + | + | + | + | + | + | + | + | - | + | - |
262- | OTEL_BLRP_ * | | + | | | | | | + | - | + | |
262+ | OTEL_BLRP_ * | | + | | | + | | | + | - | + | |
263263| OTEL_EXPORTER_OTLP_ * | + | + | | + | + | + | + | + | + | + | - |
264264| OTEL_EXPORTER_ZIPKIN_ * | - | + | | + | + | - | + | - | - | + | - |
265265| OTEL_TRACES_EXPORTER | - | + | + | + | + | + | + | - | - | - | |
266- | OTEL_METRICS_EXPORTER | - | + | | + | - | - | + | - | - | - | - |
267- | OTEL_LOGS_EXPORTER | - | + | | + | | | + | | - | - | |
266+ | OTEL_METRICS_EXPORTER | - | + | | + | + | - | + | - | - | - | - |
267+ | OTEL_LOGS_EXPORTER | - | + | | + | + | | + | | - | - | |
268268| OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT | + | + | + | + | + | + | + | + | - | + | |
269269| OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT | + | + | + | + | + | + | + | | - | + | |
270270| OTEL_SPAN_EVENT_COUNT_LIMIT | + | + | + | + | + | + | + | + | - | + | |
271271| OTEL_SPAN_LINK_COUNT_LIMIT | + | + | + | + | + | + | + | + | - | + | |
272272| OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT | + | - | | + | + | + | + | | - | + | |
273273| OTEL_LINK_ATTRIBUTE_COUNT_LIMIT | + | - | | + | + | + | + | | - | + | |
274- | OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT | | | | | | | + | | - | | |
275- | OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT | | | | | | | + | | - | | |
274+ | OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT | | | | | + | | + | | - | | |
275+ | OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT | | | | | + | | + | | - | | |
276276| OTEL_TRACES_SAMPLER | + | + | + | + | + | + | + | - | - | - | |
277277| OTEL_TRACES_SAMPLER_ARG | + | + | + | + | + | + | + | - | - | - | |
278278| OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT | + | + | + | + | + | - | + | | - | + | |
279279| OTEL_ATTRIBUTE_COUNT_LIMIT | + | + | + | + | + | - | + | | - | + | |
280- | OTEL_METRIC_EXPORT_INTERVAL | - | + | | + | | | + | | - | + | |
281- | OTEL_METRIC_EXPORT_TIMEOUT | - | - | | + | | | + | | - | + | |
282- | OTEL_METRICS_EXEMPLAR_FILTER | - | + | | | | | + | | - | + | |
283- | OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE | + | + | + | + | | | + | | - | + | |
284- | OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION | | + | | + | | | | | - | | |
280+ | OTEL_METRIC_EXPORT_INTERVAL | - | + | | + | + | | + | | - | + | |
281+ | OTEL_METRIC_EXPORT_TIMEOUT | - | - | | + | + | | + | | - | + | |
282+ | OTEL_METRICS_EXEMPLAR_FILTER | - | + | | | + | | + | | - | + | |
283+ | OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE | + | + | + | + | + | | + | | - | + | |
284+ | OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION | | + | | + | + | | | | - | | |
285285| OTEL_EXPERIMENTAL_CONFIG_FILE | | | | | | | | | - | | |
286286
287287## Declarative configuration
0 commit comments