@@ -21,7 +21,7 @@ formats is required. Implementing more than one format is optional.
21
21
| Get a Tracer | | + | + | + | + | + | + | + | + | + | + | + |
22
22
| Get a Tracer with schema_url | | + | + | | + | | | + | | + | | |
23
23
| Get a Tracer with scope attributes | | | | | + | | | + | | + | | |
24
- | Associate Tracer with InstrumentationScope | | | | | + | | | + | | | | |
24
+ | Associate Tracer with InstrumentationScope | | | | | + | + | | + | | | | |
25
25
| Safe for concurrent calls | | + | + | + | + | + | + | + | + | + | + | + |
26
26
| Shutdown (SDK only required) | | + | + | + | + | + | + | + | + | + | + | + |
27
27
| ForceFlush (SDK only required) | | + | + | - | + | + | + | + | + | + | + | + |
@@ -102,70 +102,70 @@ formats is required. Implementing more than one format is optional.
102
102
103
103
| Feature | Optional | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
104
104
| ------- | -------- | -- | ---- | -- | ------ | ---- | ------ | --- | ---- | --- | ---- | ----- |
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 ` . | | + | + | + | + | + | + | + | + | + | - | |
108
108
| ` get_meter ` accepts name, ` version ` and ` schema_url ` . | | + | + | + | + | | + | + | + | + | - | |
109
109
| ` 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. | | | + | | | - | + | | | | | |
126
126
| 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. | | - | + | | - | + | - | | | - | + | |
130
130
| Instrument supports the advisory ExplicitBucketBoundaries parameter. | | | + | | | | + | | | | | |
131
131
| Instrument supports the advisory Attributes parameter. | | | + | | | | - | | | | | |
132
132
| All methods of ` MeterProvider ` are safe to be called concurrently. | | + | + | + | - | | + | | | + | + | |
133
133
| All methods of ` Meter ` are safe to be called concurrently. | | + | + | + | - | | + | | | + | + | |
134
134
| 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 ` . | | + | + | + | + | + | | + | + | + | + | |
137
137
| The supplied ` name ` , ` version ` and ` schema_url ` arguments passed to the ` MeterProvider ` are used to create an ` InstrumentationLibrary ` instance stored in the ` Meter ` . | | + | - | | + | | | | + | + | - | |
138
138
| The supplied ` name ` , ` version ` and ` schema_url ` arguments passed to the ` MeterProvider ` are used to create an ` InstrumentationScope ` instance stored in the ` Meter ` . | | | + | + | + | | + | + | + | + | | |
139
139
| Configuration is managed solely by the ` MeterProvider ` . | | + | + | + | + | | + | + | + | + | + | |
140
140
| The ` MeterProvider ` provides methods to update the configuration | X | - | - | - | + | | - | | | - | + | |
141
141
| 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. | | | + | + | + | + | + | + | | + | + | |
147
147
| The ` View ` allows configuring the name, description, attributes keys and aggregation of the resulting metric stream. | | | + | + | + | | + | + | + | + | - | |
148
148
| The ` View ` allows configuring excluded attribute keys of resulting metric stream. | | + | | | | | | | | | | |
149
149
| 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. | | + | + | + | + | + | + | + | + | + | + | |
169
169
| The metrics Exporter ` shutdown ` function do not block indefinitely. | | + | + | + | - | | + | | | + | + | |
170
170
| The metrics SDK samples ` Exemplar ` s from measurements. | | | + | | - | | + | | | | + | |
171
171
| Exemplar sampling can be disabled. | | | - | | - | | + | | | | + | |
@@ -194,23 +194,23 @@ Disclaimer: this list of features is still a work in progress, please refer to t
194
194
195
195
| Feature | Optional | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
196
196
| ------- | -------- | -- | ---- | -- | ------ | ---- | ------ | --- | ---- | --- | ---- | ----- |
197
- | LoggerProvider.Get Logger | | | + | | + | | | + | | + | - | |
197
+ | LoggerProvider.Get Logger | | | + | | + | + | | + | | + | - | |
198
198
| 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) | | | + | | + | + | | + | | + | - | |
202
202
| Reuse Standard Attributes | X | + | | | | | | | | | | |
203
203
| LogRecord.Set EventName | | + | | | | | | | + | + | | |
204
204
| 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 | + | | | | + | | | + | | | |
209
209
| OTLP/gRPC exporter | | | + | | + | | | + | | + | + | |
210
- | OTLP/HTTP exporter | | | + | | + | | | + | | + | + | |
210
+ | OTLP/HTTP exporter | | | + | | + | + | | + | | + | + | |
211
211
| OTLP File exporter | | | - | | - | | | | | + | - | |
212
- | Can plug custom LogRecordExporter | | | + | | + | | | + | | + | | |
213
- | Trace Context Injection | | | + | | + | | | + | | + | + | |
212
+ | Can plug custom LogRecordExporter | | | + | | + | + | | + | | + | | |
213
+ | Trace Context Injection | | | + | | + | + | | + | | + | + | |
214
214
215
215
## Resource
216
216
@@ -253,35 +253,35 @@ Note: Support for environment variables is optional.
253
253
254
254
| Feature | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
255
255
| ------- | -- | ---- | -- | ------ | ---- | ------ | --- | ---- | --- | ---- | ----- |
256
- | OTEL_SDK_DISABLED | - | + | - | + | - | - | + | - | - | - | - |
256
+ | OTEL_SDK_DISABLED | - | + | - | + | + | - | + | - | - | - | - |
257
257
| OTEL_RESOURCE_ATTRIBUTES | + | + | + | + | + | + | + | + | + | + | - |
258
258
| OTEL_SERVICE_NAME | + | + | + | + | + | + | + | | + | + | |
259
259
| OTEL_LOG_LEVEL | - | - | + | [ -] [ py1059 ] | + | - | + | | - | - | - |
260
260
| OTEL_PROPAGATORS | - | + | | + | + | + | + | - | - | - | - |
261
261
| OTEL_BSP_ * | + | + | + | + | + | + | + | + | - | + | - |
262
- | OTEL_BLRP_ * | | + | | | | | | + | - | + | |
262
+ | OTEL_BLRP_ * | | + | | | + | | | + | - | + | |
263
263
| OTEL_EXPORTER_OTLP_ * | + | + | | + | + | + | + | + | + | + | - |
264
264
| OTEL_EXPORTER_ZIPKIN_ * | - | + | | + | + | - | + | - | - | + | - |
265
265
| OTEL_TRACES_EXPORTER | - | + | + | + | + | + | + | - | - | - | |
266
- | OTEL_METRICS_EXPORTER | - | + | | + | - | - | + | - | - | - | - |
267
- | OTEL_LOGS_EXPORTER | - | + | | + | | | + | | - | - | |
266
+ | OTEL_METRICS_EXPORTER | - | + | | + | + | - | + | - | - | - | - |
267
+ | OTEL_LOGS_EXPORTER | - | + | | + | + | | + | | - | - | |
268
268
| OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT | + | + | + | + | + | + | + | + | - | + | |
269
269
| OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT | + | + | + | + | + | + | + | | - | + | |
270
270
| OTEL_SPAN_EVENT_COUNT_LIMIT | + | + | + | + | + | + | + | + | - | + | |
271
271
| OTEL_SPAN_LINK_COUNT_LIMIT | + | + | + | + | + | + | + | + | - | + | |
272
272
| OTEL_EVENT_ATTRIBUTE_COUNT_LIMIT | + | - | | + | + | + | + | | - | + | |
273
273
| 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 | | | | | + | | + | | - | | |
276
276
| OTEL_TRACES_SAMPLER | + | + | + | + | + | + | + | - | - | - | |
277
277
| OTEL_TRACES_SAMPLER_ARG | + | + | + | + | + | + | + | - | - | - | |
278
278
| OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT | + | + | + | + | + | - | + | | - | + | |
279
279
| 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 | | + | | + | + | | | | - | | |
285
285
| OTEL_EXPERIMENTAL_CONFIG_FILE | | | | | | | | | - | | |
286
286
287
287
## Declarative configuration
0 commit comments