Skip to content

Commit f05162c

Browse files
Update YAML spec compliance matrix for Ruby (#4647)
## Changes This PR is a redo of #4628 to account for the changes made in #4631. To quote the description of #4628: > The Ruby Metrics and Logs implementations added a lot of features since this matrix was last updated. However, we're still in "Development" status, so I'm not sure if this is the appropriate time to update the matrix. Please let me know if we should wait. This also includes some changes to the traces and environment variables sections. There are a few small differences between the boxes checked in #4628 to reflect recent changes. cc @open-telemetry/ruby-maintainers --------- Co-authored-by: Carlos Alberto Cortez <[email protected]>
1 parent c26eb3d commit f05162c

File tree

2 files changed

+142
-142
lines changed

2 files changed

+142
-142
lines changed

spec-compliance-matrix.md

Lines changed: 71 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)