From bf91d7eb8a219b1e0b6e87d565068c54f7e720d9 Mon Sep 17 00:00:00 2001
From: Jack Berg <34418638+jack-berg@users.noreply.github.com>
Date: Thu, 9 Oct 2025 13:17:20 -0500
Subject: [PATCH 1/6] Track language implementation status in meta schema
---
CONTRIBUTING.md | 7 +-
schema-docs.md | 795 ++++++++++
schema/meta_schema.yaml | 2559 +++++++++++++++++-------------
scripts/fix-meta-schema.js | 10 +-
scripts/generate-descriptions.js | 6 +-
scripts/generate-markdown.js | 70 +-
scripts/meta-schema.js | 342 +++-
7 files changed, 2607 insertions(+), 1182 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 00f178ce..b8527be4 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -253,7 +253,7 @@ make all
* Property descriptions and semantics
* Track which types are SDK extension plugins
-* Implementation support status (TODO)
+* Implementation support status
There are variety of tasks which intersect with the meta schema:
@@ -266,6 +266,11 @@ Ensures that the JSON schema and the meta schema are kept in sync:
* For each meta schema type:
* If a property exists in the JSON schema and not the meta schema, add it.
* If a property exists in the meta schema and not the JSON schema, delete it.
+* If a language implementation is known (i.e. defined in constant array `KNOWN_LANGUAGES` in [meta-schema.js](./scripts/meta-schema.js)) but not in meta schema, add it.
+* If a language implementation exists in meta schema but is not known, delete it.
+* For each language implementation:
+ * If a type exists in the JSON schema and not in the language implementation's type support status of the meta schema, add it.
+ * If a type exists in the language implementation's type support status of the meta schema and no in the JSON schema, delete it.
When this task adds new entries to the meta schema, they are stubbed out with `TODO` placeholders. Contributors should update these with sensible values.
diff --git a/schema-docs.md b/schema-docs.md
index 698b1b3d..896633a0 100644
--- a/schema-docs.md
+++ b/schema-docs.md
@@ -93,6 +93,8 @@
* [ViewSelector](#viewselector)
* [ViewStream](#viewstream)
* [ZipkinSpanExporter](#zipkinspanexporter)
+* [Language Support Status](#language-support-status)
+ * [java](#java)
* [SDK Extension Plugins](#sdk-extension-plugins)
@@ -112,6 +114,19 @@ TODO
| `last_value` | [`LastValueAggregation`](#lastvalueaggregation) | `false` | No constraints. | TODO |
| `sum` | [`SumAggregation`](#sumaggregation) | `false` | No constraints. | TODO |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `default` | supported |
+| `drop` | supported |
+| `explicit_bucket_histogram` | supported |
+| `base2_exponential_bucket_histogram` | supported |
+| `last_value` | supported |
+| `sum` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -211,6 +226,15 @@ Usages:
| `attribute_value_length_limit` | one of:
* `integer`
* `null`
| `false` | No constraints. | Configure max attribute value size.
Value must be non-negative.
If omitted or null, there is no limit.
|
| `attribute_count_limit` | one of:
* `integer`
* `null`
| `false` | No constraints. | Configure max attribute count.
Value must be non-negative.
If omitted or null, 128 is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `attribute_value_length_limit` | supported |
+| `attribute_count_limit` | supported |
+
+
Constraints:
* `additionalProperties`: `true`
@@ -251,6 +275,16 @@ Usages:
| `value` | `oneOf` | `true` | No constraints. | The attribute value.
The type of value must match .type.
|
| `type` | [`AttributeType`](#attributetype) | `false` | No constraints. | The attribute type.
Values include: string, bool, int, double, string_array, bool_array, int_array, double_array.
If omitted or null, string is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `name` | supported |
+| `value` | supported |
+| `type` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -434,6 +468,16 @@ Usages:
| `max_size` | one of:
* `integer`
* `null`
| `false` | No constraints. | TODO |
| `record_min_max` | one of:
* `boolean`
* `null`
| `false` | No constraints. | TODO |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `max_scale` | supported |
+| `max_size` | supported |
+| `record_min_max` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -485,6 +529,18 @@ Usages:
| `max_export_batch_size` | one of:
* `integer`
* `null`
| `false` | * `exclusiveMinimum`: `0`
| Configure maximum batch size. Value must be positive.
If omitted or null, 512 is used.
|
| `exporter` | [`LogRecordExporter`](#logrecordexporter) | `true` | No constraints. | Configure exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `schedule_delay` | supported |
+| `export_timeout` | supported |
+| `max_queue_size` | supported |
+| `max_export_batch_size` | supported |
+| `exporter` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -550,6 +606,18 @@ Usages:
| `max_export_batch_size` | one of:
* `integer`
* `null`
| `false` | * `exclusiveMinimum`: `0`
| Configure maximum batch size. Value must be positive.
If omitted or null, 512 is used.
|
| `exporter` | [`SpanExporter`](#spanexporter) | `true` | No constraints. | Configure exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `schedule_delay` | supported |
+| `export_timeout` | supported |
+| `max_queue_size` | supported |
+| `max_export_batch_size` | supported |
+| `exporter` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -618,6 +686,21 @@ Usages:
| `observable_up_down_counter` | one of:
* `integer`
* `null`
| `false` | * `exclusiveMinimum`: `0`
| Configure default cardinality limit for observable_up_down_counter instruments.
If omitted or null, the value from .default is used.
|
| `up_down_counter` | one of:
* `integer`
* `null`
| `false` | * `exclusiveMinimum`: `0`
| Configure default cardinality limit for up_down_counter instruments.
If omitted or null, the value from .default is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `default` | supported |
+| `counter` | supported |
+| `gauge` | supported |
+| `histogram` | supported |
+| `observable_counter` | supported |
+| `observable_gauge` | supported |
+| `observable_up_down_counter` | supported |
+| `up_down_counter` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -833,6 +916,15 @@ Usages:
| `peer` | [`ExperimentalPeerInstrumentation`](#experimentalpeerinstrumentation) | `false` | No constraints. | Configure instrumentations following the peer semantic conventions.
See peer semantic conventions: https://opentelemetry.io/docs/specs/semconv/attributes-registry/peer/
|
| `http` | [`ExperimentalHttpInstrumentation`](#experimentalhttpinstrumentation) | `false` | No constraints. | Configure instrumentations following the http semantic conventions.
See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `peer` | supported |
+| `http` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -891,6 +983,15 @@ Usages:
| `request_captured_headers` | `array` of `string` | `false` | No constraints. | Configure headers to capture for outbound http requests.
|
| `response_captured_headers` | `array` of `string` | `false` | No constraints. | Configure headers to capture for inbound http responses.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `request_captured_headers` | supported |
+| `response_captured_headers` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -930,6 +1031,15 @@ Usages:
| `client` | [`ExperimentalHttpClientInstrumentation`](#experimentalhttpclientinstrumentation) | `false` | No constraints. | Configure instrumentations following the http client semantic conventions. |
| `server` | [`ExperimentalHttpServerInstrumentation`](#experimentalhttpserverinstrumentation) | `false` | No constraints. | Configure instrumentations following the http server semantic conventions. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `client` | supported |
+| `server` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -963,6 +1073,15 @@ Usages:
| `request_captured_headers` | `array` of `string` | `false` | No constraints. | Configure headers to capture for inbound http requests.
|
| `response_captured_headers` | `array` of `string` | `false` | No constraints. | Configure headers to capture for outbound http responses.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `request_captured_headers` | supported |
+| `response_captured_headers` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1012,6 +1131,25 @@ Usages:
| `rust` | [`ExperimentalLanguageSpecificInstrumentation`](#experimentallanguagespecificinstrumentation) | `false` | No constraints. | Configure Rust language-specific instrumentation libraries.
Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
|
| `swift` | [`ExperimentalLanguageSpecificInstrumentation`](#experimentallanguagespecificinstrumentation) | `false` | No constraints. | Configure Swift language-specific instrumentation libraries.
Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `general` | supported |
+| `cpp` | supported |
+| `dotnet` | supported |
+| `erlang` | supported |
+| `go` | supported |
+| `java` | supported |
+| `js` | supported |
+| `php` | supported |
+| `python` | supported |
+| `ruby` | supported |
+| `rust` | supported |
+| `swift` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1206,6 +1344,14 @@ Usages:
|---|---|---|---|---|
| `disabled` | `boolean` | `false` | No constraints. | Configure if the logger is enabled or not. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `disabled` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1241,6 +1387,15 @@ Usages:
| `default_config` | [`ExperimentalLoggerConfig`](#experimentalloggerconfig) | `false` | No constraints. | Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers. |
| `loggers` | `array` of [`ExperimentalLoggerMatcherAndConfig`](#experimentalloggermatcherandconfig) | `false` | No constraints. | Configure loggers. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `default_config` | supported |
+| `loggers` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1279,6 +1434,15 @@ Usages:
| `name` | `string` | `false` | No constraints. | Configure logger names to match, evaluated as follows:
* If the logger name exactly matches.
* If the logger name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
|
| `config` | [`ExperimentalLoggerConfig`](#experimentalloggerconfig) | `false` | No constraints. | The logger config. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `name` | supported |
+| `config` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1315,6 +1479,14 @@ Usages:
|---|---|---|---|---|
| `disabled` | `boolean` | `false` | No constraints. | Configure if the meter is enabled or not. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `disabled` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1350,6 +1522,15 @@ Usages:
| `default_config` | [`ExperimentalMeterConfig`](#experimentalmeterconfig) | `false` | No constraints. | Configure the default meter config used there is no matching entry in .meter_configurator/development.meters. |
| `meters` | `array` of [`ExperimentalMeterMatcherAndConfig`](#experimentalmetermatcherandconfig) | `false` | No constraints. | Configure meters. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `default_config` | supported |
+| `meters` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1388,6 +1569,15 @@ Usages:
| `name` | `string` | `false` | No constraints. | Configure meter names to match, evaluated as follows:
* If the meter name exactly matches.
* If the meter name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
|
| `config` | [`ExperimentalMeterConfig`](#experimentalmeterconfig) | `false` | No constraints. | The meter config. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `name` | supported |
+| `config` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1424,6 +1614,14 @@ Usages:
|---|---|---|---|---|
| `output_stream` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure output stream.
Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
If omitted or null, stdout is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `output_stream` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1462,6 +1660,16 @@ Usages:
| `temporality_preference` | [`ExporterTemporalityPreference`](#exportertemporalitypreference) | `false` | No constraints. | Configure temporality preference.
Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
If omitted or null, cumulative is used.
|
| `default_histogram_aggregation` | [`ExporterDefaultHistogramAggregation`](#exporterdefaulthistogramaggregation) | `false` | No constraints. | Configure default histogram aggregation.
Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
If omitted or null, explicit_bucket_histogram is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `output_stream` | supported |
+| `temporality_preference` | supported |
+| `default_histogram_aggregation` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1503,6 +1711,14 @@ Usages:
|---|---|---|---|---|
| `service_mapping` | `array` of [`ExperimentalPeerServiceMapping`](#experimentalpeerservicemapping) | `false` | No constraints. | Configure the service mapping for instrumentations following peer.service semantic conventions.
See peer.service semantic conventions: https://opentelemetry.io/docs/specs/semconv/general/attributes/#general-remote-service-attributes
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `service_mapping` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1536,6 +1752,15 @@ Usages:
| `peer` | `string` | `true` | No constraints. | The IP address to map.
|
| `service` | `string` | `true` | No constraints. | The logical name corresponding to the IP address of .peer.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `peer` | supported |
+| `service` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1602,6 +1827,18 @@ Usages:
| `with_resource_constant_labels` | [`IncludeExclude`](#includeexclude) | `false` | No constraints. | Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns. |
| `translation_strategy` | one of:
* `string`
* `null`
| `false` | * `enum`: `["UnderscoreEscapingWithSuffixes","UnderscoreEscapingWithoutSuffixes","NoUTF8EscapingWithSuffixes","NoTranslation"]`
| Configure how Prometheus metrics are exposed. Values include:
* UnderscoreEscapingWithSuffixes, the default. This fully escapes metric names for classic Prometheus metric name compatibility, and includes appending type and unit suffixes.
* UnderscoreEscapingWithoutSuffixes, metric names will continue to escape special characters to _, but suffixes won't be attached.
* NoUTF8EscapingWithSuffixes will disable changing special characters to _. Special suffixes like units and _total for counters will be attached.
* NoTranslation. This strategy bypasses all metric and label name translation, passing them through unaltered.
If omitted or null, UnderscoreEscapingWithSuffixes is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `host` | supported |
+| `port` | supported |
+| `without_scope_info` | supported |
+| `with_resource_constant_labels` | supported |
+| `translation_strategy` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1665,6 +1902,15 @@ Usages:
| `attributes` | [`IncludeExclude`](#includeexclude) | `false` | No constraints. | Configure attributes provided by resource detectors. |
| `detectors` | `array` of [`ExperimentalResourceDetector`](#experimentalresourcedetector) | `false` | No constraints. | Configure resource detectors.
Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language.
If omitted or null, no resource detectors are enabled.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `attributes` | supported |
+| `detectors` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1705,6 +1951,17 @@ Usages:
| `process` | [`ExperimentalProcessResourceDetector`](#experimentalprocessresourcedetector) | `false` | No constraints. | Enable the process resource detector, which populates process.* attributes.
|
| `service` | [`ExperimentalServiceResourceDetector`](#experimentalserviceresourcedetector) | `false` | No constraints. | Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `container` | supported |
+| `host` | supported |
+| `process` | supported |
+| `service` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -1777,6 +2034,14 @@ Usages:
|---|---|---|---|---|
| `disabled` | `boolean` | `false` | No constraints. | Configure if the tracer is enabled or not. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `disabled` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1812,6 +2077,15 @@ Usages:
| `default_config` | [`ExperimentalTracerConfig`](#experimentaltracerconfig) | `false` | No constraints. | Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers. |
| `tracers` | `array` of [`ExperimentalTracerMatcherAndConfig`](#experimentaltracermatcherandconfig) | `false` | No constraints. | Configure tracers. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `default_config` | supported |
+| `tracers` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1850,6 +2124,15 @@ Usages:
| `name` | `string` | `false` | No constraints. | Configure tracer names to match, evaluated as follows:
* If the tracer name exactly matches.
* If the tracer name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
|
| `config` | [`ExperimentalTracerConfig`](#experimentaltracerconfig) | `false` | No constraints. | The tracer config. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `name` | supported |
+| `config` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1887,6 +2170,15 @@ Usages:
| `boundaries` | `array` of `number` | `false` | No constraints. | Configure bucket boundaries.
If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used.
|
| `record_min_max` | one of:
* `boolean`
* `null`
| `false` | No constraints. | Configure record min and max.
If omitted or null, true is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `boundaries` | supported |
+| `record_min_max` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -1992,6 +2284,17 @@ Usages:
| `client_certificate_file` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure mTLS client certificate.
Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
If omitted or null, mTLS is not used.
|
| `insecure` | one of:
* `boolean`
* `null`
| `false` | No constraints. | Configure client transport security for the exporter's connection.
Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
If omitted or null, false is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `certificate_file` | unknown |
+| `client_key_file` | unknown |
+| `client_certificate_file` | unknown |
+| `insecure` | unknown |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -2048,6 +2351,16 @@ Usages:
| `client_key_file` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure mTLS private client key.
Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
If omitted or null, mTLS is not used.
|
| `client_certificate_file` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure mTLS client certificate.
Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
If omitted or null, mTLS is not used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `certificate_file` | unknown |
+| `client_key_file` | unknown |
+| `client_certificate_file` | unknown |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -2097,6 +2410,15 @@ Usages:
| `included` | `array` of `string` | `false` | No constraints. | Configure list of value patterns to include.
Values are evaluated to match as follows:
* If the value exactly matches.
* If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
If omitted, all values are included.
|
| `excluded` | `array` of `string` | `false` | No constraints. | Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).
Values are evaluated to match as follows:
* If the value exactly matches.
* If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
If omitted, .included attributes are included.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `included` | supported |
+| `excluded` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -2197,6 +2519,16 @@ Usages:
| `interval` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| TODO |
| `initial_sampler` | [`Sampler`](#sampler) | `false` | No constraints. | TODO |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `endpoint` | supported |
+| `interval` | supported |
+| `initial_sampler` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -2269,6 +2601,16 @@ Usages:
| `limits` | [`LogRecordLimits`](#logrecordlimits) | `false` | No constraints. | Configure log record limits. See also attribute_limits. |
| `logger_configurator/development` | [`ExperimentalLoggerConfigurator`](#experimentalloggerconfigurator) | `false` | No constraints. | Configure loggers.
This type is in development and subject to breaking changes in minor versions.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `processors` | supported |
+| `limits` | supported |
+| `logger_configurator/development` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -2482,6 +2824,17 @@ Usages:
| `otlp_file/development` | [`ExperimentalOtlpFileExporter`](#experimentalotlpfileexporter) | `false` | No constraints. | Configure exporter to be OTLP with file transport.
This type is in development and subject to breaking changes in minor versions.
|
| `console` | [`ConsoleExporter`](#consoleexporter) | `false` | No constraints. | Configure exporter to be console. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `otlp_http` | supported |
+| `otlp_grpc` | supported |
+| `otlp_file/development` | supported |
+| `console` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -2531,6 +2884,15 @@ Usages:
| `attribute_value_length_limit` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
Value must be non-negative.
If omitted or null, there is no limit.
|
| `attribute_count_limit` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
Value must be non-negative.
If omitted or null, 128 is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `attribute_value_length_limit` | supported |
+| `attribute_count_limit` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -2574,6 +2936,15 @@ Usages:
| `batch` | [`BatchLogRecordProcessor`](#batchlogrecordprocessor) | `false` | No constraints. | Configure a batch log record processor. |
| `simple` | [`SimpleLogRecordProcessor`](#simplelogrecordprocessor) | `false` | No constraints. | Configure a simple log record processor. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `batch` | supported |
+| `simple` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object"]}`
@@ -2617,6 +2988,17 @@ Usages:
| `exemplar_filter` | [`ExemplarFilter`](#exemplarfilter) | `false` | No constraints. | Configure the exemplar filter.
Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration.
If omitted or null, trace_based is used.
|
| `meter_configurator/development` | [`ExperimentalMeterConfigurator`](#experimentalmeterconfigurator) | `false` | No constraints. | Configure meters.
This type is in development and subject to breaking changes in minor versions.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `readers` | supported |
+| `views` | supported |
+| `exemplar_filter` | supported |
+| `meter_configurator/development` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3311,6 +3693,14 @@ Usages:
|---|---|---|---|---|
| `opencensus` | [`OpenCensusMetricProducer`](#opencensusmetricproducer) | `false` | No constraints. | Configure metric producer to be opencensus. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `opencensus` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -3351,6 +3741,15 @@ Usages:
| `periodic` | [`PeriodicMetricReader`](#periodicmetricreader) | `false` | No constraints. | Configure a periodic metric reader. |
| `pull` | [`PullMetricReader`](#pullmetricreader) | `false` | No constraints. | Configure a pull based metric reader. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `periodic` | supported |
+| `pull` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3388,6 +3787,15 @@ Usages:
| `name` | `string` | `true` | No constraints. | The name of the pair. |
| `value` | one of:
* `string`
* `null`
| `true` | No constraints. | The value of the pair. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `name` | supported |
+| `value` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3465,6 +3873,23 @@ Usages:
| `resource` | [`Resource`](#resource) | `false` | No constraints. | Configure resource for all signals.
If omitted, the default resource is used.
|
| `instrumentation/development` | [`ExperimentalInstrumentation`](#experimentalinstrumentation) | `false` | No constraints. | Configure instrumentation.
This type is in development and subject to breaking changes in minor versions.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `file_format` | supported |
+| `disabled` | supported |
+| `log_level` | supported |
+| `attribute_limits` | supported |
+| `logger_provider` | supported |
+| `meter_provider` | supported |
+| `propagator` | supported |
+| `tracer_provider` | supported |
+| `resource` | supported |
+| `instrumentation/development` | supported |
+
+
Constraints:
* `additionalProperties`: `true`
@@ -3600,6 +4025,19 @@ Usages:
| `timeout` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| Configure max time (in milliseconds) to wait for each export.
Value must be non-negative. A value of 0 indicates no limit (infinity).
If omitted or null, 10000 is used.
|
| `tls` | [`GrpcTls`](#grpctls) | `false` | No constraints. | Configure TLS settings for the exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `endpoint` | supported |
+| `headers` | supported |
+| `headers_list` | supported |
+| `compression` | supported |
+| `timeout` | supported |
+| `tls` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3671,6 +4109,21 @@ Usages:
| `default_histogram_aggregation` | [`ExporterDefaultHistogramAggregation`](#exporterdefaulthistogramaggregation) | `false` | No constraints. | Configure default histogram aggregation.
Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
If omitted or null, explicit_bucket_histogram is used.
|
| `tls` | [`GrpcTls`](#grpctls) | `false` | No constraints. | Configure TLS settings for the exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `endpoint` | supported |
+| `headers` | supported |
+| `headers_list` | supported |
+| `compression` | supported |
+| `timeout` | supported |
+| `temporality_preference` | supported |
+| `default_histogram_aggregation` | supported |
+| `tls` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3775,6 +4228,20 @@ Usages:
| `encoding` | [`OtlpHttpEncoding`](#otlphttpencoding) | `false` | No constraints. | Configure the encoding used for messages.
Values include: protobuf, json. Implementations may not support json.
If omitted or null, protobuf is used.
|
| `tls` | [`HttpTls`](#httptls) | `false` | No constraints. | Configure TLS settings for the exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `endpoint` | supported |
+| `headers` | supported |
+| `headers_list` | supported |
+| `compression` | supported |
+| `timeout` | supported |
+| `encoding` | supported |
+| `tls` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3851,6 +4318,23 @@ Usages:
| `default_histogram_aggregation` | [`ExporterDefaultHistogramAggregation`](#exporterdefaulthistogramaggregation) | `false` | No constraints. | Configure default histogram aggregation.
Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
If omitted or null, explicit_bucket_histogram is used.
|
| `tls` | [`HttpTls`](#httptls) | `false` | No constraints. | Configure TLS settings for the exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `endpoint` | supported |
+| `endpoint` | supported |
+| `headers` | supported |
+| `headers_list` | supported |
+| `compression` | supported |
+| `timeout` | supported |
+| `encoding` | supported |
+| `temporality_preference` | supported |
+| `default_histogram_aggregation` | supported |
+| `tls` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3927,6 +4411,18 @@ Usages:
| `local_parent_sampled` | [`Sampler`](#sampler) | `false` | No constraints. | Configure local_parent_sampled sampler.
If omitted or null, always_on is used.
|
| `local_parent_not_sampled` | [`Sampler`](#sampler) | `false` | No constraints. | Configure local_parent_not_sampled sampler.
If omitted or null, always_off is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `root` | supported |
+| `remote_parent_sampled` | supported |
+| `remote_parent_not_sampled` | supported |
+| `local_parent_sampled` | supported |
+| `local_parent_not_sampled` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -3975,6 +4471,18 @@ Usages:
| `producers` | `array` of [`MetricProducer`](#metricproducer) | `false` | No constraints. | Configure metric producers. |
| `cardinality_limits` | [`CardinalityLimits`](#cardinalitylimits) | `false` | No constraints. | Configure cardinality limits. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `interval` | supported |
+| `timeout` | supported |
+| `exporter` | supported |
+| `producers` | supported |
+| `cardinality_limits` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4032,6 +4540,15 @@ Usages:
| `composite` | `array` of [`TextMapPropagator`](#textmappropagator) | `false` | No constraints. | Configure the propagators in the composite text map propagator. Entries from .composite_list are appended to the list here with duplicates filtered out.
Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray.
If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
|
| `composite_list` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure the propagators in the composite text map propagator. Entries are appended to .composite with duplicates filtered out.
The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray.
If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `composite` | supported |
+| `composite_list` | supported |
+
+
No constraints.
Usages:
@@ -4146,6 +4663,14 @@ Usages:
|---|---|---|---|---|
| `prometheus/development` | [`ExperimentalPrometheusMetricExporter`](#experimentalprometheusmetricexporter) | `false` | No constraints. | Configure exporter to be prometheus.
This type is in development and subject to breaking changes in minor versions.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `prometheus/development` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -4188,6 +4713,16 @@ Usages:
| `producers` | `array` of [`MetricProducer`](#metricproducer) | `false` | No constraints. | Configure metric producers. |
| `cardinality_limits` | [`CardinalityLimits`](#cardinalitylimits) | `false` | No constraints. | Configure cardinality limits. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `exporter` | supported |
+| `producers` | supported |
+| `cardinality_limits` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4235,6 +4770,17 @@ Usages:
| `otlp_file/development` | [`ExperimentalOtlpFileMetricExporter`](#experimentalotlpfilemetricexporter) | `false` | No constraints. | Configure exporter to be OTLP with file transport.
This type is in development and subject to breaking changes in minor versions.
|
| `console` | [`ConsoleExporter`](#consoleexporter) | `false` | No constraints. | Configure exporter to be console.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `otlp_http` | supported |
+| `otlp_grpc` | supported |
+| `otlp_file/development` | supported |
+| `console` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -4285,6 +4831,17 @@ Usages:
| `schema_url` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure resource schema URL.
If omitted or null, no schema URL is used.
|
| `attributes_list` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure resource attributes. Entries have lower priority than entries from .resource.attributes.
The value is a list of comma separated key-value pairs matching the format of OTEL_RESOURCE_ATTRIBUTES. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
If omitted or null, no resource attributes are added.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `attributes` | supported |
+| `detection/development` | supported |
+| `schema_url` | supported |
+| `attributes_list` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4477,6 +5034,18 @@ Usages:
| `parent_based` | [`ParentBasedSampler`](#parentbasedsampler) | `false` | No constraints. | Configure sampler to be parent_based. |
| `trace_id_ratio_based` | [`TraceIdRatioBasedSampler`](#traceidratiobasedsampler) | `false` | No constraints. | Configure sampler to be trace_id_ratio_based. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `always_off` | supported |
+| `always_on` | supported |
+| `jaeger_remote` | supported |
+| `parent_based` | supported |
+| `trace_id_ratio_based` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -4533,6 +5102,14 @@ Usages:
|---|---|---|---|---|
| `exporter` | [`LogRecordExporter`](#logrecordexporter) | `true` | No constraints. | Configure exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `exporter` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4566,6 +5143,14 @@ Usages:
|---|---|---|---|---|
| `exporter` | [`SpanExporter`](#spanexporter) | `true` | No constraints. | Configure exporter. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `exporter` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4605,6 +5190,18 @@ Usages:
| `console` | [`ConsoleExporter`](#consoleexporter) | `false` | No constraints. | Configure exporter to be console. |
| `zipkin` | [`ZipkinSpanExporter`](#zipkinspanexporter) | `false` | No constraints. | Configure exporter to be zipkin. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `otlp_http` | supported |
+| `otlp_grpc` | supported |
+| `otlp_file/development` | supported |
+| `console` | supported |
+| `zipkin` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -4661,6 +5258,19 @@ Usages:
| `event_attribute_count_limit` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| Configure max attributes per span event.
Value must be non-negative.
If omitted or null, 128 is used.
|
| `link_attribute_count_limit` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| Configure max attributes per span link.
Value must be non-negative.
If omitted or null, 128 is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `attribute_value_length_limit` | supported |
+| `attribute_count_limit` | supported |
+| `event_count_limit` | supported |
+| `link_count_limit` | supported |
+| `event_attribute_count_limit` | supported |
+| `link_attribute_count_limit` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4732,6 +5342,15 @@ Usages:
| `batch` | [`BatchSpanProcessor`](#batchspanprocessor) | `false` | No constraints. | Configure a batch span processor. |
| `simple` | [`SimpleSpanProcessor`](#simplespanprocessor) | `false` | No constraints. | Configure a simple span processor. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `batch` | supported |
+| `simple` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -4805,6 +5424,19 @@ Usages:
| `jaeger` | [`JaegerPropagator`](#jaegerpropagator) | `false` | No constraints. | Include the jaeger propagator. |
| `ottrace` | [`OpenTracingPropagator`](#opentracingpropagator) | `false` | No constraints. | Include the opentracing propagator. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `tracecontext` | supported |
+| `baggage` | supported |
+| `b3` | supported |
+| `b3multi` | supported |
+| `jaeger` | supported |
+| `ottrace` | supported |
+
+
Constraints:
* `additionalProperties`: `{"type":["object","null"]}`
@@ -4883,6 +5515,14 @@ Usages:
|---|---|---|---|---|
| `ratio` | one of:
* `number`
* `null`
| `false` | No constraints. | Configure trace_id_ratio.
If omitted or null, 1.0 is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `ratio` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -4921,6 +5561,17 @@ Usages:
| `sampler` | [`Sampler`](#sampler) | `false` | No constraints. | Configure the sampler.
If omitted, parent based sampler with a root of always_on is used.
|
| `tracer_configurator/development` | [`ExperimentalTracerConfigurator`](#experimentaltracerconfigurator) | `false` | No constraints. | Configure tracers.
This type is in development and subject to breaking changes in minor versions.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `processors` | supported |
+| `limits` | supported |
+| `sampler` | supported |
+| `tracer_configurator/development` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -5293,6 +5944,15 @@ Usages:
| `selector` | [`ViewSelector`](#viewselector) | `false` | No constraints. | Configure view selector.
Selection criteria is additive as described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#instrument-selection-criteria.
|
| `stream` | [`ViewStream`](#viewstream) | `false` | No constraints. | Configure view stream. |
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `selector` | supported |
+| `stream` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -5330,6 +5990,19 @@ Usages:
| `meter_version` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure meter version selection criteria.
If omitted or null, all meter versions match.
|
| `meter_schema_url` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure meter schema url selection criteria.
If omitted or null, all meter schema URLs match.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `instrument_name` | supported |
+| `instrument_type` | supported |
+| `unit` | supported |
+| `meter_name` | supported |
+| `meter_version` | supported |
+| `meter_schema_url` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -5393,6 +6066,18 @@ Usages:
| `aggregation_cardinality_limit` | one of:
* `integer`
* `null`
| `false` | * `exclusiveMinimum`: `0`
| Configure the aggregation cardinality limit.
If omitted or null, the metric reader's default cardinality limit is used.
|
| `attribute_keys` | [`IncludeExclude`](#includeexclude) | `false` | No constraints. | Configure attribute keys retained in the resulting stream(s).
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `name` | supported |
+| `description` | supported |
+| `aggregation` | supported |
+| `aggregation_cardinality_limit` | supported |
+| `attribute_keys` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -5445,6 +6130,15 @@ Usages:
| `endpoint` | one of:
* `string`
* `null`
| `false` | No constraints. | Configure endpoint.
If omitted or null, http://localhost:9411/api/v2/spans is used.
|
| `timeout` | one of:
* `integer`
* `null`
| `false` | * `minimum`: `0`
| Configure max time (in milliseconds) to wait for each export.
Value must be non-negative. A value of 0 indicates indefinite.
If omitted or null, 10000 is used.
|
+
+Language support status
+
+| Property | [java](#java) |
+|---|---|
+| `endpoint` | supported |
+| `timeout` | supported |
+
+
Constraints:
* `additionalProperties`: `false`
@@ -5481,6 +6175,107 @@ Usages:
}
+# Language Support Status
+
+## java
+
+Latest supported file format: `1.0.0-rc.1`
+
+| Type | Status | Notes | Property Support Status |
+|---|---|---|---|
+| [`Aggregation`](#aggregation) | supported | | * `default`: supported
* `drop`: supported
* `explicit_bucket_histogram`: supported
* `base2_exponential_bucket_histogram`: supported
* `last_value`: supported
* `sum`: supported
|
+| [`AlwaysOffSampler`](#alwaysoffsampler) | supported | | |
+| [`AlwaysOnSampler`](#alwaysonsampler) | supported | | |
+| [`AttributeLimits`](#attributelimits) | supported | | * `attribute_value_length_limit`: supported
* `attribute_count_limit`: supported
|
+| [`AttributeNameValue`](#attributenamevalue) | supported | | * `name`: supported
* `value`: supported
* `type`: supported
|
+| [`AttributeType`](#attributetype) | supported | | |
+| [`B3MultiPropagator`](#b3multipropagator) | supported | | |
+| [`B3Propagator`](#b3propagator) | supported | | |
+| [`BaggagePropagator`](#baggagepropagator) | supported | | |
+| [`Base2ExponentialBucketHistogramAggregation`](#base2exponentialbuckethistogramaggregation) | supported | | * `max_scale`: supported
* `max_size`: supported
* `record_min_max`: supported
|
+| [`BatchLogRecordProcessor`](#batchlogrecordprocessor) | supported | | * `schedule_delay`: supported
* `export_timeout`: supported
* `max_queue_size`: supported
* `max_export_batch_size`: supported
* `exporter`: supported
|
+| [`BatchSpanProcessor`](#batchspanprocessor) | supported | | * `schedule_delay`: supported
* `export_timeout`: supported
* `max_queue_size`: supported
* `max_export_batch_size`: supported
* `exporter`: supported
|
+| [`CardinalityLimits`](#cardinalitylimits) | supported | | * `default`: supported
* `counter`: supported
* `gauge`: supported
* `histogram`: supported
* `observable_counter`: supported
* `observable_gauge`: supported
* `observable_up_down_counter`: supported
* `up_down_counter`: supported
|
+| [`ConsoleExporter`](#consoleexporter) | supported | | |
+| [`DefaultAggregation`](#defaultaggregation) | supported | | |
+| [`DropAggregation`](#dropaggregation) | supported | | |
+| [`ExemplarFilter`](#exemplarfilter) | supported | | |
+| [`ExperimentalContainerResourceDetector`](#experimentalcontainerresourcedetector) | supported | | |
+| [`ExperimentalGeneralInstrumentation`](#experimentalgeneralinstrumentation) | supported | | * `peer`: supported
* `http`: supported
|
+| [`ExperimentalHostResourceDetector`](#experimentalhostresourcedetector) | supported | | |
+| [`ExperimentalHttpClientInstrumentation`](#experimentalhttpclientinstrumentation) | supported | | * `request_captured_headers`: supported
* `response_captured_headers`: supported
|
+| [`ExperimentalHttpInstrumentation`](#experimentalhttpinstrumentation) | supported | | * `client`: supported
* `server`: supported
|
+| [`ExperimentalHttpServerInstrumentation`](#experimentalhttpserverinstrumentation) | supported | | * `request_captured_headers`: supported
* `response_captured_headers`: supported
|
+| [`ExperimentalInstrumentation`](#experimentalinstrumentation) | supported | | * `general`: supported
* `cpp`: supported
* `dotnet`: supported
* `erlang`: supported
* `go`: supported
* `java`: supported
* `js`: supported
* `php`: supported
* `python`: supported
* `ruby`: supported
* `rust`: supported
* `swift`: supported
|
+| [`ExperimentalLanguageSpecificInstrumentation`](#experimentallanguagespecificinstrumentation) | supported | | |
+| [`ExperimentalLoggerConfig`](#experimentalloggerconfig) | supported | | * `disabled`: supported
|
+| [`ExperimentalLoggerConfigurator`](#experimentalloggerconfigurator) | supported | | * `default_config`: supported
* `loggers`: supported
|
+| [`ExperimentalLoggerMatcherAndConfig`](#experimentalloggermatcherandconfig) | supported | | * `name`: supported
* `config`: supported
|
+| [`ExperimentalMeterConfig`](#experimentalmeterconfig) | supported | | * `disabled`: supported
|
+| [`ExperimentalMeterConfigurator`](#experimentalmeterconfigurator) | supported | | * `default_config`: supported
* `meters`: supported
|
+| [`ExperimentalMeterMatcherAndConfig`](#experimentalmetermatcherandconfig) | supported | | * `name`: supported
* `config`: supported
|
+| [`ExperimentalOtlpFileExporter`](#experimentalotlpfileexporter) | supported | | * `output_stream`: supported
|
+| [`ExperimentalOtlpFileMetricExporter`](#experimentalotlpfilemetricexporter) | supported | | * `output_stream`: supported
* `temporality_preference`: supported
* `default_histogram_aggregation`: supported
|
+| [`ExperimentalPeerInstrumentation`](#experimentalpeerinstrumentation) | supported | | * `service_mapping`: supported
|
+| [`ExperimentalPeerServiceMapping`](#experimentalpeerservicemapping) | supported | | * `peer`: supported
* `service`: supported
|
+| [`ExperimentalProcessResourceDetector`](#experimentalprocessresourcedetector) | supported | | |
+| [`ExperimentalPrometheusMetricExporter`](#experimentalprometheusmetricexporter) | supported | | * `host`: supported
* `port`: supported
* `without_scope_info`: supported
* `with_resource_constant_labels`: supported
* `translation_strategy`: supported
|
+| [`ExperimentalResourceDetection`](#experimentalresourcedetection) | supported | | * `attributes`: supported
* `detectors`: supported
|
+| [`ExperimentalResourceDetector`](#experimentalresourcedetector) | supported | | * `container`: supported
* `host`: supported
* `process`: supported
* `service`: supported
|
+| [`ExperimentalServiceResourceDetector`](#experimentalserviceresourcedetector) | supported | | |
+| [`ExperimentalTracerConfig`](#experimentaltracerconfig) | supported | | * `disabled`: supported
|
+| [`ExperimentalTracerConfigurator`](#experimentaltracerconfigurator) | supported | | * `default_config`: supported
* `tracers`: supported
|
+| [`ExperimentalTracerMatcherAndConfig`](#experimentaltracermatcherandconfig) | supported | | * `name`: supported
* `config`: supported
|
+| [`ExplicitBucketHistogramAggregation`](#explicitbuckethistogramaggregation) | supported | | * `boundaries`: supported
* `record_min_max`: supported
|
+| [`ExporterDefaultHistogramAggregation`](#exporterdefaulthistogramaggregation) | supported | | |
+| [`ExporterTemporalityPreference`](#exportertemporalitypreference) | supported | | |
+| [`GrpcTls`](#grpctls) | unknown | | * `certificate_file`: unknown
* `client_key_file`: unknown
* `client_certificate_file`: unknown
* `insecure`: unknown
|
+| [`HttpTls`](#httptls) | unknown | | * `certificate_file`: unknown
* `client_key_file`: unknown
* `client_certificate_file`: unknown
|
+| [`IncludeExclude`](#includeexclude) | supported | | * `included`: supported
* `excluded`: supported
|
+| [`InstrumentType`](#instrumenttype) | supported | | |
+| [`JaegerPropagator`](#jaegerpropagator) | supported | | |
+| [`JaegerRemoteSampler`](#jaegerremotesampler) | supported | | * `endpoint`: supported
* `interval`: supported
* `initial_sampler`: supported
|
+| [`LastValueAggregation`](#lastvalueaggregation) | supported | | |
+| [`LoggerProvider`](#loggerprovider) | supported | | * `processors`: supported
* `limits`: supported
* `logger_configurator/development`: supported
|
+| [`LogRecordExporter`](#logrecordexporter) | supported | | * `otlp_http`: supported
* `otlp_grpc`: supported
* `otlp_file/development`: supported
* `console`: supported
|
+| [`LogRecordLimits`](#logrecordlimits) | supported | | * `attribute_value_length_limit`: supported
* `attribute_count_limit`: supported
|
+| [`LogRecordProcessor`](#logrecordprocessor) | supported | | * `batch`: supported
* `simple`: supported
|
+| [`MeterProvider`](#meterprovider) | supported | | * `readers`: supported
* `views`: supported
* `exemplar_filter`: supported
* `meter_configurator/development`: supported
|
+| [`MetricProducer`](#metricproducer) | supported | | * `opencensus`: supported
|
+| [`MetricReader`](#metricreader) | supported | | * `periodic`: supported
* `pull`: supported
|
+| [`NameStringValuePair`](#namestringvaluepair) | supported | | * `name`: supported
* `value`: supported
|
+| [`OpenCensusMetricProducer`](#opencensusmetricproducer) | supported | | |
+| [`OpentelemetryConfiguration`](#opentelemetryconfiguration) | supported | | * `file_format`: supported
* `disabled`: supported
* `log_level`: supported
* `attribute_limits`: supported
* `logger_provider`: supported
* `meter_provider`: supported
* `propagator`: supported
* `tracer_provider`: supported
* `resource`: supported
* `instrumentation/development`: supported
|
+| [`OpenTracingPropagator`](#opentracingpropagator) | supported | | |
+| [`OtlpGrpcExporter`](#otlpgrpcexporter) | supported | | * `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `compression`: supported
* `timeout`: supported
* `tls`: supported
|
+| [`OtlpGrpcMetricExporter`](#otlpgrpcmetricexporter) | supported | | * `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `compression`: supported
* `timeout`: supported
* `temporality_preference`: supported
* `default_histogram_aggregation`: supported
* `tls`: supported
|
+| [`OtlpHttpEncoding`](#otlphttpencoding) | supported | | |
+| [`OtlpHttpExporter`](#otlphttpexporter) | supported | | * `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `compression`: supported
* `timeout`: supported
* `encoding`: supported
* `tls`: supported
|
+| [`OtlpHttpMetricExporter`](#otlphttpmetricexporter) | supported | | * `endpoint`: supported
* `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `compression`: supported
* `timeout`: supported
* `encoding`: supported
* `temporality_preference`: supported
* `default_histogram_aggregation`: supported
* `tls`: supported
|
+| [`ParentBasedSampler`](#parentbasedsampler) | supported | | * `root`: supported
* `remote_parent_sampled`: supported
* `remote_parent_not_sampled`: supported
* `local_parent_sampled`: supported
* `local_parent_not_sampled`: supported
|
+| [`PeriodicMetricReader`](#periodicmetricreader) | supported | | * `interval`: supported
* `timeout`: supported
* `exporter`: supported
* `producers`: supported
* `cardinality_limits`: supported
|
+| [`Propagator`](#propagator) | supported | | * `composite`: supported
* `composite_list`: supported
|
+| [`PullMetricExporter`](#pullmetricexporter) | supported | | * `prometheus/development`: supported
|
+| [`PullMetricReader`](#pullmetricreader) | supported | | * `exporter`: supported
* `producers`: supported
* `cardinality_limits`: supported
|
+| [`PushMetricExporter`](#pushmetricexporter) | supported | | * `otlp_http`: supported
* `otlp_grpc`: supported
* `otlp_file/development`: supported
* `console`: supported
|
+| [`Resource`](#resource) | supported | | * `attributes`: supported
* `detection/development`: supported
* `schema_url`: supported
* `attributes_list`: supported
|
+| [`Sampler`](#sampler) | supported | | * `always_off`: supported
* `always_on`: supported
* `jaeger_remote`: supported
* `parent_based`: supported
* `trace_id_ratio_based`: supported
|
+| [`SimpleLogRecordProcessor`](#simplelogrecordprocessor) | supported | | * `exporter`: supported
|
+| [`SimpleSpanProcessor`](#simplespanprocessor) | supported | | * `exporter`: supported
|
+| [`SpanExporter`](#spanexporter) | supported | | * `otlp_http`: supported
* `otlp_grpc`: supported
* `otlp_file/development`: supported
* `console`: supported
* `zipkin`: supported
|
+| [`SpanLimits`](#spanlimits) | supported | | * `attribute_value_length_limit`: supported
* `attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_count_limit`: supported
* `event_attribute_count_limit`: supported
* `link_attribute_count_limit`: supported
|
+| [`SpanProcessor`](#spanprocessor) | supported | | * `batch`: supported
* `simple`: supported
|
+| [`SumAggregation`](#sumaggregation) | supported | | |
+| [`TextMapPropagator`](#textmappropagator) | supported | | * `tracecontext`: supported
* `baggage`: supported
* `b3`: supported
* `b3multi`: supported
* `jaeger`: supported
* `ottrace`: supported
|
+| [`TraceContextPropagator`](#tracecontextpropagator) | supported | | |
+| [`TraceIdRatioBasedSampler`](#traceidratiobasedsampler) | supported | | * `ratio`: supported
|
+| [`TracerProvider`](#tracerprovider) | supported | | * `processors`: supported
* `limits`: supported
* `sampler`: supported
* `tracer_configurator/development`: supported
|
+| [`View`](#view) | supported | | * `selector`: supported
* `stream`: supported
|
+| [`ViewSelector`](#viewselector) | supported | | * `instrument_name`: supported
* `instrument_type`: supported
* `unit`: supported
* `meter_name`: supported
* `meter_version`: supported
* `meter_schema_url`: supported
|
+| [`ViewStream`](#viewstream) | supported | | * `name`: supported
* `description`: supported
* `aggregation`: supported
* `aggregation_cardinality_limit`: supported
* `attribute_keys`: supported
|
+| [`ZipkinSpanExporter`](#zipkinspanexporter) | supported | | * `endpoint`: supported
* `timeout`: supported
|
+
+
# SDK Extension Plugins
[SDK extension plugins](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk.md#supported-sdk-extension-plugins) are places where custom interface implementations can be referenced and configured.
diff --git a/schema/meta_schema.yaml b/schema/meta_schema.yaml
index ae9f291b..a5004678 100644
--- a/schema/meta_schema.yaml
+++ b/schema/meta_schema.yaml
@@ -1,1100 +1,1469 @@
-- type: Aggregation
- properties:
- - property: default
- description: TODO
- - property: drop
- description: TODO
- - property: explicit_bucket_histogram
- description: Configure aggregation to be explicit_bucket_histogram.
- - property: base2_exponential_bucket_histogram
- description: TODO
- - property: last_value
- description: TODO
- - property: sum
- description: TODO
- isSdkExtensionPlugin: false
-- type: AlwaysOffSampler
- properties: []
- isSdkExtensionPlugin: false
-- type: AlwaysOnSampler
- properties: []
- isSdkExtensionPlugin: false
-- type: AttributeLimits
- properties:
- - property: attribute_value_length_limit
- description: |
- Configure max attribute value size.
- Value must be non-negative.
- If omitted or null, there is no limit.
- - property: attribute_count_limit
- description: |
- Configure max attribute count.
- Value must be non-negative.
- If omitted or null, 128 is used.
- isSdkExtensionPlugin: false
-- type: AttributeNameValue
- properties:
- - property: name
- description: |
- The attribute name.
- - property: value
- description: |
- The attribute value.
- The type of value must match .type.
- - property: type
- description: |
- The attribute type.
- Values include: string, bool, int, double, string_array, bool_array, int_array, double_array.
- If omitted or null, string is used.
- isSdkExtensionPlugin: false
-- type: AttributeType
- properties: []
- isSdkExtensionPlugin: false
-- type: B3MultiPropagator
- properties: []
- isSdkExtensionPlugin: false
-- type: B3Propagator
- properties: []
- isSdkExtensionPlugin: false
-- type: BaggagePropagator
- properties: []
- isSdkExtensionPlugin: false
-- type: Base2ExponentialBucketHistogramAggregation
- properties:
- - property: max_scale
- description: TODO
- - property: max_size
- description: TODO
- - property: record_min_max
- description: TODO
- isSdkExtensionPlugin: false
-- type: BatchLogRecordProcessor
- properties:
- - property: schedule_delay
- description: |
- Configure delay interval (in milliseconds) between two consecutive exports.
- Value must be non-negative.
- If omitted or null, 1000 is used.
- - property: export_timeout
- description: |
- Configure maximum allowed time (in milliseconds) to export data.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 30000 is used.
- - property: max_queue_size
- description: |
- Configure maximum queue size. Value must be positive.
- If omitted or null, 2048 is used.
- - property: max_export_batch_size
- description: |
- Configure maximum batch size. Value must be positive.
- If omitted or null, 512 is used.
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
-- type: BatchSpanProcessor
- properties:
- - property: schedule_delay
- description: |
- Configure delay interval (in milliseconds) between two consecutive exports.
- Value must be non-negative.
- If omitted or null, 5000 is used.
- - property: export_timeout
- description: |
- Configure maximum allowed time (in milliseconds) to export data.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 30000 is used.
- - property: max_queue_size
- description: |
- Configure maximum queue size. Value must be positive.
- If omitted or null, 2048 is used.
- - property: max_export_batch_size
- description: |
- Configure maximum batch size. Value must be positive.
- If omitted or null, 512 is used.
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
-- type: CardinalityLimits
- properties:
- - property: default
- description: |
- Configure default cardinality limit for all instrument types.
- Instrument-specific cardinality limits take priority.
- If omitted or null, 2000 is used.
- - property: counter
- description: |
- Configure default cardinality limit for counter instruments.
- If omitted or null, the value from .default is used.
- - property: gauge
- description: |
- Configure default cardinality limit for gauge instruments.
- If omitted or null, the value from .default is used.
- - property: histogram
- description: |
- Configure default cardinality limit for histogram instruments.
- If omitted or null, the value from .default is used.
- - property: observable_counter
- description: |
- Configure default cardinality limit for observable_counter instruments.
- If omitted or null, the value from .default is used.
- - property: observable_gauge
- description: |
- Configure default cardinality limit for observable_gauge instruments.
- If omitted or null, the value from .default is used.
- - property: observable_up_down_counter
- description: |
- Configure default cardinality limit for observable_up_down_counter instruments.
- If omitted or null, the value from .default is used.
- - property: up_down_counter
- description: |
- Configure default cardinality limit for up_down_counter instruments.
- If omitted or null, the value from .default is used.
- isSdkExtensionPlugin: false
-- type: ConsoleExporter
- properties: []
- isSdkExtensionPlugin: false
-- type: DefaultAggregation
- properties: []
- isSdkExtensionPlugin: false
-- type: DropAggregation
- properties: []
- isSdkExtensionPlugin: false
-- type: ExemplarFilter
- properties: []
- isSdkExtensionPlugin: false
-- type: ExperimentalContainerResourceDetector
- properties: []
- isSdkExtensionPlugin: false
-- type: ExperimentalGeneralInstrumentation
- properties:
- - property: peer
- description: |
- Configure instrumentations following the peer semantic conventions.
- See peer semantic conventions: https://opentelemetry.io/docs/specs/semconv/attributes-registry/peer/
- - property: http
- description: |
- Configure instrumentations following the http semantic conventions.
- See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
- isSdkExtensionPlugin: false
-- type: ExperimentalHostResourceDetector
- properties: []
- isSdkExtensionPlugin: false
-- type: ExperimentalHttpClientInstrumentation
- properties:
- - property: request_captured_headers
- description: |
- Configure headers to capture for outbound http requests.
- - property: response_captured_headers
- description: |
- Configure headers to capture for inbound http responses.
- isSdkExtensionPlugin: false
-- type: ExperimentalHttpInstrumentation
- properties:
- - property: client
- description: Configure instrumentations following the http client semantic conventions.
- - property: server
- description: Configure instrumentations following the http server semantic conventions.
- isSdkExtensionPlugin: false
-- type: ExperimentalHttpServerInstrumentation
- properties:
- - property: request_captured_headers
- description: |
- Configure headers to capture for inbound http requests.
- - property: response_captured_headers
- description: |
- Configure headers to capture for outbound http responses.
- isSdkExtensionPlugin: false
-- type: ExperimentalInstrumentation
- properties:
- - property: general
- description: |
- Configure general SemConv options that may apply to multiple languages and instrumentations.
- Instrumenation may merge general config options with the language specific configuration at .instrumentation..
- - property: cpp
- description: Configure C++ language-specific instrumentation libraries.
- - property: dotnet
- description: |
- Configure .NET language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: erlang
- description: |
- Configure Erlang language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: go
- description: |
- Configure Go language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: java
- description: |
- Configure Java language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: js
- description: |
- Configure JavaScript language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: php
- description: |
- Configure PHP language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: python
- description: |
- Configure Python language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: ruby
- description: |
- Configure Ruby language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: rust
- description: |
- Configure Rust language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: swift
- description: |
- Configure Swift language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- isSdkExtensionPlugin: false
-- type: ExperimentalLanguageSpecificInstrumentation
- properties: []
- isSdkExtensionPlugin: false
-- type: ExperimentalLoggerConfig
- properties:
- - property: disabled
- description: Configure if the logger is enabled or not.
- isSdkExtensionPlugin: false
-- type: ExperimentalLoggerConfigurator
- properties:
- - property: default_config
- description: Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers.
- - property: loggers
- description: Configure loggers.
- isSdkExtensionPlugin: false
-- type: ExperimentalLoggerMatcherAndConfig
- properties:
- - property: name
- description: |
- Configure logger names to match, evaluated as follows:
+types:
+ - type: Aggregation
+ properties:
+ - property: default
+ description: TODO
+ - property: drop
+ description: TODO
+ - property: explicit_bucket_histogram
+ description: Configure aggregation to be explicit_bucket_histogram.
+ - property: base2_exponential_bucket_histogram
+ description: TODO
+ - property: last_value
+ description: TODO
+ - property: sum
+ description: TODO
+ isSdkExtensionPlugin: false
+ - type: AlwaysOffSampler
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: AlwaysOnSampler
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: AttributeLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+ - property: attribute_count_limit
+ description: |
+ Configure max attribute count.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ isSdkExtensionPlugin: false
+ - type: AttributeNameValue
+ properties:
+ - property: name
+ description: |
+ The attribute name.
+ - property: value
+ description: |
+ The attribute value.
+ The type of value must match .type.
+ - property: type
+ description: |
+ The attribute type.
+ Values include: string, bool, int, double, string_array, bool_array, int_array, double_array.
+ If omitted or null, string is used.
+ isSdkExtensionPlugin: false
+ - type: AttributeType
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: B3MultiPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: B3Propagator
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: BaggagePropagator
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: Base2ExponentialBucketHistogramAggregation
+ properties:
+ - property: max_scale
+ description: TODO
+ - property: max_size
+ description: TODO
+ - property: record_min_max
+ description: TODO
+ isSdkExtensionPlugin: false
+ - type: BatchLogRecordProcessor
+ properties:
+ - property: schedule_delay
+ description: |
+ Configure delay interval (in milliseconds) between two consecutive exports.
+ Value must be non-negative.
+ If omitted or null, 1000 is used.
+ - property: export_timeout
+ description: |
+ Configure maximum allowed time (in milliseconds) to export data.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 30000 is used.
+ - property: max_queue_size
+ description: |
+ Configure maximum queue size. Value must be positive.
+ If omitted or null, 2048 is used.
+ - property: max_export_batch_size
+ description: |
+ Configure maximum batch size. Value must be positive.
+ If omitted or null, 512 is used.
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+ - type: BatchSpanProcessor
+ properties:
+ - property: schedule_delay
+ description: |
+ Configure delay interval (in milliseconds) between two consecutive exports.
+ Value must be non-negative.
+ If omitted or null, 5000 is used.
+ - property: export_timeout
+ description: |
+ Configure maximum allowed time (in milliseconds) to export data.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 30000 is used.
+ - property: max_queue_size
+ description: |
+ Configure maximum queue size. Value must be positive.
+ If omitted or null, 2048 is used.
+ - property: max_export_batch_size
+ description: |
+ Configure maximum batch size. Value must be positive.
+ If omitted or null, 512 is used.
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+ - type: CardinalityLimits
+ properties:
+ - property: default
+ description: |
+ Configure default cardinality limit for all instrument types.
+ Instrument-specific cardinality limits take priority.
+ If omitted or null, 2000 is used.
+ - property: counter
+ description: |
+ Configure default cardinality limit for counter instruments.
+ If omitted or null, the value from .default is used.
+ - property: gauge
+ description: |
+ Configure default cardinality limit for gauge instruments.
+ If omitted or null, the value from .default is used.
+ - property: histogram
+ description: |
+ Configure default cardinality limit for histogram instruments.
+ If omitted or null, the value from .default is used.
+ - property: observable_counter
+ description: |
+ Configure default cardinality limit for observable_counter instruments.
+ If omitted or null, the value from .default is used.
+ - property: observable_gauge
+ description: |
+ Configure default cardinality limit for observable_gauge instruments.
+ If omitted or null, the value from .default is used.
+ - property: observable_up_down_counter
+ description: |
+ Configure default cardinality limit for observable_up_down_counter instruments.
+ If omitted or null, the value from .default is used.
+ - property: up_down_counter
+ description: |
+ Configure default cardinality limit for up_down_counter instruments.
+ If omitted or null, the value from .default is used.
+ isSdkExtensionPlugin: false
+ - type: ConsoleExporter
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: DefaultAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: DropAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExemplarFilter
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExperimentalContainerResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExperimentalGeneralInstrumentation
+ properties:
+ - property: peer
+ description: |
+ Configure instrumentations following the peer semantic conventions.
+ See peer semantic conventions: https://opentelemetry.io/docs/specs/semconv/attributes-registry/peer/
+ - property: http
+ description: |
+ Configure instrumentations following the http semantic conventions.
+ See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
+ isSdkExtensionPlugin: false
+ - type: ExperimentalHostResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExperimentalHttpClientInstrumentation
+ properties:
+ - property: request_captured_headers
+ description: |
+ Configure headers to capture for outbound http requests.
+ - property: response_captured_headers
+ description: |
+ Configure headers to capture for inbound http responses.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalHttpInstrumentation
+ properties:
+ - property: client
+ description: Configure instrumentations following the http client semantic conventions.
+ - property: server
+ description: Configure instrumentations following the http server semantic conventions.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalHttpServerInstrumentation
+ properties:
+ - property: request_captured_headers
+ description: |
+ Configure headers to capture for inbound http requests.
+ - property: response_captured_headers
+ description: |
+ Configure headers to capture for outbound http responses.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalInstrumentation
+ properties:
+ - property: general
+ description: |
+ Configure general SemConv options that may apply to multiple languages and instrumentations.
+ Instrumenation may merge general config options with the language specific configuration at .instrumentation..
+ - property: cpp
+ description: Configure C++ language-specific instrumentation libraries.
+ - property: dotnet
+ description: |
+ Configure .NET language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: erlang
+ description: |
+ Configure Erlang language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: go
+ description: |
+ Configure Go language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: java
+ description: |
+ Configure Java language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: js
+ description: |
+ Configure JavaScript language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: php
+ description: |
+ Configure PHP language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: python
+ description: |
+ Configure Python language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: ruby
+ description: |
+ Configure Ruby language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: rust
+ description: |
+ Configure Rust language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: swift
+ description: |
+ Configure Swift language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalLanguageSpecificInstrumentation
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExperimentalLoggerConfig
+ properties:
+ - property: disabled
+ description: Configure if the logger is enabled or not.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalLoggerConfigurator
+ properties:
+ - property: default_config
+ description: Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers.
+ - property: loggers
+ description: Configure loggers.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalLoggerMatcherAndConfig
+ properties:
+ - property: name
+ description: |
+ Configure logger names to match, evaluated as follows:
- * If the logger name exactly matches.
- * If the logger name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- - property: config
- description: The logger config.
- isSdkExtensionPlugin: false
-- type: ExperimentalMeterConfig
- properties:
- - property: disabled
- description: Configure if the meter is enabled or not.
- isSdkExtensionPlugin: false
-- type: ExperimentalMeterConfigurator
- properties:
- - property: default_config
- description: Configure the default meter config used there is no matching entry in .meter_configurator/development.meters.
- - property: meters
- description: Configure meters.
- isSdkExtensionPlugin: false
-- type: ExperimentalMeterMatcherAndConfig
- properties:
- - property: name
- description: |
- Configure meter names to match, evaluated as follows:
+ * If the logger name exactly matches.
+ * If the logger name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ - property: config
+ description: The logger config.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalMeterConfig
+ properties:
+ - property: disabled
+ description: Configure if the meter is enabled or not.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalMeterConfigurator
+ properties:
+ - property: default_config
+ description: Configure the default meter config used there is no matching entry in .meter_configurator/development.meters.
+ - property: meters
+ description: Configure meters.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalMeterMatcherAndConfig
+ properties:
+ - property: name
+ description: |
+ Configure meter names to match, evaluated as follows:
- * If the meter name exactly matches.
- * If the meter name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- - property: config
- description: The meter config.
- isSdkExtensionPlugin: false
-- type: ExperimentalOtlpFileExporter
- properties:
- - property: output_stream
- description: |
- Configure output stream.
- Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
- If omitted or null, stdout is used.
- isSdkExtensionPlugin: false
-- type: ExperimentalOtlpFileMetricExporter
- properties:
- - property: output_stream
- description: |
- Configure output stream.
- Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
- If omitted or null, stdout is used.
- - property: temporality_preference
- description: |
- Configure temporality preference.
- Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, cumulative is used.
- - property: default_histogram_aggregation
- description: |
- Configure default histogram aggregation.
- Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, explicit_bucket_histogram is used.
- isSdkExtensionPlugin: false
-- type: ExperimentalPeerInstrumentation
- properties:
- - property: service_mapping
- description: |
- Configure the service mapping for instrumentations following peer.service semantic conventions.
- See peer.service semantic conventions: https://opentelemetry.io/docs/specs/semconv/general/attributes/#general-remote-service-attributes
- isSdkExtensionPlugin: false
-- type: ExperimentalPeerServiceMapping
- properties:
- - property: peer
- description: |
- The IP address to map.
- - property: service
- description: |
- The logical name corresponding to the IP address of .peer.
- isSdkExtensionPlugin: false
-- type: ExperimentalProcessResourceDetector
- properties: []
- isSdkExtensionPlugin: false
-- type: ExperimentalPrometheusMetricExporter
- properties:
- - property: host
- description: |
- Configure host.
- If omitted or null, localhost is used.
- - property: port
- description: |
- Configure port.
- If omitted or null, 9464 is used.
- - property: without_scope_info
- description: |
- Configure Prometheus Exporter to produce metrics without a scope info metric.
- If omitted or null, false is used.
- - property: with_resource_constant_labels
- description: Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns.
- - property: translation_strategy
- description: |
- Configure how Prometheus metrics are exposed. Values include:
+ * If the meter name exactly matches.
+ * If the meter name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ - property: config
+ description: The meter config.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalOtlpFileExporter
+ properties:
+ - property: output_stream
+ description: |
+ Configure output stream.
+ Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
+ If omitted or null, stdout is used.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalOtlpFileMetricExporter
+ properties:
+ - property: output_stream
+ description: |
+ Configure output stream.
+ Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
+ If omitted or null, stdout is used.
+ - property: temporality_preference
+ description: |
+ Configure temporality preference.
+ Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, cumulative is used.
+ - property: default_histogram_aggregation
+ description: |
+ Configure default histogram aggregation.
+ Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, explicit_bucket_histogram is used.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalPeerInstrumentation
+ properties:
+ - property: service_mapping
+ description: |
+ Configure the service mapping for instrumentations following peer.service semantic conventions.
+ See peer.service semantic conventions: https://opentelemetry.io/docs/specs/semconv/general/attributes/#general-remote-service-attributes
+ isSdkExtensionPlugin: false
+ - type: ExperimentalPeerServiceMapping
+ properties:
+ - property: peer
+ description: |
+ The IP address to map.
+ - property: service
+ description: |
+ The logical name corresponding to the IP address of .peer.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalProcessResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExperimentalPrometheusMetricExporter
+ properties:
+ - property: host
+ description: |
+ Configure host.
+ If omitted or null, localhost is used.
+ - property: port
+ description: |
+ Configure port.
+ If omitted or null, 9464 is used.
+ - property: without_scope_info
+ description: |
+ Configure Prometheus Exporter to produce metrics without a scope info metric.
+ If omitted or null, false is used.
+ - property: with_resource_constant_labels
+ description: Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns.
+ - property: translation_strategy
+ description: |
+ Configure how Prometheus metrics are exposed. Values include:
- * UnderscoreEscapingWithSuffixes, the default. This fully escapes metric names for classic Prometheus metric name compatibility, and includes appending type and unit suffixes.
- * UnderscoreEscapingWithoutSuffixes, metric names will continue to escape special characters to _, but suffixes won't be attached.
- * NoUTF8EscapingWithSuffixes will disable changing special characters to _. Special suffixes like units and _total for counters will be attached.
- * NoTranslation. This strategy bypasses all metric and label name translation, passing them through unaltered.
+ * UnderscoreEscapingWithSuffixes, the default. This fully escapes metric names for classic Prometheus metric name compatibility, and includes appending type and unit suffixes.
+ * UnderscoreEscapingWithoutSuffixes, metric names will continue to escape special characters to _, but suffixes won't be attached.
+ * NoUTF8EscapingWithSuffixes will disable changing special characters to _. Special suffixes like units and _total for counters will be attached.
+ * NoTranslation. This strategy bypasses all metric and label name translation, passing them through unaltered.
- If omitted or null, UnderscoreEscapingWithSuffixes is used.
- isSdkExtensionPlugin: false
-- type: ExperimentalResourceDetection
- properties:
- - property: attributes
- description: Configure attributes provided by resource detectors.
- - property: detectors
- description: |
- Configure resource detectors.
- Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language.
- If omitted or null, no resource detectors are enabled.
- isSdkExtensionPlugin: false
-- type: ExperimentalResourceDetector
- properties:
- - property: container
- description: |
- Enable the container resource detector, which populates container.* attributes.
- - property: host
- description: |
- Enable the host resource detector, which populates host.* and os.* attributes.
- - property: process
- description: |
- Enable the process resource detector, which populates process.* attributes.
- - property: service
- description: |
- Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id.
- isSdkExtensionPlugin: true
-- type: ExperimentalServiceResourceDetector
- properties: []
- isSdkExtensionPlugin: false
-- type: ExperimentalTracerConfig
- properties:
- - property: disabled
- description: Configure if the tracer is enabled or not.
- isSdkExtensionPlugin: false
-- type: ExperimentalTracerConfigurator
- properties:
- - property: default_config
- description: Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers.
- - property: tracers
- description: Configure tracers.
- isSdkExtensionPlugin: false
-- type: ExperimentalTracerMatcherAndConfig
- properties:
- - property: name
- description: |
- Configure tracer names to match, evaluated as follows:
+ If omitted or null, UnderscoreEscapingWithSuffixes is used.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalResourceDetection
+ properties:
+ - property: attributes
+ description: Configure attributes provided by resource detectors.
+ - property: detectors
+ description: |
+ Configure resource detectors.
+ Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language.
+ If omitted or null, no resource detectors are enabled.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalResourceDetector
+ properties:
+ - property: container
+ description: |
+ Enable the container resource detector, which populates container.* attributes.
+ - property: host
+ description: |
+ Enable the host resource detector, which populates host.* and os.* attributes.
+ - property: process
+ description: |
+ Enable the process resource detector, which populates process.* attributes.
+ - property: service
+ description: |
+ Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id.
+ isSdkExtensionPlugin: true
+ - type: ExperimentalServiceResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExperimentalTracerConfig
+ properties:
+ - property: disabled
+ description: Configure if the tracer is enabled or not.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalTracerConfigurator
+ properties:
+ - property: default_config
+ description: Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers.
+ - property: tracers
+ description: Configure tracers.
+ isSdkExtensionPlugin: false
+ - type: ExperimentalTracerMatcherAndConfig
+ properties:
+ - property: name
+ description: |
+ Configure tracer names to match, evaluated as follows:
- * If the tracer name exactly matches.
- * If the tracer name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- - property: config
- description: The tracer config.
- isSdkExtensionPlugin: false
-- type: ExplicitBucketHistogramAggregation
- properties:
- - property: boundaries
- description: |
- Configure bucket boundaries.
- If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used.
- - property: record_min_max
- description: |
- Configure record min and max.
- If omitted or null, true is used.
- isSdkExtensionPlugin: false
-- type: ExporterDefaultHistogramAggregation
- properties: []
- isSdkExtensionPlugin: false
-- type: ExporterTemporalityPreference
- properties: []
- isSdkExtensionPlugin: false
-- type: GrpcTls
- properties:
- - property: certificate_file
- description: |
- Configure certificate used to verify a server's TLS credentials.
- Absolute path to certificate file in PEM format.
- If omitted or null, system default certificate verification is used for secure connections.
- - property: client_key_file
- description: |
- Configure mTLS private client key.
- Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
- If omitted or null, mTLS is not used.
- - property: client_certificate_file
- description: |
- Configure mTLS client certificate.
- Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
- If omitted or null, mTLS is not used.
- - property: insecure
- description: |
- Configure client transport security for the exporter's connection.
- Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
- If omitted or null, false is used.
- isSdkExtensionPlugin: false
-- type: HttpTls
- properties:
- - property: certificate_file
- description: |
- Configure certificate used to verify a server's TLS credentials.
- Absolute path to certificate file in PEM format.
- If omitted or null, system default certificate verification is used for secure connections.
- - property: client_key_file
- description: |
- Configure mTLS private client key.
- Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
- If omitted or null, mTLS is not used.
- - property: client_certificate_file
- description: |
- Configure mTLS client certificate.
- Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
- If omitted or null, mTLS is not used.
- isSdkExtensionPlugin: false
-- type: IncludeExclude
- properties:
- - property: included
- description: |
- Configure list of value patterns to include.
- Values are evaluated to match as follows:
- * If the value exactly matches.
- * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- If omitted, all values are included.
- - property: excluded
- description: |
- Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).
- Values are evaluated to match as follows:
- * If the value exactly matches.
- * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- If omitted, .included attributes are included.
- isSdkExtensionPlugin: false
-- type: InstrumentType
- properties: []
- isSdkExtensionPlugin: false
-- type: JaegerPropagator
- properties: []
- isSdkExtensionPlugin: false
-- type: JaegerRemoteSampler
- properties:
- - property: endpoint
- description: TODO
- - property: interval
- description: TODO
- - property: initial_sampler
- description: TODO
- isSdkExtensionPlugin: false
-- type: LastValueAggregation
- properties: []
- isSdkExtensionPlugin: false
-- type: LoggerProvider
- properties:
- - property: processors
- description: Configure log record processors.
- - property: limits
- description: Configure log record limits. See also attribute_limits.
- - property: logger_configurator/development
- description: |
- Configure loggers.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
-- type: LogRecordExporter
- properties:
- - property: otlp_http
- description: Configure exporter to be OTLP with HTTP transport.
- - property: otlp_grpc
- description: Configure exporter to be OTLP with gRPC transport.
- - property: otlp_file/development
- description: |
- Configure exporter to be OTLP with file transport.
- This type is in development and subject to breaking changes in minor versions.
- - property: console
- description: Configure exporter to be console.
- isSdkExtensionPlugin: true
-- type: LogRecordLimits
- properties:
- - property: attribute_value_length_limit
- description: |
- Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
- Value must be non-negative.
- If omitted or null, there is no limit.
- - property: attribute_count_limit
- description: |
- Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
- Value must be non-negative.
- If omitted or null, 128 is used.
- isSdkExtensionPlugin: false
-- type: LogRecordProcessor
- properties:
- - property: batch
- description: Configure a batch log record processor.
- - property: simple
- description: Configure a simple log record processor.
- isSdkExtensionPlugin: true
-- type: MeterProvider
- properties:
- - property: readers
- description: Configure metric readers.
- - property: views
- description: |
- Configure views.
- Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s).
- - property: exemplar_filter
- description: |
- Configure the exemplar filter.
- Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration.
- If omitted or null, trace_based is used.
- - property: meter_configurator/development
- description: |
- Configure meters.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
-- type: MetricProducer
- properties:
- - property: opencensus
- description: Configure metric producer to be opencensus.
- isSdkExtensionPlugin: true
-- type: MetricReader
- properties:
- - property: periodic
- description: Configure a periodic metric reader.
- - property: pull
- description: Configure a pull based metric reader.
- isSdkExtensionPlugin: false
-- type: NameStringValuePair
- properties:
- - property: name
- description: The name of the pair.
- - property: value
- description: The value of the pair.
- isSdkExtensionPlugin: false
-- type: OpenCensusMetricProducer
- properties: []
- isSdkExtensionPlugin: false
-- type: OpentelemetryConfiguration
- properties:
- - property: file_format
- description: |
- The file format version.
- The yaml format is documented at
- https://github.com/open-telemetry/opentelemetry-configuration/tree/main/schema
- - property: disabled
- description: |
- Configure if the SDK is disabled or not.
- If omitted or null, false is used.
- - property: log_level
- description: |
- Configure the log level of the internal logger used by the SDK.
- If omitted, info is used.
- - property: attribute_limits
- description: |
- Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.
- - property: logger_provider
- description: |
- Configure logger provider.
- If omitted, a noop logger provider is used.
- - property: meter_provider
- description: |
- Configure meter provider.
- If omitted, a noop meter provider is used.
- - property: propagator
- description: |
- Configure text map context propagators.
- If omitted, a noop propagator is used.
- - property: tracer_provider
- description: |
- Configure tracer provider.
- If omitted, a noop tracer provider is used.
- - property: resource
- description: |
- Configure resource for all signals.
- If omitted, the default resource is used.
- - property: instrumentation/development
- description: |
- Configure instrumentation.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
-- type: OpenTracingPropagator
- properties: []
- isSdkExtensionPlugin: false
-- type: OtlpGrpcExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:4317 is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
-- type: OtlpGrpcMetricExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:4317 is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: temporality_preference
- description: |
- Configure temporality preference.
- Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, cumulative is used.
- - property: default_histogram_aggregation
- description: |
- Configure default histogram aggregation.
- Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, explicit_bucket_histogram is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
-- type: OtlpHttpEncoding
- properties: []
- isSdkExtensionPlugin: false
-- type: OtlpHttpExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint, including the signal specific path.
- If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: encoding
- description: |
- Configure the encoding used for messages.
- Values include: protobuf, json. Implementations may not support json.
- If omitted or null, protobuf is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
-- type: OtlpHttpMetricExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint, including the signal specific path.
- If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:4317 is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: encoding
- description: |
- Configure the encoding used for messages.
- Values include: protobuf, json. Implementations may not support json.
- If omitted or null, protobuf is used.
- - property: temporality_preference
- description: |
- Configure temporality preference.
- Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, cumulative is used.
- - property: default_histogram_aggregation
- description: |
- Configure default histogram aggregation.
- Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, explicit_bucket_histogram is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
-- type: ParentBasedSampler
- properties:
- - property: root
- description: |
- Configure root sampler.
- If omitted or null, always_on is used.
- - property: remote_parent_sampled
- description: |
- Configure remote_parent_sampled sampler.
- If omitted or null, always_on is used.
- - property: remote_parent_not_sampled
- description: |
- Configure remote_parent_not_sampled sampler.
- If omitted or null, always_off is used.
- - property: local_parent_sampled
- description: |
- Configure local_parent_sampled sampler.
- If omitted or null, always_on is used.
- - property: local_parent_not_sampled
- description: |
- Configure local_parent_not_sampled sampler.
- If omitted or null, always_off is used.
- isSdkExtensionPlugin: false
-- type: PeriodicMetricReader
- properties:
- - property: interval
- description: |
- Configure delay interval (in milliseconds) between start of two consecutive exports.
- Value must be non-negative.
- If omitted or null, 60000 is used.
- - property: timeout
- description: |
- Configure maximum allowed time (in milliseconds) to export data.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 30000 is used.
- - property: exporter
- description: Configure exporter.
- - property: producers
- description: Configure metric producers.
- - property: cardinality_limits
- description: Configure cardinality limits.
- isSdkExtensionPlugin: false
-- type: Propagator
- properties:
- - property: composite
- description: |
- Configure the propagators in the composite text map propagator. Entries from .composite_list are appended to the list here with duplicates filtered out.
- Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray.
- If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
- - property: composite_list
- description: |
- Configure the propagators in the composite text map propagator. Entries are appended to .composite with duplicates filtered out.
- The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
- Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray.
- If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
- isSdkExtensionPlugin: false
-- type: PullMetricExporter
- properties:
- - property: prometheus/development
- description: |
- Configure exporter to be prometheus.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: true
-- type: PullMetricReader
- properties:
- - property: exporter
- description: Configure exporter.
- - property: producers
- description: Configure metric producers.
- - property: cardinality_limits
- description: Configure cardinality limits.
- isSdkExtensionPlugin: false
-- type: PushMetricExporter
- properties:
- - property: otlp_http
- description: |
- Configure exporter to be OTLP with HTTP transport.
- - property: otlp_grpc
- description: |
- Configure exporter to be OTLP with gRPC transport.
- - property: otlp_file/development
- description: |
- Configure exporter to be OTLP with file transport.
- This type is in development and subject to breaking changes in minor versions.
- - property: console
- description: |
- Configure exporter to be console.
- isSdkExtensionPlugin: true
-- type: Resource
- properties:
- - property: attributes
- description: |
- Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list.
- - property: detection/development
- description: |
- Configure resource detection.
- This type is in development and subject to breaking changes in minor versions.
- If omitted or null, resource detection is disabled.
- - property: schema_url
- description: |
- Configure resource schema URL.
- If omitted or null, no schema URL is used.
- - property: attributes_list
- description: |
- Configure resource attributes. Entries have lower priority than entries from .resource.attributes.
- The value is a list of comma separated key-value pairs matching the format of OTEL_RESOURCE_ATTRIBUTES. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
- If omitted or null, no resource attributes are added.
- isSdkExtensionPlugin: false
-- type: Sampler
- properties:
- - property: always_off
- description: Configure sampler to be always_off.
- - property: always_on
- description: Configure sampler to be always_on.
- - property: jaeger_remote
- description: TODO
- - property: parent_based
- description: Configure sampler to be parent_based.
- - property: trace_id_ratio_based
- description: Configure sampler to be trace_id_ratio_based.
- isSdkExtensionPlugin: true
-- type: SimpleLogRecordProcessor
- properties:
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
-- type: SimpleSpanProcessor
- properties:
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
-- type: SpanExporter
- properties:
- - property: otlp_http
- description: Configure exporter to be OTLP with HTTP transport.
- - property: otlp_grpc
- description: Configure exporter to be OTLP with gRPC transport.
- - property: otlp_file/development
- description: |
- Configure exporter to be OTLP with file transport.
- This type is in development and subject to breaking changes in minor versions.
- - property: console
- description: Configure exporter to be console.
- - property: zipkin
- description: Configure exporter to be zipkin.
- isSdkExtensionPlugin: true
-- type: SpanLimits
- properties:
- - property: attribute_value_length_limit
- description: |
- Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
- Value must be non-negative.
- If omitted or null, there is no limit.
- - property: attribute_count_limit
- description: |
- Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: event_count_limit
- description: |
- Configure max span event count.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: link_count_limit
- description: |
- Configure max span link count.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: event_attribute_count_limit
- description: |
- Configure max attributes per span event.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: link_attribute_count_limit
- description: |
- Configure max attributes per span link.
- Value must be non-negative.
- If omitted or null, 128 is used.
- isSdkExtensionPlugin: false
-- type: SpanProcessor
- properties:
- - property: batch
- description: Configure a batch span processor.
- - property: simple
- description: Configure a simple span processor.
- isSdkExtensionPlugin: true
-- type: SumAggregation
- properties: []
- isSdkExtensionPlugin: false
-- type: TextMapPropagator
- properties:
- - property: tracecontext
- description: Include the w3c trace context propagator.
- - property: baggage
- description: Include the w3c baggage propagator.
- - property: b3
- description: Include the zipkin b3 propagator.
- - property: b3multi
- description: Include the zipkin b3 multi propagator.
- - property: jaeger
- description: Include the jaeger propagator.
- - property: ottrace
- description: Include the opentracing propagator.
- isSdkExtensionPlugin: true
-- type: TraceContextPropagator
- properties: []
- isSdkExtensionPlugin: false
-- type: TraceIdRatioBasedSampler
- properties:
- - property: ratio
- description: |
- Configure trace_id_ratio.
- If omitted or null, 1.0 is used.
- isSdkExtensionPlugin: false
-- type: TracerProvider
- properties:
- - property: processors
- description: Configure span processors.
- - property: limits
- description: Configure span limits. See also attribute_limits.
- - property: sampler
- description: |
- Configure the sampler.
- If omitted, parent based sampler with a root of always_on is used.
- - property: tracer_configurator/development
- description: |
- Configure tracers.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
-- type: View
- properties:
- - property: selector
- description: |
- Configure view selector.
- Selection criteria is additive as described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#instrument-selection-criteria.
- - property: stream
- description: Configure view stream.
- isSdkExtensionPlugin: false
-- type: ViewSelector
- properties:
- - property: instrument_name
- description: |
- Configure instrument name selection criteria.
- If omitted or null, all instrument names match.
- - property: instrument_type
- description: |
- Configure instrument type selection criteria.
- Values include: counter, gauge, histogram, observable_counter, observable_gauge, observable_up_down_counter, up_down_counter.
- If omitted or null, all instrument types match.
- - property: unit
- description: |
- Configure the instrument unit selection criteria.
- If omitted or null, all instrument units match.
- - property: meter_name
- description: |
- Configure meter name selection criteria.
- If omitted or null, all meter names match.
- - property: meter_version
- description: |
- Configure meter version selection criteria.
- If omitted or null, all meter versions match.
- - property: meter_schema_url
- description: |
- Configure meter schema url selection criteria.
- If omitted or null, all meter schema URLs match.
- isSdkExtensionPlugin: false
-- type: ViewStream
- properties:
- - property: name
- description: |
- Configure metric name of the resulting stream(s).
- If omitted or null, the instrument's original name is used.
- - property: description
- description: |
- Configure metric description of the resulting stream(s).
- If omitted or null, the instrument's origin description is used.
- - property: aggregation
- description: |
- Configure aggregation of the resulting stream(s).
- Values include: default, drop, explicit_bucket_histogram, base2_exponential_bucket_histogram, last_value, sum. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#aggregation.
- If omitted, default is used.
- - property: aggregation_cardinality_limit
- description: |
- Configure the aggregation cardinality limit.
- If omitted or null, the metric reader's default cardinality limit is used.
- - property: attribute_keys
- description: |
- Configure attribute keys retained in the resulting stream(s).
- isSdkExtensionPlugin: false
-- type: ZipkinSpanExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:9411/api/v2/spans is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates indefinite.
- If omitted or null, 10000 is used.
- isSdkExtensionPlugin: false
+ * If the tracer name exactly matches.
+ * If the tracer name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ - property: config
+ description: The tracer config.
+ isSdkExtensionPlugin: false
+ - type: ExplicitBucketHistogramAggregation
+ properties:
+ - property: boundaries
+ description: |
+ Configure bucket boundaries.
+ If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used.
+ - property: record_min_max
+ description: |
+ Configure record min and max.
+ If omitted or null, true is used.
+ isSdkExtensionPlugin: false
+ - type: ExporterDefaultHistogramAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: ExporterTemporalityPreference
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: GrpcTls
+ properties:
+ - property: certificate_file
+ description: |
+ Configure certificate used to verify a server's TLS credentials.
+ Absolute path to certificate file in PEM format.
+ If omitted or null, system default certificate verification is used for secure connections.
+ - property: client_key_file
+ description: |
+ Configure mTLS private client key.
+ Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
+ If omitted or null, mTLS is not used.
+ - property: client_certificate_file
+ description: |
+ Configure mTLS client certificate.
+ Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
+ If omitted or null, mTLS is not used.
+ - property: insecure
+ description: |
+ Configure client transport security for the exporter's connection.
+ Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
+ If omitted or null, false is used.
+ isSdkExtensionPlugin: false
+ - type: HttpTls
+ properties:
+ - property: certificate_file
+ description: |
+ Configure certificate used to verify a server's TLS credentials.
+ Absolute path to certificate file in PEM format.
+ If omitted or null, system default certificate verification is used for secure connections.
+ - property: client_key_file
+ description: |
+ Configure mTLS private client key.
+ Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
+ If omitted or null, mTLS is not used.
+ - property: client_certificate_file
+ description: |
+ Configure mTLS client certificate.
+ Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
+ If omitted or null, mTLS is not used.
+ isSdkExtensionPlugin: false
+ - type: IncludeExclude
+ properties:
+ - property: included
+ description: |
+ Configure list of value patterns to include.
+ Values are evaluated to match as follows:
+ * If the value exactly matches.
+ * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ If omitted, all values are included.
+ - property: excluded
+ description: |
+ Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).
+ Values are evaluated to match as follows:
+ * If the value exactly matches.
+ * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ If omitted, .included attributes are included.
+ isSdkExtensionPlugin: false
+ - type: InstrumentType
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: JaegerPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: JaegerRemoteSampler
+ properties:
+ - property: endpoint
+ description: TODO
+ - property: interval
+ description: TODO
+ - property: initial_sampler
+ description: TODO
+ isSdkExtensionPlugin: false
+ - type: LastValueAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: LoggerProvider
+ properties:
+ - property: processors
+ description: Configure log record processors.
+ - property: limits
+ description: Configure log record limits. See also attribute_limits.
+ - property: logger_configurator/development
+ description: |
+ Configure loggers.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+ - type: LogRecordExporter
+ properties:
+ - property: otlp_http
+ description: Configure exporter to be OTLP with HTTP transport.
+ - property: otlp_grpc
+ description: Configure exporter to be OTLP with gRPC transport.
+ - property: otlp_file/development
+ description: |
+ Configure exporter to be OTLP with file transport.
+ This type is in development and subject to breaking changes in minor versions.
+ - property: console
+ description: Configure exporter to be console.
+ isSdkExtensionPlugin: true
+ - type: LogRecordLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+ - property: attribute_count_limit
+ description: |
+ Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ isSdkExtensionPlugin: false
+ - type: LogRecordProcessor
+ properties:
+ - property: batch
+ description: Configure a batch log record processor.
+ - property: simple
+ description: Configure a simple log record processor.
+ isSdkExtensionPlugin: true
+ - type: MeterProvider
+ properties:
+ - property: readers
+ description: Configure metric readers.
+ - property: views
+ description: |
+ Configure views.
+ Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s).
+ - property: exemplar_filter
+ description: |
+ Configure the exemplar filter.
+ Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration.
+ If omitted or null, trace_based is used.
+ - property: meter_configurator/development
+ description: |
+ Configure meters.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+ - type: MetricProducer
+ properties:
+ - property: opencensus
+ description: Configure metric producer to be opencensus.
+ isSdkExtensionPlugin: true
+ - type: MetricReader
+ properties:
+ - property: periodic
+ description: Configure a periodic metric reader.
+ - property: pull
+ description: Configure a pull based metric reader.
+ isSdkExtensionPlugin: false
+ - type: NameStringValuePair
+ properties:
+ - property: name
+ description: The name of the pair.
+ - property: value
+ description: The value of the pair.
+ isSdkExtensionPlugin: false
+ - type: OpenCensusMetricProducer
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: OpentelemetryConfiguration
+ properties:
+ - property: file_format
+ description: |
+ The file format version.
+ The yaml format is documented at
+ https://github.com/open-telemetry/opentelemetry-configuration/tree/main/schema
+ - property: disabled
+ description: |
+ Configure if the SDK is disabled or not.
+ If omitted or null, false is used.
+ - property: log_level
+ description: |
+ Configure the log level of the internal logger used by the SDK.
+ If omitted, info is used.
+ - property: attribute_limits
+ description: |
+ Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.
+ - property: logger_provider
+ description: |
+ Configure logger provider.
+ If omitted, a noop logger provider is used.
+ - property: meter_provider
+ description: |
+ Configure meter provider.
+ If omitted, a noop meter provider is used.
+ - property: propagator
+ description: |
+ Configure text map context propagators.
+ If omitted, a noop propagator is used.
+ - property: tracer_provider
+ description: |
+ Configure tracer provider.
+ If omitted, a noop tracer provider is used.
+ - property: resource
+ description: |
+ Configure resource for all signals.
+ If omitted, the default resource is used.
+ - property: instrumentation/development
+ description: |
+ Configure instrumentation.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+ - type: OpenTracingPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: OtlpGrpcExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:4317 is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+ - type: OtlpGrpcMetricExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:4317 is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: temporality_preference
+ description: |
+ Configure temporality preference.
+ Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, cumulative is used.
+ - property: default_histogram_aggregation
+ description: |
+ Configure default histogram aggregation.
+ Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, explicit_bucket_histogram is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+ - type: OtlpHttpEncoding
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: OtlpHttpExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint, including the signal specific path.
+ If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: encoding
+ description: |
+ Configure the encoding used for messages.
+ Values include: protobuf, json. Implementations may not support json.
+ If omitted or null, protobuf is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+ - type: OtlpHttpMetricExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint, including the signal specific path.
+ If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:4317 is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: encoding
+ description: |
+ Configure the encoding used for messages.
+ Values include: protobuf, json. Implementations may not support json.
+ If omitted or null, protobuf is used.
+ - property: temporality_preference
+ description: |
+ Configure temporality preference.
+ Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, cumulative is used.
+ - property: default_histogram_aggregation
+ description: |
+ Configure default histogram aggregation.
+ Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, explicit_bucket_histogram is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+ - type: ParentBasedSampler
+ properties:
+ - property: root
+ description: |
+ Configure root sampler.
+ If omitted or null, always_on is used.
+ - property: remote_parent_sampled
+ description: |
+ Configure remote_parent_sampled sampler.
+ If omitted or null, always_on is used.
+ - property: remote_parent_not_sampled
+ description: |
+ Configure remote_parent_not_sampled sampler.
+ If omitted or null, always_off is used.
+ - property: local_parent_sampled
+ description: |
+ Configure local_parent_sampled sampler.
+ If omitted or null, always_on is used.
+ - property: local_parent_not_sampled
+ description: |
+ Configure local_parent_not_sampled sampler.
+ If omitted or null, always_off is used.
+ isSdkExtensionPlugin: false
+ - type: PeriodicMetricReader
+ properties:
+ - property: interval
+ description: |
+ Configure delay interval (in milliseconds) between start of two consecutive exports.
+ Value must be non-negative.
+ If omitted or null, 60000 is used.
+ - property: timeout
+ description: |
+ Configure maximum allowed time (in milliseconds) to export data.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 30000 is used.
+ - property: exporter
+ description: Configure exporter.
+ - property: producers
+ description: Configure metric producers.
+ - property: cardinality_limits
+ description: Configure cardinality limits.
+ isSdkExtensionPlugin: false
+ - type: Propagator
+ properties:
+ - property: composite
+ description: |
+ Configure the propagators in the composite text map propagator. Entries from .composite_list are appended to the list here with duplicates filtered out.
+ Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray.
+ If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
+ - property: composite_list
+ description: |
+ Configure the propagators in the composite text map propagator. Entries are appended to .composite with duplicates filtered out.
+ The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
+ Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray.
+ If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
+ isSdkExtensionPlugin: false
+ - type: PullMetricExporter
+ properties:
+ - property: prometheus/development
+ description: |
+ Configure exporter to be prometheus.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: true
+ - type: PullMetricReader
+ properties:
+ - property: exporter
+ description: Configure exporter.
+ - property: producers
+ description: Configure metric producers.
+ - property: cardinality_limits
+ description: Configure cardinality limits.
+ isSdkExtensionPlugin: false
+ - type: PushMetricExporter
+ properties:
+ - property: otlp_http
+ description: |
+ Configure exporter to be OTLP with HTTP transport.
+ - property: otlp_grpc
+ description: |
+ Configure exporter to be OTLP with gRPC transport.
+ - property: otlp_file/development
+ description: |
+ Configure exporter to be OTLP with file transport.
+ This type is in development and subject to breaking changes in minor versions.
+ - property: console
+ description: |
+ Configure exporter to be console.
+ isSdkExtensionPlugin: true
+ - type: Resource
+ properties:
+ - property: attributes
+ description: |
+ Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list.
+ - property: detection/development
+ description: |
+ Configure resource detection.
+ This type is in development and subject to breaking changes in minor versions.
+ If omitted or null, resource detection is disabled.
+ - property: schema_url
+ description: |
+ Configure resource schema URL.
+ If omitted or null, no schema URL is used.
+ - property: attributes_list
+ description: |
+ Configure resource attributes. Entries have lower priority than entries from .resource.attributes.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_RESOURCE_ATTRIBUTES. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
+ If omitted or null, no resource attributes are added.
+ isSdkExtensionPlugin: false
+ - type: Sampler
+ properties:
+ - property: always_off
+ description: Configure sampler to be always_off.
+ - property: always_on
+ description: Configure sampler to be always_on.
+ - property: jaeger_remote
+ description: TODO
+ - property: parent_based
+ description: Configure sampler to be parent_based.
+ - property: trace_id_ratio_based
+ description: Configure sampler to be trace_id_ratio_based.
+ isSdkExtensionPlugin: true
+ - type: SimpleLogRecordProcessor
+ properties:
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+ - type: SimpleSpanProcessor
+ properties:
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+ - type: SpanExporter
+ properties:
+ - property: otlp_http
+ description: Configure exporter to be OTLP with HTTP transport.
+ - property: otlp_grpc
+ description: Configure exporter to be OTLP with gRPC transport.
+ - property: otlp_file/development
+ description: |
+ Configure exporter to be OTLP with file transport.
+ This type is in development and subject to breaking changes in minor versions.
+ - property: console
+ description: Configure exporter to be console.
+ - property: zipkin
+ description: Configure exporter to be zipkin.
+ isSdkExtensionPlugin: true
+ - type: SpanLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+ - property: attribute_count_limit
+ description: |
+ Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: event_count_limit
+ description: |
+ Configure max span event count.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: link_count_limit
+ description: |
+ Configure max span link count.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: event_attribute_count_limit
+ description: |
+ Configure max attributes per span event.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: link_attribute_count_limit
+ description: |
+ Configure max attributes per span link.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ isSdkExtensionPlugin: false
+ - type: SpanProcessor
+ properties:
+ - property: batch
+ description: Configure a batch span processor.
+ - property: simple
+ description: Configure a simple span processor.
+ isSdkExtensionPlugin: true
+ - type: SumAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: TextMapPropagator
+ properties:
+ - property: tracecontext
+ description: Include the w3c trace context propagator.
+ - property: baggage
+ description: Include the w3c baggage propagator.
+ - property: b3
+ description: Include the zipkin b3 propagator.
+ - property: b3multi
+ description: Include the zipkin b3 multi propagator.
+ - property: jaeger
+ description: Include the jaeger propagator.
+ - property: ottrace
+ description: Include the opentracing propagator.
+ isSdkExtensionPlugin: true
+ - type: TraceContextPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+ - type: TraceIdRatioBasedSampler
+ properties:
+ - property: ratio
+ description: |
+ Configure trace_id_ratio.
+ If omitted or null, 1.0 is used.
+ isSdkExtensionPlugin: false
+ - type: TracerProvider
+ properties:
+ - property: processors
+ description: Configure span processors.
+ - property: limits
+ description: Configure span limits. See also attribute_limits.
+ - property: sampler
+ description: |
+ Configure the sampler.
+ If omitted, parent based sampler with a root of always_on is used.
+ - property: tracer_configurator/development
+ description: |
+ Configure tracers.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+ - type: View
+ properties:
+ - property: selector
+ description: |
+ Configure view selector.
+ Selection criteria is additive as described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#instrument-selection-criteria.
+ - property: stream
+ description: Configure view stream.
+ isSdkExtensionPlugin: false
+ - type: ViewSelector
+ properties:
+ - property: instrument_name
+ description: |
+ Configure instrument name selection criteria.
+ If omitted or null, all instrument names match.
+ - property: instrument_type
+ description: |
+ Configure instrument type selection criteria.
+ Values include: counter, gauge, histogram, observable_counter, observable_gauge, observable_up_down_counter, up_down_counter.
+ If omitted or null, all instrument types match.
+ - property: unit
+ description: |
+ Configure the instrument unit selection criteria.
+ If omitted or null, all instrument units match.
+ - property: meter_name
+ description: |
+ Configure meter name selection criteria.
+ If omitted or null, all meter names match.
+ - property: meter_version
+ description: |
+ Configure meter version selection criteria.
+ If omitted or null, all meter versions match.
+ - property: meter_schema_url
+ description: |
+ Configure meter schema url selection criteria.
+ If omitted or null, all meter schema URLs match.
+ isSdkExtensionPlugin: false
+ - type: ViewStream
+ properties:
+ - property: name
+ description: |
+ Configure metric name of the resulting stream(s).
+ If omitted or null, the instrument's original name is used.
+ - property: description
+ description: |
+ Configure metric description of the resulting stream(s).
+ If omitted or null, the instrument's origin description is used.
+ - property: aggregation
+ description: |
+ Configure aggregation of the resulting stream(s).
+ Values include: default, drop, explicit_bucket_histogram, base2_exponential_bucket_histogram, last_value, sum. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#aggregation.
+ If omitted, default is used.
+ - property: aggregation_cardinality_limit
+ description: |
+ Configure the aggregation cardinality limit.
+ If omitted or null, the metric reader's default cardinality limit is used.
+ - property: attribute_keys
+ description: |
+ Configure attribute keys retained in the resulting stream(s).
+ isSdkExtensionPlugin: false
+ - type: ZipkinSpanExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:9411/api/v2/spans is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates indefinite.
+ If omitted or null, 10000 is used.
+ isSdkExtensionPlugin: false
+languageImplementations:
+ - language: java
+ latestSupportedFileFormat: 1.0.0-rc.1
+ typeSupportStatuses:
+ - type: Aggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AlwaysOffSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AlwaysOnSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AttributeLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AttributeNameValue
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AttributeType
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: B3MultiPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: B3Propagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: BaggagePropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Base2ExponentialBucketHistogramAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: BatchLogRecordProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: BatchSpanProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: CardinalityLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ConsoleExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: DefaultAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: DropAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExemplarFilter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalContainerResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalGeneralInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHostResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHttpClientInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHttpInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHttpServerInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLanguageSpecificInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLoggerConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLoggerConfigurator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLoggerMatcherAndConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalMeterConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalMeterConfigurator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalMeterMatcherAndConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalOtlpFileExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalOtlpFileMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalPeerInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalPeerServiceMapping
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalProcessResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalPrometheusMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalResourceDetection
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalServiceResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalTracerConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalTracerConfigurator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalTracerMatcherAndConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExplicitBucketHistogramAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExporterDefaultHistogramAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExporterTemporalityPreference
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: GrpcTls
+ status: unknown
+ unsupportedProperties: []
+ notes: ""
+ - type: HttpTls
+ status: unknown
+ unsupportedProperties: []
+ notes: ""
+ - type: IncludeExclude
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: InstrumentType
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: JaegerPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: JaegerRemoteSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LastValueAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LoggerProvider
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LogRecordExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LogRecordLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LogRecordProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: MeterProvider
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: MetricProducer
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: MetricReader
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: NameStringValuePair
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OpenCensusMetricProducer
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OpentelemetryConfiguration
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OpenTracingPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpGrpcExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpGrpcMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpHttpEncoding
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpHttpExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpHttpMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ParentBasedSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PeriodicMetricReader
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Propagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PullMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PullMetricReader
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PushMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Resource
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Sampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SimpleLogRecordProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SimpleSpanProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SpanExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SpanLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SpanProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SumAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TextMapPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TraceContextPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TraceIdRatioBasedSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TracerProvider
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: View
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ViewSelector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ViewStream
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ZipkinSpanExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
diff --git a/scripts/fix-meta-schema.js b/scripts/fix-meta-schema.js
index e60be599..1d91f545 100644
--- a/scripts/fix-meta-schema.js
+++ b/scripts/fix-meta-schema.js
@@ -1,14 +1,10 @@
-
import {
- readAndFixMetaSchemaTypes, writeMetaSchemaTypes
+ readAndFixMetaSchema, writeMetaSchema
} from "./meta-schema.js";
-const { messages, types } = readAndFixMetaSchemaTypes();
+const { messages, metaSchema } = readAndFixMetaSchema();
-// Sort lexigraphically and write to meta schema
-let sortedMetaSchemaTypes = types.map(type => type.toJson());
-sortedMetaSchemaTypes.sort((a, b) => a.type.localeCompare(b.type));
-writeMetaSchemaTypes(sortedMetaSchemaTypes);
+writeMetaSchema(metaSchema);
// Write messages to console
messages.forEach(message => {
diff --git a/scripts/generate-descriptions.js b/scripts/generate-descriptions.js
index 1170a8f1..a7a776ab 100644
--- a/scripts/generate-descriptions.js
+++ b/scripts/generate-descriptions.js
@@ -1,6 +1,6 @@
import fs from 'fs';
import yaml from 'yaml';
-import {readAndFixMetaSchemaTypes} from "./meta-schema.js";
+import {readAndFixMetaSchema} from "./meta-schema.js";
import {readJsonSchemaTypes} from "./json-schema.js";
// Extract input file arg or throw
@@ -30,9 +30,9 @@ for (let i = 3; i < process.argv.length; i++) {
}
// Read JSON schema and meta schema
-const { messages, types } = readAndFixMetaSchemaTypes();
+const { messages, metaSchema } = readAndFixMetaSchema();
const metaSchemaTypesByType = {};
-types.forEach(type => metaSchemaTypesByType[type.type] = type);
+metaSchema.types.forEach(type => metaSchemaTypesByType[type.type] = type);
if (messages.length > 0) {
throw new Error("Meta schema has problems. Please run fix-meta-schema and try again.");
}
diff --git a/scripts/generate-markdown.js b/scripts/generate-markdown.js
index aae1d420..bf0c5184 100644
--- a/scripts/generate-markdown.js
+++ b/scripts/generate-markdown.js
@@ -1,9 +1,9 @@
import {readJsonSchemaTypes} from "./json-schema.js";
-import {readAndFixMetaSchemaTypes} from "./meta-schema.js";
+import {KNOWN_LANGUAGES, readAndFixMetaSchema} from "./meta-schema.js";
import fs from "node:fs";
import {markdownDocPath} from "./util.js";
-const { messages, types } = readAndFixMetaSchemaTypes();
+const { messages, metaSchema } = readAndFixMetaSchema();
if (messages.length > 0) {
throw new Error("Meta schema has problems. Please run fix-meta-schema and try again.");
@@ -16,14 +16,14 @@ jsonSchemaTypes.forEach(type => jsonSchemaTypesByType[type.type] = type);
const output = [];
const headers = [];
-types.sort((a, b) => a.type.localeCompare(b.type));
+metaSchema.types.sort((a, b) => a.type.localeCompare(b.type));
addHeader('Overview', 'overview', 1);
output.push('TODO\n');
// Write types
addHeader('Types', 'types', 1);
-types.forEach(metaSchemaType => {
+metaSchema.types.forEach(metaSchemaType => {
const type = metaSchemaType.type;
const jsonSchemaType = jsonSchemaTypesByType[type];
if (!jsonSchemaType) {
@@ -62,7 +62,36 @@ types.forEach(metaSchemaType => {
output.push(`| \`${property.property}\` | ${formattedPropertyType} | \`${isRequired}\` | ${formattedConstraints} | ${formattedDescription} |\n`);
});
output.push('\n');
- // TODO: print language implementation status
+
+ // Write language support status for type
+ output.push(`\n`);
+ output.push('Language support status
\n\n');
+ const languageImplementationsByLanguage = {};
+ metaSchema.languageImplementations.forEach(languageImplementation => languageImplementationsByLanguage[languageImplementation.language] = languageImplementation);
+ output.push('| Property |');
+ KNOWN_LANGUAGES.forEach(language => {
+ output.push(` [${language}](#${language}) |`);
+ if (!languageImplementationsByLanguage[language]) {
+ throw new Error(`Meta schema LanguageImplementation not found for language ${language}.`);
+ }
+ });
+ output.push('\n');
+ output.push('|---|');
+ KNOWN_LANGUAGES.forEach(language => output.push(`---|`));
+ output.push('\n');
+ metaSchemaType.properties.forEach(property => {
+ output.push(`| \`${property.property}\` |`);
+ KNOWN_LANGUAGES.forEach(language => {
+ const typeSupportStatus = languageImplementationsByLanguage[language].typeSupportStatuses.find(item => item.type === type);
+ if (!typeSupportStatus) {
+ throw new Error(`Meta schema LanguageImplementation for language ${language} missing type ${type}.`);
+ }
+ const status = typeSupportStatus.unsupportedProperties.includes(property) ? 'unsupported' : typeSupportStatus.status;
+ output.push(` ${status} |`);
+ });
+ output.push('\n');
+ });
+ output.push(` \n\n`)
}
// Constraints
@@ -101,6 +130,35 @@ types.forEach(metaSchemaType => {
output.push('\n');
});
+// Write language support status
+addHeader('Language Support Status', 'language-support-status', 1);
+KNOWN_LANGUAGES.forEach(language => {
+ addHeader(language, language, 2);
+ const languageImplementation = metaSchema.languageImplementations.find(item => item.language === language);
+ if (!languageImplementation) {
+ throw new Error(`Meta schema LanguageImplementation not found for language ${language}.`);
+ }
+ output.push(`Latest supported file format: \`${languageImplementation.latestSupportedFileFormat}\`\n\n`);
+
+ output.push(`| Type | Status | Notes | Property Support Status |\n`);
+ output.push(`|---|---|---|---|\n`);
+ languageImplementation.typeSupportStatuses.forEach(typeSupportStatus => {
+ const metaSchemaType = metaSchema.types.find(item => item.type === typeSupportStatus.type);
+ if (!metaSchemaType) {
+ throw new Error(`MetaSchemaType not found for type ${typeSupportStatus.type}.`);
+ }
+
+ const propertySupportStatus = [];
+ metaSchemaType.properties.forEach(metaSchemaProperty => {
+ const status = typeSupportStatus.unsupportedProperties.includes(metaSchemaProperty.property) ? 'unsupported' : typeSupportStatus.status;
+ propertySupportStatus.push(`* \`${metaSchemaProperty.property}\`: ${status}
`) ;
+ });
+
+ output.push(`| [\`${typeSupportStatus.type}\`](#${typeSupportStatus.type.toLowerCase()}) | ${typeSupportStatus.status} | ${typeSupportStatus.notes} | ${propertySupportStatus.join('')} |\n`);
+ });
+ output.push(`\n\n`);
+});
+
// Write SDK extension plugins
addHeader('SDK Extension Plugins', 'sdk-extension-plugins', 1);
output.push(
@@ -113,7 +171,7 @@ Each of the following types support referencing custom interface implementations
SDK extension plugin types may have properties defined corresponding to built-in implementations of the interface. For example, the \`otlp_http\` property of \`SpanExporter\` defines the OTLP http/protobuf exporter.
`);
-types.filter(metaSchemaType => metaSchemaType.isSdkExtensionPlugin)
+metaSchema.types.filter(metaSchemaType => metaSchemaType.isSdkExtensionPlugin)
.forEach(metaSchemaType => {
output.push(`* [${metaSchemaType.type}](#${metaSchemaType.type})\n`)
});
diff --git a/scripts/meta-schema.js b/scripts/meta-schema.js
index e2c44924..e7d51f25 100644
--- a/scripts/meta-schema.js
+++ b/scripts/meta-schema.js
@@ -1,66 +1,212 @@
-
-import { readJsonSchemaTypes } from "./json-schema.js";
+import {readJsonSchemaTypes} from "./json-schema.js";
import fs from 'fs';
import yaml from 'yaml';
import {metaSchemaFileName, metaSchemaPath} from "./util.js";
-export function writeMetaSchemaTypes(metaSchemaTypes) {
- fs.writeFileSync(metaSchemaPath, yaml.stringify(metaSchemaTypes, { lineWidth: 0 }));
+export const KNOWN_LANGUAGES = ['java'];
+
+export function writeMetaSchema(metaSchema) {
+ fs.writeFileSync(metaSchemaPath, yaml.stringify(metaSchema.toJson(), {lineWidth: 0}));
}
-export function readAndFixMetaSchemaTypes() {
+export function readAndFixMetaSchema() {
// Track messages tracking schema fixes
const messages = [];
- // Read meta schema and sanitize
+ // Parse meta schema and sanitize
const metaSchemaContent = fs.readFileSync(metaSchemaPath, "utf-8");
const metaSchemaDoc = yaml.parse(metaSchemaContent);
- const metaSchemaTypes = [];
+ let metaSchema = MetaSchema.parseJson(metaSchemaDoc, messages);
- if (Array.isArray(metaSchemaDoc)) {
- metaSchemaDoc.forEach(rawMetaSchemaType => {
- const type = rawMetaSchemaType['type'];
+ const jsonSchemaTypesByType = {};
+ readJsonSchemaTypes().forEach(type => jsonSchemaTypesByType[type.type] = type);
- if (typeof type !== 'string') {
- messages.push(`${metaSchemaFileName} contains entry ${JSON.stringify(rawMetaSchemaType)} with invalid type. Ignoring type.`);
- return;
- }
+ // Reconcile meta schema with json schema
+ reconcileTypes(metaSchema, jsonSchemaTypesByType, messages);
+ reconcileLanguageImplementations(metaSchema, jsonSchemaTypesByType, messages);
- const rawProperties = rawMetaSchemaType['properties'];
- const isSdkExtensionPlugin = Boolean(rawMetaSchemaType['isSdkExtensionPlugin']);
- const metaSchemaProperties = [];
-
- if (Array.isArray(rawProperties)) {
- rawProperties.forEach(rawProperty => {
- const property = rawProperty['property'];
- if (typeof property !== 'string') {
- messages.push(`${metaSchemaFileName} type ${type} contains property ${JSON.stringify(rawProperty)} with invalid property. Ignoring property.`);
- return;
- }
-
- let description = rawProperty['description'];
- if (typeof description !== 'string') {
- messages.push(`${metaSchemaFileName} type ${type} contains property ${property} with invalid description. Ignoring description.`);
- description = '';
- }
-
- metaSchemaProperties.push(new MetaSchemaProperty(property, description));
- });
- } else {
- messages.push(`${metaSchemaFileName} contains entry ${JSON.stringify(rawMetaSchemaType)} with invalid properties. Ignoring properties.`);
- }
+ return {messages, metaSchema};
+}
- metaSchemaTypes.push(new MetaSchemaType(type, metaSchemaProperties, isSdkExtensionPlugin));
- });
- } else {
- messages.push(`${metaSchemaFileName} must be array of types.`);
+// Types
+
+export class MetaSchema {
+ types;
+ languageImplementations;
+
+ constructor(types, languageImplementations) {
+ this.types = types;
+ this.languageImplementations = languageImplementations;
}
- const metaSchemaTypesByType = {};
- metaSchemaTypes.forEach(type => metaSchemaTypesByType[type.type] = type);
+ toJson() {
+ let sortedTypes = this.types.map(type => type.toJson());
+ sortedTypes.sort((a, b) => a.type.localeCompare(b.type));
- const jsonSchemaTypesByType = {};
- readJsonSchemaTypes().forEach(type => jsonSchemaTypesByType[type.type] = type);
+ let sortedLanguageImplementations = this.languageImplementations.map(languageImplementation => languageImplementation.toJson());
+ sortedLanguageImplementations.sort((a, b) => a.language.localeCompare(b.language));
+
+ return {types: sortedTypes, languageImplementations: sortedLanguageImplementations};
+ }
+
+ static parseJson(rawJson, messages) {
+ const types = parseArray(
+ rawJson,
+ 'types',
+ entryJson => MetaSchemaType.parseJson(entryJson, messages),
+ `MetaSchema has invalid 'types'`,
+ error => `MetaSchema has invalid MetaSchemaType: ${error.message}. Skipping.`,
+ messages);
+ const languageImplementations = parseArray(
+ rawJson,
+ 'languageImplementations',
+ entryJson => LanguageImplementation.parseJson(entryJson, messages),
+ `MetaSchema has invalid 'languageImplementations'`,
+ error => `MetaSchema has invalid LanguageImplementation: ${error.message}. Skipping.`,
+ messages);
+ return new MetaSchema(types, languageImplementations);
+ }
+}
+
+export class MetaSchemaType {
+ type;
+ properties;
+ isSdkExtensionPlugin;
+
+ constructor(type, properties, isSdkExtensionPlugin) {
+ this.type = type;
+ this.properties = properties;
+ this.isSdkExtensionPlugin = isSdkExtensionPlugin;
+
+ }
+
+ toJson() {
+ const properties = this.properties.map(property => property.toJson());
+ properties.sort((a, b) => a.property.localeCompare(b.property));
+
+ return {type: this.type, properties: this.properties, isSdkExtensionPlugin: this.isSdkExtensionPlugin};
+ }
+
+ static parseJson(rawJson, messages) {
+ const type = parseString(rawJson, 'type', `MetaSchemaType has invalid 'type'`);
+ const properties = parseArray(
+ rawJson,
+ 'properties',
+ entryJson => MetaSchemaProperty.parseJson(entryJson, messages),
+ `MetaSchemaType '${type}' has invalid 'properties'`,
+ error => `MetaSchemaType '${type}' has invalid property: ${error.message}. Skipping.`,
+ messages);
+ const isSdkExtensionPlugin = parseBoolean(rawJson, 'isSdkExtensionPlugin', `MetaSchemaType has invalid 'isSdkExtensionPlugin'`);
+ return new MetaSchemaType(type, properties, isSdkExtensionPlugin);
+ }
+}
+
+export class MetaSchemaProperty {
+ property;
+ description;
+
+ constructor(property, description) {
+ this.property = property;
+ this.description = description;
+ }
+
+ toJson() {
+ return {property: this.property, description: this.description};
+ }
+
+ static parseJson(rawJson, messages) {
+ const property = parseString(rawJson, 'property', `MetaSchemaProperty has invalid 'property'`);
+ const description = parseString(rawJson, 'description', `MetaSchemaProperty has invalid 'description'`);
+ return new MetaSchemaProperty(property, description);
+ }
+}
+
+export class LanguageImplementation {
+ language;
+ latestSupportedFileFormat;
+ typeSupportStatuses;
+
+ constructor(language, latestSupportedFileFormat, typeSupportStatuses) {
+ this.language = language;
+ this.latestSupportedFileFormat = latestSupportedFileFormat;
+ this.typeSupportStatuses = typeSupportStatuses;
+ }
+
+ toJson() {
+ const typeSupportStatuses = this.typeSupportStatuses.map(typeSupportStatus => typeSupportStatus.toJson());
+ typeSupportStatuses.sort((a, b) => a.type.localeCompare(b.type));
+
+ return {
+ language: this.language,
+ latestSupportedFileFormat: this.latestSupportedFileFormat,
+ typeSupportStatuses
+ };
+ }
+
+ static parseJson(rawJson, messages) {
+ const language = parseString(rawJson, 'language', `LanguageImplementation has invalid 'language'`);
+ const latestSupportedFileFormat = parseString(rawJson, 'latestSupportedFileFormat', `LanguageImplementation has invalid 'latestSupportedFileFormat'`);
+ const typeSupportStatuses = parseArray(
+ rawJson,
+ 'typeSupportStatuses',
+ entryJson => TypeSupportStatus.parseJson(entryJson, messages),
+ `LanguageImplementation '${language}' has invalid 'typeSupportStatuses'`,
+ error => `LanguageImplementation '${language}' has invalid TypeSupportStatus: ${error.message}. Skipping.`,
+ messages);
+ return new LanguageImplementation(language, latestSupportedFileFormat, typeSupportStatuses);
+ }
+}
+
+export class TypeSupportStatus {
+ type;
+ status;
+ unsupportedProperties;
+ notes;
+
+ constructor(type, status, unsupportedProperties, notes) {
+ this.type = type;
+ this.status = status;
+ this.unsupportedProperties = unsupportedProperties;
+ this.notes = notes;
+ }
+
+ toJson() {
+ const unsupportedProperties = [...this.unsupportedProperties];
+ unsupportedProperties.sort();
+
+ return {
+ type: this.type,
+ status: this.status,
+ unsupportedProperties,
+ notes: this.notes
+ };
+ }
+
+ static parseJson(rawJson, messages) {
+ const type = parseString(rawJson, 'type', `TypeSupportStatus has invalid 'type'`);
+ const status = parseString(rawJson, 'status', `TypeSupportStatus has invalid 'status'`);
+ const unsupportedProperties = parseArray(
+ rawJson,
+ 'unsupportedProperties',
+ entryJson => {
+ if (typeof entryJson !== 'string') {
+ throw new Error(`Invalid unsupportedProperty.`);
+ }
+ return entryJson;
+ },
+ `TypeSupportStatus '${type}' has invalid 'unsupportedProperties'`,
+ error => `TypeSupportStatus '${type}' has invalid unsupportedProperty: ${error.message}. Skipping.`,
+ messages);
+ const notes = parseString(rawJson, 'notes', `TypeSupportStatus has invalid 'notes'`);
+ return new TypeSupportStatus(type, status, unsupportedProperties, notes);
+ }
+}
+
+// Helper functions
+
+function reconcileTypes(metaSchema, jsonSchemaTypesByType, messages) {
+ const metaSchemaTypesByType = {};
+ metaSchema.types.forEach(type => metaSchemaTypesByType[type.type] = type);
// Find any types in both json schema and meta schema and make sure all json schema properties match
Object.entries(metaSchemaTypesByType).forEach(([type, metaSchemaType]) => {
@@ -114,40 +260,96 @@ export function readAndFixMetaSchemaTypes() {
}
});
- return { messages, types: Object.values(metaSchemaTypesByType) };
+ metaSchema.types = Object.values(metaSchemaTypesByType);
}
-export class MetaSchemaProperty {
- property;
- description;
+function reconcileLanguageImplementations(metaSchema, jsonSchemaTypesByType, messages) {
+ const languageImplementationsByLanguage = {};
+ metaSchema.languageImplementations.forEach(languageImplementation => languageImplementationsByLanguage[languageImplementation.language] = languageImplementation);
- constructor(property, description) {
- this.property = property;
- this.description = description;
- }
+ // Find any types in both json schema and meta schema and make sure all json schema properties match
+ Object.entries(languageImplementationsByLanguage).forEach(([language, languageImplementation]) => {
+ if (!KNOWN_LANGUAGES.includes(language)) {
+ return;
+ }
+ const reconciledTypeSupportStatuses = [];
+ const expectedTypeSupportStatuses = emptyLanguageImplementation(language, metaSchema).typeSupportStatuses;
- toJson() {
- return { property: this.property, description: this.description };
- }
-}
+ // Remove extra types
+ languageImplementation.typeSupportStatuses.forEach(typeSupportStatus => {
+ if (!expectedTypeSupportStatuses.find(item => item.type === typeSupportStatus.type)) {
+ messages.push(`LanguageImplementation ${language} has type ${typeSupportStatus.type} in meta schema and not in JSON schema. Removing.`);
+ return;
+ }
+ reconciledTypeSupportStatuses.push(typeSupportStatus);
+ });
-export class MetaSchemaType {
- type;
- properties;
- isSdkExtensionPlugin;
- // TODO: track language implementation status
+ // Add missing types
+ expectedTypeSupportStatuses.forEach(typeSupportStatus => {
+ if (!reconciledTypeSupportStatuses.find(item => item.type === typeSupportStatus.type)) {
+ messages.push(`LanguageImplementation ${language} is missing type ${typeSupportStatus.type} in meta schema. Adding.`);
+ reconciledTypeSupportStatuses.push(typeSupportStatus);
+ }
+ });
- constructor(type, properties, isSdkExtensionPlugin) {
- this.type = type;
- this.properties = properties;
- this.isSdkExtensionPlugin = isSdkExtensionPlugin;
+ languageImplementation.typeSupportStatuses = reconciledTypeSupportStatuses;
+ });
+
+ // Find and remove any language implementations which are extra
+ Object.keys(languageImplementationsByLanguage).forEach(language => {
+ if (!KNOWN_LANGUAGES.includes(language)) {
+ messages.push(`LanguageImplementation ${language} found in ${metaSchemaFileName} but is not recognized. Removing.`);
+ delete languageImplementationsByLanguage[language];
+ }
+ });
+ // Find and add any language implementations not in missing schema
+ KNOWN_LANGUAGES.forEach(language => {
+ const languageImplementation = languageImplementationsByLanguage[language];
+ if (!languageImplementation) {
+ messages.push(`LanguageImplementation ${language} not found in ${metaSchemaFileName}. Adding.`);
+ languageImplementationsByLanguage[language] = emptyLanguageImplementation(language, metaSchema);
+ }
+ });
+
+ metaSchema.languageImplementations = Object.values(languageImplementationsByLanguage);
+}
+
+function emptyLanguageImplementation(language, metaSchema) {
+ return new LanguageImplementation(
+ language,
+ 'unknown',
+ metaSchema.types.map(metaSchemaType => new TypeSupportStatus(metaSchemaType.type, 'unknown', [], '')));
+}
+
+function parseString(rawJson, propertyName, errorMessage) {
+ const property = rawJson[propertyName];
+ if (typeof property !== 'string') {
+ throw new Error(errorMessage);
}
+ return property;
+}
- toJson() {
- const properties = this.properties.map(property => property.toJson());
- properties.sort((a, b) => a.property.localeCompare(b.property));
+function parseBoolean(rawJson, propertyName, errorMessage) {
+ const property = rawJson[propertyName];
+ if (typeof property !== 'boolean') {
+ throw new Error(errorMessage);
+ }
+ return property;
+}
- return { type: this.type, properties: this.properties, isSdkExtensionPlugin: this.isSdkExtensionPlugin };
+function parseArray(rawJson, propertyName, entryParser, errorMessage, entryErrorFormatter, messages) {
+ const property = rawJson[propertyName];
+ if (!Array.isArray(property)) {
+ throw new Error(errorMessage);
}
+ const entries = [];
+ property.forEach(entry => {
+ try {
+ entries.push(entryParser(entry));
+ } catch (error) {
+ messages.push(entryErrorFormatter(error));
+ }
+ });
+ return entries;
}
From 6aea11fbee5b9f5279b0b2cef4d56d2bfb6ae9ce Mon Sep 17 00:00:00 2001
From: Jack Berg
Date: Wed, 29 Oct 2025 20:16:50 -0500
Subject: [PATCH 2/6] Break out individual files for meta schema language
implementation status
---
CONTRIBUTING.md | 7 +-
schema/meta_schema.yaml | 1469 -------------------------
schema/meta_schema_language_java.yaml | 366 ++++++
schema/meta_schema_types.yaml | 1100 ++++++++++++++++++
scripts/meta-schema.js | 95 +-
scripts/util.js | 10 +-
6 files changed, 1537 insertions(+), 1510 deletions(-)
delete mode 100644 schema/meta_schema.yaml
create mode 100644 schema/meta_schema_language_java.yaml
create mode 100644 schema/meta_schema_types.yaml
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b8527be4..75e39d7f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -249,12 +249,17 @@ make all
## Meta schema
-[meta_schema.yaml](./schema/meta_schema.yaml) tracks schema details that don't fit neatly into the JSON schema including:
+[meta_schema_*.yaml](schema) files track schema details that don't fit neatly into the JSON schema including:
* Property descriptions and semantics
* Track which types are SDK extension plugins
* Implementation support status
+The meta schema is broken across multiple files for improved maintainability:
+
+* [meta_schema_types.yaml](schema/meta_schema_types.yaml) contains property descriptions, semantics, and SDK extension plugin information.
+* `meta_schema_language_{language}.yaml` (e.g. [meta_schema_language_java.yaml](schema/meta_schema_language_java.yaml)) files track language implementation status for a particular language.
+
There are variety of tasks which intersect with the meta schema:
### `make fix-meta-schema`
diff --git a/schema/meta_schema.yaml b/schema/meta_schema.yaml
deleted file mode 100644
index a5004678..00000000
--- a/schema/meta_schema.yaml
+++ /dev/null
@@ -1,1469 +0,0 @@
-types:
- - type: Aggregation
- properties:
- - property: default
- description: TODO
- - property: drop
- description: TODO
- - property: explicit_bucket_histogram
- description: Configure aggregation to be explicit_bucket_histogram.
- - property: base2_exponential_bucket_histogram
- description: TODO
- - property: last_value
- description: TODO
- - property: sum
- description: TODO
- isSdkExtensionPlugin: false
- - type: AlwaysOffSampler
- properties: []
- isSdkExtensionPlugin: false
- - type: AlwaysOnSampler
- properties: []
- isSdkExtensionPlugin: false
- - type: AttributeLimits
- properties:
- - property: attribute_value_length_limit
- description: |
- Configure max attribute value size.
- Value must be non-negative.
- If omitted or null, there is no limit.
- - property: attribute_count_limit
- description: |
- Configure max attribute count.
- Value must be non-negative.
- If omitted or null, 128 is used.
- isSdkExtensionPlugin: false
- - type: AttributeNameValue
- properties:
- - property: name
- description: |
- The attribute name.
- - property: value
- description: |
- The attribute value.
- The type of value must match .type.
- - property: type
- description: |
- The attribute type.
- Values include: string, bool, int, double, string_array, bool_array, int_array, double_array.
- If omitted or null, string is used.
- isSdkExtensionPlugin: false
- - type: AttributeType
- properties: []
- isSdkExtensionPlugin: false
- - type: B3MultiPropagator
- properties: []
- isSdkExtensionPlugin: false
- - type: B3Propagator
- properties: []
- isSdkExtensionPlugin: false
- - type: BaggagePropagator
- properties: []
- isSdkExtensionPlugin: false
- - type: Base2ExponentialBucketHistogramAggregation
- properties:
- - property: max_scale
- description: TODO
- - property: max_size
- description: TODO
- - property: record_min_max
- description: TODO
- isSdkExtensionPlugin: false
- - type: BatchLogRecordProcessor
- properties:
- - property: schedule_delay
- description: |
- Configure delay interval (in milliseconds) between two consecutive exports.
- Value must be non-negative.
- If omitted or null, 1000 is used.
- - property: export_timeout
- description: |
- Configure maximum allowed time (in milliseconds) to export data.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 30000 is used.
- - property: max_queue_size
- description: |
- Configure maximum queue size. Value must be positive.
- If omitted or null, 2048 is used.
- - property: max_export_batch_size
- description: |
- Configure maximum batch size. Value must be positive.
- If omitted or null, 512 is used.
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
- - type: BatchSpanProcessor
- properties:
- - property: schedule_delay
- description: |
- Configure delay interval (in milliseconds) between two consecutive exports.
- Value must be non-negative.
- If omitted or null, 5000 is used.
- - property: export_timeout
- description: |
- Configure maximum allowed time (in milliseconds) to export data.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 30000 is used.
- - property: max_queue_size
- description: |
- Configure maximum queue size. Value must be positive.
- If omitted or null, 2048 is used.
- - property: max_export_batch_size
- description: |
- Configure maximum batch size. Value must be positive.
- If omitted or null, 512 is used.
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
- - type: CardinalityLimits
- properties:
- - property: default
- description: |
- Configure default cardinality limit for all instrument types.
- Instrument-specific cardinality limits take priority.
- If omitted or null, 2000 is used.
- - property: counter
- description: |
- Configure default cardinality limit for counter instruments.
- If omitted or null, the value from .default is used.
- - property: gauge
- description: |
- Configure default cardinality limit for gauge instruments.
- If omitted or null, the value from .default is used.
- - property: histogram
- description: |
- Configure default cardinality limit for histogram instruments.
- If omitted or null, the value from .default is used.
- - property: observable_counter
- description: |
- Configure default cardinality limit for observable_counter instruments.
- If omitted or null, the value from .default is used.
- - property: observable_gauge
- description: |
- Configure default cardinality limit for observable_gauge instruments.
- If omitted or null, the value from .default is used.
- - property: observable_up_down_counter
- description: |
- Configure default cardinality limit for observable_up_down_counter instruments.
- If omitted or null, the value from .default is used.
- - property: up_down_counter
- description: |
- Configure default cardinality limit for up_down_counter instruments.
- If omitted or null, the value from .default is used.
- isSdkExtensionPlugin: false
- - type: ConsoleExporter
- properties: []
- isSdkExtensionPlugin: false
- - type: DefaultAggregation
- properties: []
- isSdkExtensionPlugin: false
- - type: DropAggregation
- properties: []
- isSdkExtensionPlugin: false
- - type: ExemplarFilter
- properties: []
- isSdkExtensionPlugin: false
- - type: ExperimentalContainerResourceDetector
- properties: []
- isSdkExtensionPlugin: false
- - type: ExperimentalGeneralInstrumentation
- properties:
- - property: peer
- description: |
- Configure instrumentations following the peer semantic conventions.
- See peer semantic conventions: https://opentelemetry.io/docs/specs/semconv/attributes-registry/peer/
- - property: http
- description: |
- Configure instrumentations following the http semantic conventions.
- See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
- isSdkExtensionPlugin: false
- - type: ExperimentalHostResourceDetector
- properties: []
- isSdkExtensionPlugin: false
- - type: ExperimentalHttpClientInstrumentation
- properties:
- - property: request_captured_headers
- description: |
- Configure headers to capture for outbound http requests.
- - property: response_captured_headers
- description: |
- Configure headers to capture for inbound http responses.
- isSdkExtensionPlugin: false
- - type: ExperimentalHttpInstrumentation
- properties:
- - property: client
- description: Configure instrumentations following the http client semantic conventions.
- - property: server
- description: Configure instrumentations following the http server semantic conventions.
- isSdkExtensionPlugin: false
- - type: ExperimentalHttpServerInstrumentation
- properties:
- - property: request_captured_headers
- description: |
- Configure headers to capture for inbound http requests.
- - property: response_captured_headers
- description: |
- Configure headers to capture for outbound http responses.
- isSdkExtensionPlugin: false
- - type: ExperimentalInstrumentation
- properties:
- - property: general
- description: |
- Configure general SemConv options that may apply to multiple languages and instrumentations.
- Instrumenation may merge general config options with the language specific configuration at .instrumentation..
- - property: cpp
- description: Configure C++ language-specific instrumentation libraries.
- - property: dotnet
- description: |
- Configure .NET language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: erlang
- description: |
- Configure Erlang language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: go
- description: |
- Configure Go language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: java
- description: |
- Configure Java language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: js
- description: |
- Configure JavaScript language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: php
- description: |
- Configure PHP language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: python
- description: |
- Configure Python language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: ruby
- description: |
- Configure Ruby language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: rust
- description: |
- Configure Rust language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- - property: swift
- description: |
- Configure Swift language-specific instrumentation libraries.
- Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
- isSdkExtensionPlugin: false
- - type: ExperimentalLanguageSpecificInstrumentation
- properties: []
- isSdkExtensionPlugin: false
- - type: ExperimentalLoggerConfig
- properties:
- - property: disabled
- description: Configure if the logger is enabled or not.
- isSdkExtensionPlugin: false
- - type: ExperimentalLoggerConfigurator
- properties:
- - property: default_config
- description: Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers.
- - property: loggers
- description: Configure loggers.
- isSdkExtensionPlugin: false
- - type: ExperimentalLoggerMatcherAndConfig
- properties:
- - property: name
- description: |
- Configure logger names to match, evaluated as follows:
-
- * If the logger name exactly matches.
- * If the logger name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- - property: config
- description: The logger config.
- isSdkExtensionPlugin: false
- - type: ExperimentalMeterConfig
- properties:
- - property: disabled
- description: Configure if the meter is enabled or not.
- isSdkExtensionPlugin: false
- - type: ExperimentalMeterConfigurator
- properties:
- - property: default_config
- description: Configure the default meter config used there is no matching entry in .meter_configurator/development.meters.
- - property: meters
- description: Configure meters.
- isSdkExtensionPlugin: false
- - type: ExperimentalMeterMatcherAndConfig
- properties:
- - property: name
- description: |
- Configure meter names to match, evaluated as follows:
-
- * If the meter name exactly matches.
- * If the meter name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- - property: config
- description: The meter config.
- isSdkExtensionPlugin: false
- - type: ExperimentalOtlpFileExporter
- properties:
- - property: output_stream
- description: |
- Configure output stream.
- Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
- If omitted or null, stdout is used.
- isSdkExtensionPlugin: false
- - type: ExperimentalOtlpFileMetricExporter
- properties:
- - property: output_stream
- description: |
- Configure output stream.
- Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
- If omitted or null, stdout is used.
- - property: temporality_preference
- description: |
- Configure temporality preference.
- Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, cumulative is used.
- - property: default_histogram_aggregation
- description: |
- Configure default histogram aggregation.
- Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, explicit_bucket_histogram is used.
- isSdkExtensionPlugin: false
- - type: ExperimentalPeerInstrumentation
- properties:
- - property: service_mapping
- description: |
- Configure the service mapping for instrumentations following peer.service semantic conventions.
- See peer.service semantic conventions: https://opentelemetry.io/docs/specs/semconv/general/attributes/#general-remote-service-attributes
- isSdkExtensionPlugin: false
- - type: ExperimentalPeerServiceMapping
- properties:
- - property: peer
- description: |
- The IP address to map.
- - property: service
- description: |
- The logical name corresponding to the IP address of .peer.
- isSdkExtensionPlugin: false
- - type: ExperimentalProcessResourceDetector
- properties: []
- isSdkExtensionPlugin: false
- - type: ExperimentalPrometheusMetricExporter
- properties:
- - property: host
- description: |
- Configure host.
- If omitted or null, localhost is used.
- - property: port
- description: |
- Configure port.
- If omitted or null, 9464 is used.
- - property: without_scope_info
- description: |
- Configure Prometheus Exporter to produce metrics without a scope info metric.
- If omitted or null, false is used.
- - property: with_resource_constant_labels
- description: Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns.
- - property: translation_strategy
- description: |
- Configure how Prometheus metrics are exposed. Values include:
-
- * UnderscoreEscapingWithSuffixes, the default. This fully escapes metric names for classic Prometheus metric name compatibility, and includes appending type and unit suffixes.
- * UnderscoreEscapingWithoutSuffixes, metric names will continue to escape special characters to _, but suffixes won't be attached.
- * NoUTF8EscapingWithSuffixes will disable changing special characters to _. Special suffixes like units and _total for counters will be attached.
- * NoTranslation. This strategy bypasses all metric and label name translation, passing them through unaltered.
-
- If omitted or null, UnderscoreEscapingWithSuffixes is used.
- isSdkExtensionPlugin: false
- - type: ExperimentalResourceDetection
- properties:
- - property: attributes
- description: Configure attributes provided by resource detectors.
- - property: detectors
- description: |
- Configure resource detectors.
- Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language.
- If omitted or null, no resource detectors are enabled.
- isSdkExtensionPlugin: false
- - type: ExperimentalResourceDetector
- properties:
- - property: container
- description: |
- Enable the container resource detector, which populates container.* attributes.
- - property: host
- description: |
- Enable the host resource detector, which populates host.* and os.* attributes.
- - property: process
- description: |
- Enable the process resource detector, which populates process.* attributes.
- - property: service
- description: |
- Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id.
- isSdkExtensionPlugin: true
- - type: ExperimentalServiceResourceDetector
- properties: []
- isSdkExtensionPlugin: false
- - type: ExperimentalTracerConfig
- properties:
- - property: disabled
- description: Configure if the tracer is enabled or not.
- isSdkExtensionPlugin: false
- - type: ExperimentalTracerConfigurator
- properties:
- - property: default_config
- description: Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers.
- - property: tracers
- description: Configure tracers.
- isSdkExtensionPlugin: false
- - type: ExperimentalTracerMatcherAndConfig
- properties:
- - property: name
- description: |
- Configure tracer names to match, evaluated as follows:
-
- * If the tracer name exactly matches.
- * If the tracer name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- - property: config
- description: The tracer config.
- isSdkExtensionPlugin: false
- - type: ExplicitBucketHistogramAggregation
- properties:
- - property: boundaries
- description: |
- Configure bucket boundaries.
- If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used.
- - property: record_min_max
- description: |
- Configure record min and max.
- If omitted or null, true is used.
- isSdkExtensionPlugin: false
- - type: ExporterDefaultHistogramAggregation
- properties: []
- isSdkExtensionPlugin: false
- - type: ExporterTemporalityPreference
- properties: []
- isSdkExtensionPlugin: false
- - type: GrpcTls
- properties:
- - property: certificate_file
- description: |
- Configure certificate used to verify a server's TLS credentials.
- Absolute path to certificate file in PEM format.
- If omitted or null, system default certificate verification is used for secure connections.
- - property: client_key_file
- description: |
- Configure mTLS private client key.
- Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
- If omitted or null, mTLS is not used.
- - property: client_certificate_file
- description: |
- Configure mTLS client certificate.
- Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
- If omitted or null, mTLS is not used.
- - property: insecure
- description: |
- Configure client transport security for the exporter's connection.
- Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
- If omitted or null, false is used.
- isSdkExtensionPlugin: false
- - type: HttpTls
- properties:
- - property: certificate_file
- description: |
- Configure certificate used to verify a server's TLS credentials.
- Absolute path to certificate file in PEM format.
- If omitted or null, system default certificate verification is used for secure connections.
- - property: client_key_file
- description: |
- Configure mTLS private client key.
- Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
- If omitted or null, mTLS is not used.
- - property: client_certificate_file
- description: |
- Configure mTLS client certificate.
- Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
- If omitted or null, mTLS is not used.
- isSdkExtensionPlugin: false
- - type: IncludeExclude
- properties:
- - property: included
- description: |
- Configure list of value patterns to include.
- Values are evaluated to match as follows:
- * If the value exactly matches.
- * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- If omitted, all values are included.
- - property: excluded
- description: |
- Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).
- Values are evaluated to match as follows:
- * If the value exactly matches.
- * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
- If omitted, .included attributes are included.
- isSdkExtensionPlugin: false
- - type: InstrumentType
- properties: []
- isSdkExtensionPlugin: false
- - type: JaegerPropagator
- properties: []
- isSdkExtensionPlugin: false
- - type: JaegerRemoteSampler
- properties:
- - property: endpoint
- description: TODO
- - property: interval
- description: TODO
- - property: initial_sampler
- description: TODO
- isSdkExtensionPlugin: false
- - type: LastValueAggregation
- properties: []
- isSdkExtensionPlugin: false
- - type: LoggerProvider
- properties:
- - property: processors
- description: Configure log record processors.
- - property: limits
- description: Configure log record limits. See also attribute_limits.
- - property: logger_configurator/development
- description: |
- Configure loggers.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
- - type: LogRecordExporter
- properties:
- - property: otlp_http
- description: Configure exporter to be OTLP with HTTP transport.
- - property: otlp_grpc
- description: Configure exporter to be OTLP with gRPC transport.
- - property: otlp_file/development
- description: |
- Configure exporter to be OTLP with file transport.
- This type is in development and subject to breaking changes in minor versions.
- - property: console
- description: Configure exporter to be console.
- isSdkExtensionPlugin: true
- - type: LogRecordLimits
- properties:
- - property: attribute_value_length_limit
- description: |
- Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
- Value must be non-negative.
- If omitted or null, there is no limit.
- - property: attribute_count_limit
- description: |
- Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
- Value must be non-negative.
- If omitted or null, 128 is used.
- isSdkExtensionPlugin: false
- - type: LogRecordProcessor
- properties:
- - property: batch
- description: Configure a batch log record processor.
- - property: simple
- description: Configure a simple log record processor.
- isSdkExtensionPlugin: true
- - type: MeterProvider
- properties:
- - property: readers
- description: Configure metric readers.
- - property: views
- description: |
- Configure views.
- Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s).
- - property: exemplar_filter
- description: |
- Configure the exemplar filter.
- Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration.
- If omitted or null, trace_based is used.
- - property: meter_configurator/development
- description: |
- Configure meters.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
- - type: MetricProducer
- properties:
- - property: opencensus
- description: Configure metric producer to be opencensus.
- isSdkExtensionPlugin: true
- - type: MetricReader
- properties:
- - property: periodic
- description: Configure a periodic metric reader.
- - property: pull
- description: Configure a pull based metric reader.
- isSdkExtensionPlugin: false
- - type: NameStringValuePair
- properties:
- - property: name
- description: The name of the pair.
- - property: value
- description: The value of the pair.
- isSdkExtensionPlugin: false
- - type: OpenCensusMetricProducer
- properties: []
- isSdkExtensionPlugin: false
- - type: OpentelemetryConfiguration
- properties:
- - property: file_format
- description: |
- The file format version.
- The yaml format is documented at
- https://github.com/open-telemetry/opentelemetry-configuration/tree/main/schema
- - property: disabled
- description: |
- Configure if the SDK is disabled or not.
- If omitted or null, false is used.
- - property: log_level
- description: |
- Configure the log level of the internal logger used by the SDK.
- If omitted, info is used.
- - property: attribute_limits
- description: |
- Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.
- - property: logger_provider
- description: |
- Configure logger provider.
- If omitted, a noop logger provider is used.
- - property: meter_provider
- description: |
- Configure meter provider.
- If omitted, a noop meter provider is used.
- - property: propagator
- description: |
- Configure text map context propagators.
- If omitted, a noop propagator is used.
- - property: tracer_provider
- description: |
- Configure tracer provider.
- If omitted, a noop tracer provider is used.
- - property: resource
- description: |
- Configure resource for all signals.
- If omitted, the default resource is used.
- - property: instrumentation/development
- description: |
- Configure instrumentation.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
- - type: OpenTracingPropagator
- properties: []
- isSdkExtensionPlugin: false
- - type: OtlpGrpcExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:4317 is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
- - type: OtlpGrpcMetricExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:4317 is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: temporality_preference
- description: |
- Configure temporality preference.
- Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, cumulative is used.
- - property: default_histogram_aggregation
- description: |
- Configure default histogram aggregation.
- Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, explicit_bucket_histogram is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
- - type: OtlpHttpEncoding
- properties: []
- isSdkExtensionPlugin: false
- - type: OtlpHttpExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint, including the signal specific path.
- If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: encoding
- description: |
- Configure the encoding used for messages.
- Values include: protobuf, json. Implementations may not support json.
- If omitted or null, protobuf is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
- - type: OtlpHttpMetricExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint, including the signal specific path.
- If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:4317 is used.
- - property: headers
- description: |
- Configure headers. Entries have higher priority than entries from .headers_list.
- If an entry's .value is null, the entry is ignored.
- - property: headers_list
- description: |
- Configure headers. Entries have lower priority than entries from .headers.
- The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
- If omitted or null, no headers are added.
- - property: compression
- description: |
- Configure compression.
- Values include: gzip, none. Implementations may support other compression algorithms.
- If omitted or null, none is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 10000 is used.
- - property: encoding
- description: |
- Configure the encoding used for messages.
- Values include: protobuf, json. Implementations may not support json.
- If omitted or null, protobuf is used.
- - property: temporality_preference
- description: |
- Configure temporality preference.
- Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, cumulative is used.
- - property: default_histogram_aggregation
- description: |
- Configure default histogram aggregation.
- Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
- If omitted or null, explicit_bucket_histogram is used.
- - property: tls
- description: Configure TLS settings for the exporter.
- isSdkExtensionPlugin: false
- - type: ParentBasedSampler
- properties:
- - property: root
- description: |
- Configure root sampler.
- If omitted or null, always_on is used.
- - property: remote_parent_sampled
- description: |
- Configure remote_parent_sampled sampler.
- If omitted or null, always_on is used.
- - property: remote_parent_not_sampled
- description: |
- Configure remote_parent_not_sampled sampler.
- If omitted or null, always_off is used.
- - property: local_parent_sampled
- description: |
- Configure local_parent_sampled sampler.
- If omitted or null, always_on is used.
- - property: local_parent_not_sampled
- description: |
- Configure local_parent_not_sampled sampler.
- If omitted or null, always_off is used.
- isSdkExtensionPlugin: false
- - type: PeriodicMetricReader
- properties:
- - property: interval
- description: |
- Configure delay interval (in milliseconds) between start of two consecutive exports.
- Value must be non-negative.
- If omitted or null, 60000 is used.
- - property: timeout
- description: |
- Configure maximum allowed time (in milliseconds) to export data.
- Value must be non-negative. A value of 0 indicates no limit (infinity).
- If omitted or null, 30000 is used.
- - property: exporter
- description: Configure exporter.
- - property: producers
- description: Configure metric producers.
- - property: cardinality_limits
- description: Configure cardinality limits.
- isSdkExtensionPlugin: false
- - type: Propagator
- properties:
- - property: composite
- description: |
- Configure the propagators in the composite text map propagator. Entries from .composite_list are appended to the list here with duplicates filtered out.
- Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray.
- If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
- - property: composite_list
- description: |
- Configure the propagators in the composite text map propagator. Entries are appended to .composite with duplicates filtered out.
- The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
- Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray.
- If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
- isSdkExtensionPlugin: false
- - type: PullMetricExporter
- properties:
- - property: prometheus/development
- description: |
- Configure exporter to be prometheus.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: true
- - type: PullMetricReader
- properties:
- - property: exporter
- description: Configure exporter.
- - property: producers
- description: Configure metric producers.
- - property: cardinality_limits
- description: Configure cardinality limits.
- isSdkExtensionPlugin: false
- - type: PushMetricExporter
- properties:
- - property: otlp_http
- description: |
- Configure exporter to be OTLP with HTTP transport.
- - property: otlp_grpc
- description: |
- Configure exporter to be OTLP with gRPC transport.
- - property: otlp_file/development
- description: |
- Configure exporter to be OTLP with file transport.
- This type is in development and subject to breaking changes in minor versions.
- - property: console
- description: |
- Configure exporter to be console.
- isSdkExtensionPlugin: true
- - type: Resource
- properties:
- - property: attributes
- description: |
- Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list.
- - property: detection/development
- description: |
- Configure resource detection.
- This type is in development and subject to breaking changes in minor versions.
- If omitted or null, resource detection is disabled.
- - property: schema_url
- description: |
- Configure resource schema URL.
- If omitted or null, no schema URL is used.
- - property: attributes_list
- description: |
- Configure resource attributes. Entries have lower priority than entries from .resource.attributes.
- The value is a list of comma separated key-value pairs matching the format of OTEL_RESOURCE_ATTRIBUTES. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
- If omitted or null, no resource attributes are added.
- isSdkExtensionPlugin: false
- - type: Sampler
- properties:
- - property: always_off
- description: Configure sampler to be always_off.
- - property: always_on
- description: Configure sampler to be always_on.
- - property: jaeger_remote
- description: TODO
- - property: parent_based
- description: Configure sampler to be parent_based.
- - property: trace_id_ratio_based
- description: Configure sampler to be trace_id_ratio_based.
- isSdkExtensionPlugin: true
- - type: SimpleLogRecordProcessor
- properties:
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
- - type: SimpleSpanProcessor
- properties:
- - property: exporter
- description: Configure exporter.
- isSdkExtensionPlugin: false
- - type: SpanExporter
- properties:
- - property: otlp_http
- description: Configure exporter to be OTLP with HTTP transport.
- - property: otlp_grpc
- description: Configure exporter to be OTLP with gRPC transport.
- - property: otlp_file/development
- description: |
- Configure exporter to be OTLP with file transport.
- This type is in development and subject to breaking changes in minor versions.
- - property: console
- description: Configure exporter to be console.
- - property: zipkin
- description: Configure exporter to be zipkin.
- isSdkExtensionPlugin: true
- - type: SpanLimits
- properties:
- - property: attribute_value_length_limit
- description: |
- Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
- Value must be non-negative.
- If omitted or null, there is no limit.
- - property: attribute_count_limit
- description: |
- Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: event_count_limit
- description: |
- Configure max span event count.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: link_count_limit
- description: |
- Configure max span link count.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: event_attribute_count_limit
- description: |
- Configure max attributes per span event.
- Value must be non-negative.
- If omitted or null, 128 is used.
- - property: link_attribute_count_limit
- description: |
- Configure max attributes per span link.
- Value must be non-negative.
- If omitted or null, 128 is used.
- isSdkExtensionPlugin: false
- - type: SpanProcessor
- properties:
- - property: batch
- description: Configure a batch span processor.
- - property: simple
- description: Configure a simple span processor.
- isSdkExtensionPlugin: true
- - type: SumAggregation
- properties: []
- isSdkExtensionPlugin: false
- - type: TextMapPropagator
- properties:
- - property: tracecontext
- description: Include the w3c trace context propagator.
- - property: baggage
- description: Include the w3c baggage propagator.
- - property: b3
- description: Include the zipkin b3 propagator.
- - property: b3multi
- description: Include the zipkin b3 multi propagator.
- - property: jaeger
- description: Include the jaeger propagator.
- - property: ottrace
- description: Include the opentracing propagator.
- isSdkExtensionPlugin: true
- - type: TraceContextPropagator
- properties: []
- isSdkExtensionPlugin: false
- - type: TraceIdRatioBasedSampler
- properties:
- - property: ratio
- description: |
- Configure trace_id_ratio.
- If omitted or null, 1.0 is used.
- isSdkExtensionPlugin: false
- - type: TracerProvider
- properties:
- - property: processors
- description: Configure span processors.
- - property: limits
- description: Configure span limits. See also attribute_limits.
- - property: sampler
- description: |
- Configure the sampler.
- If omitted, parent based sampler with a root of always_on is used.
- - property: tracer_configurator/development
- description: |
- Configure tracers.
- This type is in development and subject to breaking changes in minor versions.
- isSdkExtensionPlugin: false
- - type: View
- properties:
- - property: selector
- description: |
- Configure view selector.
- Selection criteria is additive as described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#instrument-selection-criteria.
- - property: stream
- description: Configure view stream.
- isSdkExtensionPlugin: false
- - type: ViewSelector
- properties:
- - property: instrument_name
- description: |
- Configure instrument name selection criteria.
- If omitted or null, all instrument names match.
- - property: instrument_type
- description: |
- Configure instrument type selection criteria.
- Values include: counter, gauge, histogram, observable_counter, observable_gauge, observable_up_down_counter, up_down_counter.
- If omitted or null, all instrument types match.
- - property: unit
- description: |
- Configure the instrument unit selection criteria.
- If omitted or null, all instrument units match.
- - property: meter_name
- description: |
- Configure meter name selection criteria.
- If omitted or null, all meter names match.
- - property: meter_version
- description: |
- Configure meter version selection criteria.
- If omitted or null, all meter versions match.
- - property: meter_schema_url
- description: |
- Configure meter schema url selection criteria.
- If omitted or null, all meter schema URLs match.
- isSdkExtensionPlugin: false
- - type: ViewStream
- properties:
- - property: name
- description: |
- Configure metric name of the resulting stream(s).
- If omitted or null, the instrument's original name is used.
- - property: description
- description: |
- Configure metric description of the resulting stream(s).
- If omitted or null, the instrument's origin description is used.
- - property: aggregation
- description: |
- Configure aggregation of the resulting stream(s).
- Values include: default, drop, explicit_bucket_histogram, base2_exponential_bucket_histogram, last_value, sum. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#aggregation.
- If omitted, default is used.
- - property: aggregation_cardinality_limit
- description: |
- Configure the aggregation cardinality limit.
- If omitted or null, the metric reader's default cardinality limit is used.
- - property: attribute_keys
- description: |
- Configure attribute keys retained in the resulting stream(s).
- isSdkExtensionPlugin: false
- - type: ZipkinSpanExporter
- properties:
- - property: endpoint
- description: |
- Configure endpoint.
- If omitted or null, http://localhost:9411/api/v2/spans is used.
- - property: timeout
- description: |
- Configure max time (in milliseconds) to wait for each export.
- Value must be non-negative. A value of 0 indicates indefinite.
- If omitted or null, 10000 is used.
- isSdkExtensionPlugin: false
-languageImplementations:
- - language: java
- latestSupportedFileFormat: 1.0.0-rc.1
- typeSupportStatuses:
- - type: Aggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: AlwaysOffSampler
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: AlwaysOnSampler
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: AttributeLimits
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: AttributeNameValue
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: AttributeType
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: B3MultiPropagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: B3Propagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: BaggagePropagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: Base2ExponentialBucketHistogramAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: BatchLogRecordProcessor
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: BatchSpanProcessor
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: CardinalityLimits
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ConsoleExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: DefaultAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: DropAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExemplarFilter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalContainerResourceDetector
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalGeneralInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalHostResourceDetector
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalHttpClientInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalHttpInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalHttpServerInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalLanguageSpecificInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalLoggerConfig
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalLoggerConfigurator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalLoggerMatcherAndConfig
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalMeterConfig
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalMeterConfigurator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalMeterMatcherAndConfig
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalOtlpFileExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalOtlpFileMetricExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalPeerInstrumentation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalPeerServiceMapping
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalProcessResourceDetector
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalPrometheusMetricExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalResourceDetection
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalResourceDetector
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalServiceResourceDetector
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalTracerConfig
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalTracerConfigurator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExperimentalTracerMatcherAndConfig
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExplicitBucketHistogramAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExporterDefaultHistogramAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ExporterTemporalityPreference
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: GrpcTls
- status: unknown
- unsupportedProperties: []
- notes: ""
- - type: HttpTls
- status: unknown
- unsupportedProperties: []
- notes: ""
- - type: IncludeExclude
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: InstrumentType
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: JaegerPropagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: JaegerRemoteSampler
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: LastValueAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: LoggerProvider
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: LogRecordExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: LogRecordLimits
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: LogRecordProcessor
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: MeterProvider
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: MetricProducer
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: MetricReader
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: NameStringValuePair
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OpenCensusMetricProducer
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OpentelemetryConfiguration
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OpenTracingPropagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OtlpGrpcExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OtlpGrpcMetricExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OtlpHttpEncoding
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OtlpHttpExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: OtlpHttpMetricExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ParentBasedSampler
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: PeriodicMetricReader
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: Propagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: PullMetricExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: PullMetricReader
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: PushMetricExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: Resource
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: Sampler
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: SimpleLogRecordProcessor
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: SimpleSpanProcessor
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: SpanExporter
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: SpanLimits
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: SpanProcessor
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: SumAggregation
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: TextMapPropagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: TraceContextPropagator
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: TraceIdRatioBasedSampler
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: TracerProvider
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: View
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ViewSelector
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ViewStream
- status: supported
- unsupportedProperties: []
- notes: ""
- - type: ZipkinSpanExporter
- status: supported
- unsupportedProperties: []
- notes: ""
diff --git a/schema/meta_schema_language_java.yaml b/schema/meta_schema_language_java.yaml
new file mode 100644
index 00000000..82bff907
--- /dev/null
+++ b/schema/meta_schema_language_java.yaml
@@ -0,0 +1,366 @@
+latestSupportedFileFormat: 1.0.0-rc.1
+typeSupportStatuses:
+ - type: Aggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AlwaysOffSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AlwaysOnSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AttributeLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AttributeNameValue
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: AttributeType
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: B3MultiPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: B3Propagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: BaggagePropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Base2ExponentialBucketHistogramAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: BatchLogRecordProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: BatchSpanProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: CardinalityLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ConsoleExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: DefaultAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: DropAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExemplarFilter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalContainerResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalGeneralInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHostResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHttpClientInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHttpInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalHttpServerInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLanguageSpecificInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLoggerConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLoggerConfigurator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalLoggerMatcherAndConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalMeterConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalMeterConfigurator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalMeterMatcherAndConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalOtlpFileExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalOtlpFileMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalPeerInstrumentation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalPeerServiceMapping
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalProcessResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalPrometheusMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalResourceDetection
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalServiceResourceDetector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalTracerConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalTracerConfigurator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExperimentalTracerMatcherAndConfig
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExplicitBucketHistogramAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExporterDefaultHistogramAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ExporterTemporalityPreference
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: GrpcTls
+ status: unknown
+ unsupportedProperties: []
+ notes: ""
+ - type: HttpTls
+ status: unknown
+ unsupportedProperties: []
+ notes: ""
+ - type: IncludeExclude
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: InstrumentType
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: JaegerPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: JaegerRemoteSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LastValueAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LoggerProvider
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LogRecordExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LogRecordLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: LogRecordProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: MeterProvider
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: MetricProducer
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: MetricReader
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: NameStringValuePair
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OpenCensusMetricProducer
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OpentelemetryConfiguration
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OpenTracingPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpGrpcExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpGrpcMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpHttpEncoding
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpHttpExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: OtlpHttpMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ParentBasedSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PeriodicMetricReader
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Propagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PullMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PullMetricReader
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: PushMetricExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Resource
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: Sampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SimpleLogRecordProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SimpleSpanProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SpanExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SpanLimits
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SpanProcessor
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: SumAggregation
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TextMapPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TraceContextPropagator
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TraceIdRatioBasedSampler
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: TracerProvider
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: View
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ViewSelector
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ViewStream
+ status: supported
+ unsupportedProperties: []
+ notes: ""
+ - type: ZipkinSpanExporter
+ status: supported
+ unsupportedProperties: []
+ notes: ""
diff --git a/schema/meta_schema_types.yaml b/schema/meta_schema_types.yaml
new file mode 100644
index 00000000..ae9f291b
--- /dev/null
+++ b/schema/meta_schema_types.yaml
@@ -0,0 +1,1100 @@
+- type: Aggregation
+ properties:
+ - property: default
+ description: TODO
+ - property: drop
+ description: TODO
+ - property: explicit_bucket_histogram
+ description: Configure aggregation to be explicit_bucket_histogram.
+ - property: base2_exponential_bucket_histogram
+ description: TODO
+ - property: last_value
+ description: TODO
+ - property: sum
+ description: TODO
+ isSdkExtensionPlugin: false
+- type: AlwaysOffSampler
+ properties: []
+ isSdkExtensionPlugin: false
+- type: AlwaysOnSampler
+ properties: []
+ isSdkExtensionPlugin: false
+- type: AttributeLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+ - property: attribute_count_limit
+ description: |
+ Configure max attribute count.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ isSdkExtensionPlugin: false
+- type: AttributeNameValue
+ properties:
+ - property: name
+ description: |
+ The attribute name.
+ - property: value
+ description: |
+ The attribute value.
+ The type of value must match .type.
+ - property: type
+ description: |
+ The attribute type.
+ Values include: string, bool, int, double, string_array, bool_array, int_array, double_array.
+ If omitted or null, string is used.
+ isSdkExtensionPlugin: false
+- type: AttributeType
+ properties: []
+ isSdkExtensionPlugin: false
+- type: B3MultiPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+- type: B3Propagator
+ properties: []
+ isSdkExtensionPlugin: false
+- type: BaggagePropagator
+ properties: []
+ isSdkExtensionPlugin: false
+- type: Base2ExponentialBucketHistogramAggregation
+ properties:
+ - property: max_scale
+ description: TODO
+ - property: max_size
+ description: TODO
+ - property: record_min_max
+ description: TODO
+ isSdkExtensionPlugin: false
+- type: BatchLogRecordProcessor
+ properties:
+ - property: schedule_delay
+ description: |
+ Configure delay interval (in milliseconds) between two consecutive exports.
+ Value must be non-negative.
+ If omitted or null, 1000 is used.
+ - property: export_timeout
+ description: |
+ Configure maximum allowed time (in milliseconds) to export data.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 30000 is used.
+ - property: max_queue_size
+ description: |
+ Configure maximum queue size. Value must be positive.
+ If omitted or null, 2048 is used.
+ - property: max_export_batch_size
+ description: |
+ Configure maximum batch size. Value must be positive.
+ If omitted or null, 512 is used.
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+- type: BatchSpanProcessor
+ properties:
+ - property: schedule_delay
+ description: |
+ Configure delay interval (in milliseconds) between two consecutive exports.
+ Value must be non-negative.
+ If omitted or null, 5000 is used.
+ - property: export_timeout
+ description: |
+ Configure maximum allowed time (in milliseconds) to export data.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 30000 is used.
+ - property: max_queue_size
+ description: |
+ Configure maximum queue size. Value must be positive.
+ If omitted or null, 2048 is used.
+ - property: max_export_batch_size
+ description: |
+ Configure maximum batch size. Value must be positive.
+ If omitted or null, 512 is used.
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+- type: CardinalityLimits
+ properties:
+ - property: default
+ description: |
+ Configure default cardinality limit for all instrument types.
+ Instrument-specific cardinality limits take priority.
+ If omitted or null, 2000 is used.
+ - property: counter
+ description: |
+ Configure default cardinality limit for counter instruments.
+ If omitted or null, the value from .default is used.
+ - property: gauge
+ description: |
+ Configure default cardinality limit for gauge instruments.
+ If omitted or null, the value from .default is used.
+ - property: histogram
+ description: |
+ Configure default cardinality limit for histogram instruments.
+ If omitted or null, the value from .default is used.
+ - property: observable_counter
+ description: |
+ Configure default cardinality limit for observable_counter instruments.
+ If omitted or null, the value from .default is used.
+ - property: observable_gauge
+ description: |
+ Configure default cardinality limit for observable_gauge instruments.
+ If omitted or null, the value from .default is used.
+ - property: observable_up_down_counter
+ description: |
+ Configure default cardinality limit for observable_up_down_counter instruments.
+ If omitted or null, the value from .default is used.
+ - property: up_down_counter
+ description: |
+ Configure default cardinality limit for up_down_counter instruments.
+ If omitted or null, the value from .default is used.
+ isSdkExtensionPlugin: false
+- type: ConsoleExporter
+ properties: []
+ isSdkExtensionPlugin: false
+- type: DefaultAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+- type: DropAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExemplarFilter
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExperimentalContainerResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExperimentalGeneralInstrumentation
+ properties:
+ - property: peer
+ description: |
+ Configure instrumentations following the peer semantic conventions.
+ See peer semantic conventions: https://opentelemetry.io/docs/specs/semconv/attributes-registry/peer/
+ - property: http
+ description: |
+ Configure instrumentations following the http semantic conventions.
+ See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/
+ isSdkExtensionPlugin: false
+- type: ExperimentalHostResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExperimentalHttpClientInstrumentation
+ properties:
+ - property: request_captured_headers
+ description: |
+ Configure headers to capture for outbound http requests.
+ - property: response_captured_headers
+ description: |
+ Configure headers to capture for inbound http responses.
+ isSdkExtensionPlugin: false
+- type: ExperimentalHttpInstrumentation
+ properties:
+ - property: client
+ description: Configure instrumentations following the http client semantic conventions.
+ - property: server
+ description: Configure instrumentations following the http server semantic conventions.
+ isSdkExtensionPlugin: false
+- type: ExperimentalHttpServerInstrumentation
+ properties:
+ - property: request_captured_headers
+ description: |
+ Configure headers to capture for inbound http requests.
+ - property: response_captured_headers
+ description: |
+ Configure headers to capture for outbound http responses.
+ isSdkExtensionPlugin: false
+- type: ExperimentalInstrumentation
+ properties:
+ - property: general
+ description: |
+ Configure general SemConv options that may apply to multiple languages and instrumentations.
+ Instrumenation may merge general config options with the language specific configuration at .instrumentation..
+ - property: cpp
+ description: Configure C++ language-specific instrumentation libraries.
+ - property: dotnet
+ description: |
+ Configure .NET language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: erlang
+ description: |
+ Configure Erlang language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: go
+ description: |
+ Configure Go language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: java
+ description: |
+ Configure Java language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: js
+ description: |
+ Configure JavaScript language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: php
+ description: |
+ Configure PHP language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: python
+ description: |
+ Configure Python language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: ruby
+ description: |
+ Configure Ruby language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: rust
+ description: |
+ Configure Rust language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ - property: swift
+ description: |
+ Configure Swift language-specific instrumentation libraries.
+ Each entry's key identifies a particular instrumentation library. The corresponding value configures it.
+ isSdkExtensionPlugin: false
+- type: ExperimentalLanguageSpecificInstrumentation
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExperimentalLoggerConfig
+ properties:
+ - property: disabled
+ description: Configure if the logger is enabled or not.
+ isSdkExtensionPlugin: false
+- type: ExperimentalLoggerConfigurator
+ properties:
+ - property: default_config
+ description: Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers.
+ - property: loggers
+ description: Configure loggers.
+ isSdkExtensionPlugin: false
+- type: ExperimentalLoggerMatcherAndConfig
+ properties:
+ - property: name
+ description: |
+ Configure logger names to match, evaluated as follows:
+
+ * If the logger name exactly matches.
+ * If the logger name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ - property: config
+ description: The logger config.
+ isSdkExtensionPlugin: false
+- type: ExperimentalMeterConfig
+ properties:
+ - property: disabled
+ description: Configure if the meter is enabled or not.
+ isSdkExtensionPlugin: false
+- type: ExperimentalMeterConfigurator
+ properties:
+ - property: default_config
+ description: Configure the default meter config used there is no matching entry in .meter_configurator/development.meters.
+ - property: meters
+ description: Configure meters.
+ isSdkExtensionPlugin: false
+- type: ExperimentalMeterMatcherAndConfig
+ properties:
+ - property: name
+ description: |
+ Configure meter names to match, evaluated as follows:
+
+ * If the meter name exactly matches.
+ * If the meter name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ - property: config
+ description: The meter config.
+ isSdkExtensionPlugin: false
+- type: ExperimentalOtlpFileExporter
+ properties:
+ - property: output_stream
+ description: |
+ Configure output stream.
+ Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
+ If omitted or null, stdout is used.
+ isSdkExtensionPlugin: false
+- type: ExperimentalOtlpFileMetricExporter
+ properties:
+ - property: output_stream
+ description: |
+ Configure output stream.
+ Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.
+ If omitted or null, stdout is used.
+ - property: temporality_preference
+ description: |
+ Configure temporality preference.
+ Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, cumulative is used.
+ - property: default_histogram_aggregation
+ description: |
+ Configure default histogram aggregation.
+ Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, explicit_bucket_histogram is used.
+ isSdkExtensionPlugin: false
+- type: ExperimentalPeerInstrumentation
+ properties:
+ - property: service_mapping
+ description: |
+ Configure the service mapping for instrumentations following peer.service semantic conventions.
+ See peer.service semantic conventions: https://opentelemetry.io/docs/specs/semconv/general/attributes/#general-remote-service-attributes
+ isSdkExtensionPlugin: false
+- type: ExperimentalPeerServiceMapping
+ properties:
+ - property: peer
+ description: |
+ The IP address to map.
+ - property: service
+ description: |
+ The logical name corresponding to the IP address of .peer.
+ isSdkExtensionPlugin: false
+- type: ExperimentalProcessResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExperimentalPrometheusMetricExporter
+ properties:
+ - property: host
+ description: |
+ Configure host.
+ If omitted or null, localhost is used.
+ - property: port
+ description: |
+ Configure port.
+ If omitted or null, 9464 is used.
+ - property: without_scope_info
+ description: |
+ Configure Prometheus Exporter to produce metrics without a scope info metric.
+ If omitted or null, false is used.
+ - property: with_resource_constant_labels
+ description: Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns.
+ - property: translation_strategy
+ description: |
+ Configure how Prometheus metrics are exposed. Values include:
+
+ * UnderscoreEscapingWithSuffixes, the default. This fully escapes metric names for classic Prometheus metric name compatibility, and includes appending type and unit suffixes.
+ * UnderscoreEscapingWithoutSuffixes, metric names will continue to escape special characters to _, but suffixes won't be attached.
+ * NoUTF8EscapingWithSuffixes will disable changing special characters to _. Special suffixes like units and _total for counters will be attached.
+ * NoTranslation. This strategy bypasses all metric and label name translation, passing them through unaltered.
+
+ If omitted or null, UnderscoreEscapingWithSuffixes is used.
+ isSdkExtensionPlugin: false
+- type: ExperimentalResourceDetection
+ properties:
+ - property: attributes
+ description: Configure attributes provided by resource detectors.
+ - property: detectors
+ description: |
+ Configure resource detectors.
+ Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language.
+ If omitted or null, no resource detectors are enabled.
+ isSdkExtensionPlugin: false
+- type: ExperimentalResourceDetector
+ properties:
+ - property: container
+ description: |
+ Enable the container resource detector, which populates container.* attributes.
+ - property: host
+ description: |
+ Enable the host resource detector, which populates host.* and os.* attributes.
+ - property: process
+ description: |
+ Enable the process resource detector, which populates process.* attributes.
+ - property: service
+ description: |
+ Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id.
+ isSdkExtensionPlugin: true
+- type: ExperimentalServiceResourceDetector
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExperimentalTracerConfig
+ properties:
+ - property: disabled
+ description: Configure if the tracer is enabled or not.
+ isSdkExtensionPlugin: false
+- type: ExperimentalTracerConfigurator
+ properties:
+ - property: default_config
+ description: Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers.
+ - property: tracers
+ description: Configure tracers.
+ isSdkExtensionPlugin: false
+- type: ExperimentalTracerMatcherAndConfig
+ properties:
+ - property: name
+ description: |
+ Configure tracer names to match, evaluated as follows:
+
+ * If the tracer name exactly matches.
+ * If the tracer name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ - property: config
+ description: The tracer config.
+ isSdkExtensionPlugin: false
+- type: ExplicitBucketHistogramAggregation
+ properties:
+ - property: boundaries
+ description: |
+ Configure bucket boundaries.
+ If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used.
+ - property: record_min_max
+ description: |
+ Configure record min and max.
+ If omitted or null, true is used.
+ isSdkExtensionPlugin: false
+- type: ExporterDefaultHistogramAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+- type: ExporterTemporalityPreference
+ properties: []
+ isSdkExtensionPlugin: false
+- type: GrpcTls
+ properties:
+ - property: certificate_file
+ description: |
+ Configure certificate used to verify a server's TLS credentials.
+ Absolute path to certificate file in PEM format.
+ If omitted or null, system default certificate verification is used for secure connections.
+ - property: client_key_file
+ description: |
+ Configure mTLS private client key.
+ Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
+ If omitted or null, mTLS is not used.
+ - property: client_certificate_file
+ description: |
+ Configure mTLS client certificate.
+ Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
+ If omitted or null, mTLS is not used.
+ - property: insecure
+ description: |
+ Configure client transport security for the exporter's connection.
+ Only applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.
+ If omitted or null, false is used.
+ isSdkExtensionPlugin: false
+- type: HttpTls
+ properties:
+ - property: certificate_file
+ description: |
+ Configure certificate used to verify a server's TLS credentials.
+ Absolute path to certificate file in PEM format.
+ If omitted or null, system default certificate verification is used for secure connections.
+ - property: client_key_file
+ description: |
+ Configure mTLS private client key.
+ Absolute path to client key file in PEM format. If set, .client_certificate must also be set.
+ If omitted or null, mTLS is not used.
+ - property: client_certificate_file
+ description: |
+ Configure mTLS client certificate.
+ Absolute path to client certificate file in PEM format. If set, .client_key must also be set.
+ If omitted or null, mTLS is not used.
+ isSdkExtensionPlugin: false
+- type: IncludeExclude
+ properties:
+ - property: included
+ description: |
+ Configure list of value patterns to include.
+ Values are evaluated to match as follows:
+ * If the value exactly matches.
+ * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ If omitted, all values are included.
+ - property: excluded
+ description: |
+ Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).
+ Values are evaluated to match as follows:
+ * If the value exactly matches.
+ * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.
+ If omitted, .included attributes are included.
+ isSdkExtensionPlugin: false
+- type: InstrumentType
+ properties: []
+ isSdkExtensionPlugin: false
+- type: JaegerPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+- type: JaegerRemoteSampler
+ properties:
+ - property: endpoint
+ description: TODO
+ - property: interval
+ description: TODO
+ - property: initial_sampler
+ description: TODO
+ isSdkExtensionPlugin: false
+- type: LastValueAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+- type: LoggerProvider
+ properties:
+ - property: processors
+ description: Configure log record processors.
+ - property: limits
+ description: Configure log record limits. See also attribute_limits.
+ - property: logger_configurator/development
+ description: |
+ Configure loggers.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+- type: LogRecordExporter
+ properties:
+ - property: otlp_http
+ description: Configure exporter to be OTLP with HTTP transport.
+ - property: otlp_grpc
+ description: Configure exporter to be OTLP with gRPC transport.
+ - property: otlp_file/development
+ description: |
+ Configure exporter to be OTLP with file transport.
+ This type is in development and subject to breaking changes in minor versions.
+ - property: console
+ description: Configure exporter to be console.
+ isSdkExtensionPlugin: true
+- type: LogRecordLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+ - property: attribute_count_limit
+ description: |
+ Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ isSdkExtensionPlugin: false
+- type: LogRecordProcessor
+ properties:
+ - property: batch
+ description: Configure a batch log record processor.
+ - property: simple
+ description: Configure a simple log record processor.
+ isSdkExtensionPlugin: true
+- type: MeterProvider
+ properties:
+ - property: readers
+ description: Configure metric readers.
+ - property: views
+ description: |
+ Configure views.
+ Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s).
+ - property: exemplar_filter
+ description: |
+ Configure the exemplar filter.
+ Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration.
+ If omitted or null, trace_based is used.
+ - property: meter_configurator/development
+ description: |
+ Configure meters.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+- type: MetricProducer
+ properties:
+ - property: opencensus
+ description: Configure metric producer to be opencensus.
+ isSdkExtensionPlugin: true
+- type: MetricReader
+ properties:
+ - property: periodic
+ description: Configure a periodic metric reader.
+ - property: pull
+ description: Configure a pull based metric reader.
+ isSdkExtensionPlugin: false
+- type: NameStringValuePair
+ properties:
+ - property: name
+ description: The name of the pair.
+ - property: value
+ description: The value of the pair.
+ isSdkExtensionPlugin: false
+- type: OpenCensusMetricProducer
+ properties: []
+ isSdkExtensionPlugin: false
+- type: OpentelemetryConfiguration
+ properties:
+ - property: file_format
+ description: |
+ The file format version.
+ The yaml format is documented at
+ https://github.com/open-telemetry/opentelemetry-configuration/tree/main/schema
+ - property: disabled
+ description: |
+ Configure if the SDK is disabled or not.
+ If omitted or null, false is used.
+ - property: log_level
+ description: |
+ Configure the log level of the internal logger used by the SDK.
+ If omitted, info is used.
+ - property: attribute_limits
+ description: |
+ Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.
+ - property: logger_provider
+ description: |
+ Configure logger provider.
+ If omitted, a noop logger provider is used.
+ - property: meter_provider
+ description: |
+ Configure meter provider.
+ If omitted, a noop meter provider is used.
+ - property: propagator
+ description: |
+ Configure text map context propagators.
+ If omitted, a noop propagator is used.
+ - property: tracer_provider
+ description: |
+ Configure tracer provider.
+ If omitted, a noop tracer provider is used.
+ - property: resource
+ description: |
+ Configure resource for all signals.
+ If omitted, the default resource is used.
+ - property: instrumentation/development
+ description: |
+ Configure instrumentation.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+- type: OpenTracingPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+- type: OtlpGrpcExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:4317 is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+- type: OtlpGrpcMetricExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:4317 is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: temporality_preference
+ description: |
+ Configure temporality preference.
+ Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, cumulative is used.
+ - property: default_histogram_aggregation
+ description: |
+ Configure default histogram aggregation.
+ Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, explicit_bucket_histogram is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+- type: OtlpHttpEncoding
+ properties: []
+ isSdkExtensionPlugin: false
+- type: OtlpHttpExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint, including the signal specific path.
+ If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: encoding
+ description: |
+ Configure the encoding used for messages.
+ Values include: protobuf, json. Implementations may not support json.
+ If omitted or null, protobuf is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+- type: OtlpHttpMetricExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint, including the signal specific path.
+ If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:4317 is used.
+ - property: headers
+ description: |
+ Configure headers. Entries have higher priority than entries from .headers_list.
+ If an entry's .value is null, the entry is ignored.
+ - property: headers_list
+ description: |
+ Configure headers. Entries have lower priority than entries from .headers.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_EXPORTER_OTLP_HEADERS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options for details.
+ If omitted or null, no headers are added.
+ - property: compression
+ description: |
+ Configure compression.
+ Values include: gzip, none. Implementations may support other compression algorithms.
+ If omitted or null, none is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 10000 is used.
+ - property: encoding
+ description: |
+ Configure the encoding used for messages.
+ Values include: protobuf, json. Implementations may not support json.
+ If omitted or null, protobuf is used.
+ - property: temporality_preference
+ description: |
+ Configure temporality preference.
+ Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, cumulative is used.
+ - property: default_histogram_aggregation
+ description: |
+ Configure default histogram aggregation.
+ Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md.
+ If omitted or null, explicit_bucket_histogram is used.
+ - property: tls
+ description: Configure TLS settings for the exporter.
+ isSdkExtensionPlugin: false
+- type: ParentBasedSampler
+ properties:
+ - property: root
+ description: |
+ Configure root sampler.
+ If omitted or null, always_on is used.
+ - property: remote_parent_sampled
+ description: |
+ Configure remote_parent_sampled sampler.
+ If omitted or null, always_on is used.
+ - property: remote_parent_not_sampled
+ description: |
+ Configure remote_parent_not_sampled sampler.
+ If omitted or null, always_off is used.
+ - property: local_parent_sampled
+ description: |
+ Configure local_parent_sampled sampler.
+ If omitted or null, always_on is used.
+ - property: local_parent_not_sampled
+ description: |
+ Configure local_parent_not_sampled sampler.
+ If omitted or null, always_off is used.
+ isSdkExtensionPlugin: false
+- type: PeriodicMetricReader
+ properties:
+ - property: interval
+ description: |
+ Configure delay interval (in milliseconds) between start of two consecutive exports.
+ Value must be non-negative.
+ If omitted or null, 60000 is used.
+ - property: timeout
+ description: |
+ Configure maximum allowed time (in milliseconds) to export data.
+ Value must be non-negative. A value of 0 indicates no limit (infinity).
+ If omitted or null, 30000 is used.
+ - property: exporter
+ description: Configure exporter.
+ - property: producers
+ description: Configure metric producers.
+ - property: cardinality_limits
+ description: Configure cardinality limits.
+ isSdkExtensionPlugin: false
+- type: Propagator
+ properties:
+ - property: composite
+ description: |
+ Configure the propagators in the composite text map propagator. Entries from .composite_list are appended to the list here with duplicates filtered out.
+ Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray.
+ If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
+ - property: composite_list
+ description: |
+ Configure the propagators in the composite text map propagator. Entries are appended to .composite with duplicates filtered out.
+ The value is a comma separated list of propagator identifiers matching the format of OTEL_PROPAGATORS. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
+ Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray.
+ If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used.
+ isSdkExtensionPlugin: false
+- type: PullMetricExporter
+ properties:
+ - property: prometheus/development
+ description: |
+ Configure exporter to be prometheus.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: true
+- type: PullMetricReader
+ properties:
+ - property: exporter
+ description: Configure exporter.
+ - property: producers
+ description: Configure metric producers.
+ - property: cardinality_limits
+ description: Configure cardinality limits.
+ isSdkExtensionPlugin: false
+- type: PushMetricExporter
+ properties:
+ - property: otlp_http
+ description: |
+ Configure exporter to be OTLP with HTTP transport.
+ - property: otlp_grpc
+ description: |
+ Configure exporter to be OTLP with gRPC transport.
+ - property: otlp_file/development
+ description: |
+ Configure exporter to be OTLP with file transport.
+ This type is in development and subject to breaking changes in minor versions.
+ - property: console
+ description: |
+ Configure exporter to be console.
+ isSdkExtensionPlugin: true
+- type: Resource
+ properties:
+ - property: attributes
+ description: |
+ Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list.
+ - property: detection/development
+ description: |
+ Configure resource detection.
+ This type is in development and subject to breaking changes in minor versions.
+ If omitted or null, resource detection is disabled.
+ - property: schema_url
+ description: |
+ Configure resource schema URL.
+ If omitted or null, no schema URL is used.
+ - property: attributes_list
+ description: |
+ Configure resource attributes. Entries have lower priority than entries from .resource.attributes.
+ The value is a list of comma separated key-value pairs matching the format of OTEL_RESOURCE_ATTRIBUTES. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#general-sdk-configuration for details.
+ If omitted or null, no resource attributes are added.
+ isSdkExtensionPlugin: false
+- type: Sampler
+ properties:
+ - property: always_off
+ description: Configure sampler to be always_off.
+ - property: always_on
+ description: Configure sampler to be always_on.
+ - property: jaeger_remote
+ description: TODO
+ - property: parent_based
+ description: Configure sampler to be parent_based.
+ - property: trace_id_ratio_based
+ description: Configure sampler to be trace_id_ratio_based.
+ isSdkExtensionPlugin: true
+- type: SimpleLogRecordProcessor
+ properties:
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+- type: SimpleSpanProcessor
+ properties:
+ - property: exporter
+ description: Configure exporter.
+ isSdkExtensionPlugin: false
+- type: SpanExporter
+ properties:
+ - property: otlp_http
+ description: Configure exporter to be OTLP with HTTP transport.
+ - property: otlp_grpc
+ description: Configure exporter to be OTLP with gRPC transport.
+ - property: otlp_file/development
+ description: |
+ Configure exporter to be OTLP with file transport.
+ This type is in development and subject to breaking changes in minor versions.
+ - property: console
+ description: Configure exporter to be console.
+ - property: zipkin
+ description: Configure exporter to be zipkin.
+ isSdkExtensionPlugin: true
+- type: SpanLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+ - property: attribute_count_limit
+ description: |
+ Configure max attribute count. Overrides .attribute_limits.attribute_count_limit.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: event_count_limit
+ description: |
+ Configure max span event count.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: link_count_limit
+ description: |
+ Configure max span link count.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: event_attribute_count_limit
+ description: |
+ Configure max attributes per span event.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ - property: link_attribute_count_limit
+ description: |
+ Configure max attributes per span link.
+ Value must be non-negative.
+ If omitted or null, 128 is used.
+ isSdkExtensionPlugin: false
+- type: SpanProcessor
+ properties:
+ - property: batch
+ description: Configure a batch span processor.
+ - property: simple
+ description: Configure a simple span processor.
+ isSdkExtensionPlugin: true
+- type: SumAggregation
+ properties: []
+ isSdkExtensionPlugin: false
+- type: TextMapPropagator
+ properties:
+ - property: tracecontext
+ description: Include the w3c trace context propagator.
+ - property: baggage
+ description: Include the w3c baggage propagator.
+ - property: b3
+ description: Include the zipkin b3 propagator.
+ - property: b3multi
+ description: Include the zipkin b3 multi propagator.
+ - property: jaeger
+ description: Include the jaeger propagator.
+ - property: ottrace
+ description: Include the opentracing propagator.
+ isSdkExtensionPlugin: true
+- type: TraceContextPropagator
+ properties: []
+ isSdkExtensionPlugin: false
+- type: TraceIdRatioBasedSampler
+ properties:
+ - property: ratio
+ description: |
+ Configure trace_id_ratio.
+ If omitted or null, 1.0 is used.
+ isSdkExtensionPlugin: false
+- type: TracerProvider
+ properties:
+ - property: processors
+ description: Configure span processors.
+ - property: limits
+ description: Configure span limits. See also attribute_limits.
+ - property: sampler
+ description: |
+ Configure the sampler.
+ If omitted, parent based sampler with a root of always_on is used.
+ - property: tracer_configurator/development
+ description: |
+ Configure tracers.
+ This type is in development and subject to breaking changes in minor versions.
+ isSdkExtensionPlugin: false
+- type: View
+ properties:
+ - property: selector
+ description: |
+ Configure view selector.
+ Selection criteria is additive as described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#instrument-selection-criteria.
+ - property: stream
+ description: Configure view stream.
+ isSdkExtensionPlugin: false
+- type: ViewSelector
+ properties:
+ - property: instrument_name
+ description: |
+ Configure instrument name selection criteria.
+ If omitted or null, all instrument names match.
+ - property: instrument_type
+ description: |
+ Configure instrument type selection criteria.
+ Values include: counter, gauge, histogram, observable_counter, observable_gauge, observable_up_down_counter, up_down_counter.
+ If omitted or null, all instrument types match.
+ - property: unit
+ description: |
+ Configure the instrument unit selection criteria.
+ If omitted or null, all instrument units match.
+ - property: meter_name
+ description: |
+ Configure meter name selection criteria.
+ If omitted or null, all meter names match.
+ - property: meter_version
+ description: |
+ Configure meter version selection criteria.
+ If omitted or null, all meter versions match.
+ - property: meter_schema_url
+ description: |
+ Configure meter schema url selection criteria.
+ If omitted or null, all meter schema URLs match.
+ isSdkExtensionPlugin: false
+- type: ViewStream
+ properties:
+ - property: name
+ description: |
+ Configure metric name of the resulting stream(s).
+ If omitted or null, the instrument's original name is used.
+ - property: description
+ description: |
+ Configure metric description of the resulting stream(s).
+ If omitted or null, the instrument's origin description is used.
+ - property: aggregation
+ description: |
+ Configure aggregation of the resulting stream(s).
+ Values include: default, drop, explicit_bucket_histogram, base2_exponential_bucket_histogram, last_value, sum. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#aggregation.
+ If omitted, default is used.
+ - property: aggregation_cardinality_limit
+ description: |
+ Configure the aggregation cardinality limit.
+ If omitted or null, the metric reader's default cardinality limit is used.
+ - property: attribute_keys
+ description: |
+ Configure attribute keys retained in the resulting stream(s).
+ isSdkExtensionPlugin: false
+- type: ZipkinSpanExporter
+ properties:
+ - property: endpoint
+ description: |
+ Configure endpoint.
+ If omitted or null, http://localhost:9411/api/v2/spans is used.
+ - property: timeout
+ description: |
+ Configure max time (in milliseconds) to wait for each export.
+ Value must be non-negative. A value of 0 indicates indefinite.
+ If omitted or null, 10000 is used.
+ isSdkExtensionPlugin: false
diff --git a/scripts/meta-schema.js b/scripts/meta-schema.js
index e7d51f25..44307392 100644
--- a/scripts/meta-schema.js
+++ b/scripts/meta-schema.js
@@ -1,22 +1,56 @@
import {readJsonSchemaTypes} from "./json-schema.js";
import fs from 'fs';
import yaml from 'yaml';
-import {metaSchemaFileName, metaSchemaPath} from "./util.js";
+import {
+ metaSchemaTypesFileName,
+ metaSchemaLanguageStatusPath,
+ metaSchemaTypesPath,
+ metaSchemaLanguageStatusFileName,
+ schemaDirPath,
+ metaSchemaLanguageFilePrefix
+} from "./util.js";
export const KNOWN_LANGUAGES = ['java'];
export function writeMetaSchema(metaSchema) {
- fs.writeFileSync(metaSchemaPath, yaml.stringify(metaSchema.toJson(), {lineWidth: 0}));
+ fs.writeFileSync(metaSchemaTypesPath, yaml.stringify(metaSchema.types.map(type => type.toJson()), {lineWidth: 0}));
+
+ metaSchema.languageImplementations.forEach(languageImplementation => {
+ fs.writeFileSync(metaSchemaLanguageStatusPath(languageImplementation.language), yaml.stringify(languageImplementation.toJson(), {lineWidth: 0}));
+ });
}
export function readAndFixMetaSchema() {
// Track messages tracking schema fixes
const messages = [];
- // Parse meta schema and sanitize
- const metaSchemaContent = fs.readFileSync(metaSchemaPath, "utf-8");
- const metaSchemaDoc = yaml.parse(metaSchemaContent);
- let metaSchema = MetaSchema.parseJson(metaSchemaDoc, messages);
+ // Parse meta schema types and sanitize
+ const metaSchemaTypesContent = fs.readFileSync(metaSchemaTypesPath, "utf-8");
+ const metaSchemaTypesDoc = yaml.parse(metaSchemaTypesContent);
+ const metaSchemaTypes = parseArrayValue(
+ metaSchemaTypesDoc,
+ entryJson => MetaSchemaType.parseJson(entryJson, messages),
+ `${metaSchemaTypesFileName} is invalid`,
+ error => `${metaSchemaTypesFileName} has invalid MetaSchemaType: ${error.message}. Skipping.`,
+ messages);
+
+ // Parse meta schema language implementations and sanitize
+ const metaSchemaLanguageImplementations = [];
+ KNOWN_LANGUAGES.forEach(language => {
+ let metaSchemaLanguageStatusContent;
+ try {
+ metaSchemaLanguageStatusContent = fs.readFileSync(metaSchemaLanguageStatusPath(language), "utf-8");
+ } catch (error) {
+ messages.push(`Error reading ${metaSchemaLanguageStatusFileName(language)}: ${error.message}. Skipping.`);
+ return;
+ }
+ const metaSchemaLanguageStatusDoc = yaml.parse(metaSchemaLanguageStatusContent);
+ const languageImplementation = LanguageImplementation.parseJson(language, metaSchemaLanguageStatusDoc, messages);
+ metaSchemaLanguageImplementations.push(languageImplementation);
+ });
+
+ // Create full MetaSchema from meta schema types and language implementations
+ let metaSchema = new MetaSchema(metaSchemaTypes, metaSchemaLanguageImplementations);
const jsonSchemaTypesByType = {};
readJsonSchemaTypes().forEach(type => jsonSchemaTypesByType[type.type] = type);
@@ -48,24 +82,6 @@ export class MetaSchema {
return {types: sortedTypes, languageImplementations: sortedLanguageImplementations};
}
-
- static parseJson(rawJson, messages) {
- const types = parseArray(
- rawJson,
- 'types',
- entryJson => MetaSchemaType.parseJson(entryJson, messages),
- `MetaSchema has invalid 'types'`,
- error => `MetaSchema has invalid MetaSchemaType: ${error.message}. Skipping.`,
- messages);
- const languageImplementations = parseArray(
- rawJson,
- 'languageImplementations',
- entryJson => LanguageImplementation.parseJson(entryJson, messages),
- `MetaSchema has invalid 'languageImplementations'`,
- error => `MetaSchema has invalid LanguageImplementation: ${error.message}. Skipping.`,
- messages);
- return new MetaSchema(types, languageImplementations);
- }
}
export class MetaSchemaType {
@@ -137,14 +153,12 @@ export class LanguageImplementation {
typeSupportStatuses.sort((a, b) => a.type.localeCompare(b.type));
return {
- language: this.language,
latestSupportedFileFormat: this.latestSupportedFileFormat,
typeSupportStatuses
};
}
- static parseJson(rawJson, messages) {
- const language = parseString(rawJson, 'language', `LanguageImplementation has invalid 'language'`);
+ static parseJson(language, rawJson, messages) {
const latestSupportedFileFormat = parseString(rawJson, 'latestSupportedFileFormat', `LanguageImplementation has invalid 'latestSupportedFileFormat'`);
const typeSupportStatuses = parseArray(
rawJson,
@@ -246,7 +260,7 @@ function reconcileTypes(metaSchema, jsonSchemaTypesByType, messages) {
// Find and remove any types in meta schema not in json schema
Object.entries(metaSchemaTypesByType).forEach(([type, unused]) => {
if (!(type in jsonSchemaTypesByType)) {
- messages.push(`Type ${type} found in ${metaSchemaFileName} but not in JSON schema. Removing.`);
+ messages.push(`Type ${type} found in ${metaSchemaTypesFileName} but not in JSON schema. Removing.`);
delete metaSchemaTypesByType[type];
}
});
@@ -254,7 +268,7 @@ function reconcileTypes(metaSchema, jsonSchemaTypesByType, messages) {
// Find and add any types in json schema not in meta schema
Object.entries(jsonSchemaTypesByType).forEach(([type, jsonSchemaType]) => {
if (!(type in metaSchemaTypesByType)) {
- messages.push(`Type ${type} in ${jsonSchemaType.file} and path ${jsonSchemaType.jsonSchemaPath} is missing from ${metaSchemaFileName}. Adding.`);
+ messages.push(`Type ${type} in ${jsonSchemaType.file} and path ${jsonSchemaType.jsonSchemaPath} is missing from ${metaSchemaTypesFileName}. Adding.`);
const metaSchemaType = jsonSchemaType.toMetaSchemaType();
metaSchemaTypesByType[metaSchemaType.type] = metaSchemaType;
}
@@ -296,18 +310,19 @@ function reconcileLanguageImplementations(metaSchema, jsonSchemaTypesByType, mes
});
// Find and remove any language implementations which are extra
- Object.keys(languageImplementationsByLanguage).forEach(language => {
- if (!KNOWN_LANGUAGES.includes(language)) {
- messages.push(`LanguageImplementation ${language} found in ${metaSchemaFileName} but is not recognized. Removing.`);
- delete languageImplementationsByLanguage[language];
- }
- });
+ fs.readdirSync(schemaDirPath)
+ .filter(file => file.startsWith(metaSchemaLanguageFilePrefix))
+ .filter(file => !KNOWN_LANGUAGES.some(language => metaSchemaLanguageStatusFileName(language) === file))
+ .forEach(file => {
+ messages.push(`LanguageImplementation file ${file} found for unrecognized language. Removing.`);
+ fs.unlinkSync(schemaDirPath + file);
+ });
// Find and add any language implementations not in missing schema
KNOWN_LANGUAGES.forEach(language => {
const languageImplementation = languageImplementationsByLanguage[language];
if (!languageImplementation) {
- messages.push(`LanguageImplementation ${language} not found in ${metaSchemaFileName}. Adding.`);
+ messages.push(`LanguageImplementation ${language} not found. Adding.`);
languageImplementationsByLanguage[language] = emptyLanguageImplementation(language, metaSchema);
}
});
@@ -340,11 +355,15 @@ function parseBoolean(rawJson, propertyName, errorMessage) {
function parseArray(rawJson, propertyName, entryParser, errorMessage, entryErrorFormatter, messages) {
const property = rawJson[propertyName];
- if (!Array.isArray(property)) {
+ return parseArrayValue(property, entryParser, errorMessage, entryErrorFormatter, messages);
+}
+
+function parseArrayValue(arrayValue, entryParser, errorMessage, entryErrorFormatter, messages) {
+ if (!Array.isArray(arrayValue)) {
throw new Error(errorMessage);
}
const entries = [];
- property.forEach(entry => {
+ arrayValue.forEach(entry => {
try {
entries.push(entryParser(entry));
} catch (error) {
diff --git a/scripts/util.js b/scripts/util.js
index 738c7869..31024622 100644
--- a/scripts/util.js
+++ b/scripts/util.js
@@ -4,7 +4,13 @@ import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
-export const metaSchemaFileName = "meta_schema.yaml";
+export const metaSchemaFilePrefix = "meta_schema";
export const schemaDirPath = __dirname + "/../schema/";
-export const metaSchemaPath = schemaDirPath + metaSchemaFileName;
export const markdownDocPath = __dirname + "/../schema-docs.md";
+
+export const metaSchemaTypesFileName = `${metaSchemaFilePrefix}_types.yaml`;
+export const metaSchemaTypesPath = schemaDirPath + metaSchemaTypesFileName;
+
+export const metaSchemaLanguageFilePrefix = `${metaSchemaFilePrefix}_language`;
+export const metaSchemaLanguageStatusFileName = (language) => `${metaSchemaLanguageFilePrefix}_${language}.yaml`;
+export const metaSchemaLanguageStatusPath = (language) => schemaDirPath + metaSchemaLanguageStatusFileName(language);
From 6269e804ee2ff765521a264b05c6bd5c5db5459d Mon Sep 17 00:00:00 2001
From: Jack Berg
Date: Wed, 29 Oct 2025 20:19:23 -0500
Subject: [PATCH 3/6] Fix build
---
.github/workflows/build-check.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/build-check.yaml b/.github/workflows/build-check.yaml
index c4516626..96111b94 100644
--- a/.github/workflows/build-check.yaml
+++ b/.github/workflows/build-check.yaml
@@ -33,7 +33,7 @@ jobs:
# need to "git add" to detect any changes to descriptions which are not checked in
# select files from locations managed by meta schema
git add examples**
- git add schema/meta_schema.yaml
+ git add schema/meta_schema_*
git add schema-docs.md
if git diff --cached --quiet
then
From d92548973ee5dd7bd1885056cc3b936021cdf96d Mon Sep 17 00:00:00 2001
From: Jack Berg
Date: Thu, 30 Oct 2025 12:57:45 -0500
Subject: [PATCH 4/6] Define enum of implementation status options, add
documentation
---
CONTRIBUTING.md | 72 +++++++++-
schema-docs.md | 6 +-
schema/meta_schema_language_java.yaml | 190 ++++++++++++++------------
scripts/generate-markdown.js | 5 +-
scripts/meta-schema.js | 88 ++++++++----
5 files changed, 238 insertions(+), 123 deletions(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 73efb80d..c99495eb 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -257,10 +257,74 @@ make all
The meta schema is broken across multiple files for improved maintainability:
-* [meta_schema_types.yaml](schema/meta_schema_types.yaml) contains property descriptions, semantics, and SDK extension plugin information.
-* `meta_schema_language_{language}.yaml` (e.g. [meta_schema_language_java.yaml](schema/meta_schema_language_java.yaml)) files track language implementation status for a particular language.
+* [meta_schema_types.yaml](#meta_schema_typesyaml)
+* [meta_schema_language_{language}.yaml](#meta_schema_language_languageyaml)
-There are variety of tasks which intersect with the meta schema:
+There are a variety of build tasks which intersect with the meta schema:
+
+* [make fix-meta-schema](#make-fix-meta-schema)
+* [make generate-markdown](#make-generate-markdown)
+* [make generate-descriptions](#make-generate-descriptions)
+* [make all-meta-schema](#make-all-meta-schema)
+
+### `meta_schema_types.yaml`
+
+[meta_schema_types.yaml](schema/meta_schema_types.yaml) contains property descriptions, semantics, and SDK extension plugin information.
+
+Content looks like:
+
+```yaml
+- type: AttributeLimits
+ properties:
+ - property: attribute_value_length_limit
+ description: |
+ Configure max attribute value size.
+ Value must be non-negative.
+ If omitted or null, there is no limit.
+# other types omitted for brevity
+```
+
+Notes:
+
+* `[]` the document is an array of entries for each type in the JSON schema.
+ * `[].type` is the name of the JSON schema type. **Maintained automatically by build tooling.**
+ * `[].properties` is an array of entries for each property in the JSON schema type.
+ * `[].properties[].property` the name of the property. **Maintained automatically by build tooling.**
+ * `[].properties[].description` the property description, including semantics and default behavior.
+
+### `meta_schema_language_{language}.yaml`
+
+These files track language implementation status for a particular language. See [fix-meta-schema](#fix-meta-schema) for details on adding a new language.
+
+Content looks like:
+
+```yaml
+latestSupportedFileFormat: 1.0.0-rc.1
+typeSupportStatuses:
+ - type: Base2ExponentialBucketHistogramAggregation
+ status: supported # the support status, see below for allowed enum values
+ notes: ""
+ propertyOverrides:
+ - property: record_min_max
+ status: ignored
+ # other types omitted for brevity
+ ```
+
+Notes:
+
+* `.latestSupportedFileFormat` is the latest version of `opentelemetry-configuration` supported by the `{language}`
+* `.typeSupportStatuses` is an array with entries for each type in the JSON schema.
+ * `.typeSupportStatuses[].type` is the name of the JSON schema type. **Maintained automatically by build tooling.**
+ * `.typeSupportStatuses[].status` captures the support status of the type and all properties except overrides in `.typeSupportStatuses[].propertyOverrides`. See enum options below.
+ * `.typeSupportStatuses[].propertyOverrides` an array of properties which have different support statuses than the overall type as recorded in `.typeSupportStatuses[].status.
+ * `.typeSupportStatuses[].propertyOverrides[].property` the name of the property whose support status is overridden.
+ * `.typeSupportStatuses[].propertyOverrides[].status` the overridden support status. See enum options below.
+* Status enum options, applicable to `.typeSupportStatuses[].status`, `.typeSupportStatuses[].propertyOverrides[].status`:
+ * `unknown`: Language maintainer has not yet recorded a status.
+ * `suppported`: The type / property is supported by the language implementation.
+ * `not_implemented`: The type / property is not parsed / recognized by the language implementation because the concept is not yet implemented but should be eventually.
+ * `not_applicable`: The type / property is not parsed / recognized by the language implementation because the concept is not applicable. E.g. C++ specific instrumentation for Java.
+ * `ignored`: The type / property is not parsed / recognized by the language implementation despite the concept being available in the language's programmatic configuration API.
### `make fix-meta-schema`
@@ -276,6 +340,8 @@ Ensures that the JSON schema and the meta schema are kept in sync:
* For each language implementation:
* If a type exists in the JSON schema and not in the language implementation's type support status of the meta schema, add it.
* If a type exists in the language implementation's type support status of the meta schema and no in the JSON schema, delete it.
+ * For each property in a type's propertyOverrides:
+ * If the property does not exist in the JSON schema, delete it.
When this task adds new entries to the meta schema, they are stubbed out with `TODO` placeholders. Contributors should update these with sensible values.
diff --git a/schema-docs.md b/schema-docs.md
index 896633a0..7f6d647f 100644
--- a/schema-docs.md
+++ b/schema-docs.md
@@ -6192,7 +6192,7 @@ Latest supported file format: `1.0.0-rc.1`
| [`B3MultiPropagator`](#b3multipropagator) | supported | | |
| [`B3Propagator`](#b3propagator) | supported | | |
| [`BaggagePropagator`](#baggagepropagator) | supported | | |
-| [`Base2ExponentialBucketHistogramAggregation`](#base2exponentialbuckethistogramaggregation) | supported | | * `max_scale`: supported
* `max_size`: supported
* `record_min_max`: supported
|
+| [`Base2ExponentialBucketHistogramAggregation`](#base2exponentialbuckethistogramaggregation) | supported | | * `max_scale`: supported
* `max_size`: supported
* `record_min_max`: ignored
|
| [`BatchLogRecordProcessor`](#batchlogrecordprocessor) | supported | | * `schedule_delay`: supported
* `export_timeout`: supported
* `max_queue_size`: supported
* `max_export_batch_size`: supported
* `exporter`: supported
|
| [`BatchSpanProcessor`](#batchspanprocessor) | supported | | * `schedule_delay`: supported
* `export_timeout`: supported
* `max_queue_size`: supported
* `max_export_batch_size`: supported
* `exporter`: supported
|
| [`CardinalityLimits`](#cardinalitylimits) | supported | | * `default`: supported
* `counter`: supported
* `gauge`: supported
* `histogram`: supported
* `observable_counter`: supported
* `observable_gauge`: supported
* `observable_up_down_counter`: supported
* `up_down_counter`: supported
|
@@ -6219,7 +6219,7 @@ Latest supported file format: `1.0.0-rc.1`
| [`ExperimentalPeerInstrumentation`](#experimentalpeerinstrumentation) | supported | | * `service_mapping`: supported
|
| [`ExperimentalPeerServiceMapping`](#experimentalpeerservicemapping) | supported | | * `peer`: supported
* `service`: supported
|
| [`ExperimentalProcessResourceDetector`](#experimentalprocessresourcedetector) | supported | | |
-| [`ExperimentalPrometheusMetricExporter`](#experimentalprometheusmetricexporter) | supported | | * `host`: supported
* `port`: supported
* `without_scope_info`: supported
* `with_resource_constant_labels`: supported
* `translation_strategy`: supported
|
+| [`ExperimentalPrometheusMetricExporter`](#experimentalprometheusmetricexporter) | supported | | * `host`: supported
* `port`: supported
* `without_scope_info`: ignored
* `with_resource_constant_labels`: supported
* `translation_strategy`: not_implemented
|
| [`ExperimentalResourceDetection`](#experimentalresourcedetection) | supported | | * `attributes`: supported
* `detectors`: supported
|
| [`ExperimentalResourceDetector`](#experimentalresourcedetector) | supported | | * `container`: supported
* `host`: supported
* `process`: supported
* `service`: supported
|
| [`ExperimentalServiceResourceDetector`](#experimentalserviceresourcedetector) | supported | | |
@@ -6229,7 +6229,7 @@ Latest supported file format: `1.0.0-rc.1`
| [`ExplicitBucketHistogramAggregation`](#explicitbuckethistogramaggregation) | supported | | * `boundaries`: supported
* `record_min_max`: supported
|
| [`ExporterDefaultHistogramAggregation`](#exporterdefaulthistogramaggregation) | supported | | |
| [`ExporterTemporalityPreference`](#exportertemporalitypreference) | supported | | |
-| [`GrpcTls`](#grpctls) | unknown | | * `certificate_file`: unknown
* `client_key_file`: unknown
* `client_certificate_file`: unknown
* `insecure`: unknown
|
+| [`GrpcTls`](#grpctls) | unknown | | * `certificate_file`: unknown
* `client_key_file`: unknown
* `client_certificate_file`: unknown
* `insecure`: not_applicable
|
| [`HttpTls`](#httptls) | unknown | | * `certificate_file`: unknown
* `client_key_file`: unknown
* `client_certificate_file`: unknown
|
| [`IncludeExclude`](#includeexclude) | supported | | * `included`: supported
* `excluded`: supported
|
| [`InstrumentType`](#instrumenttype) | supported | | |
diff --git a/schema/meta_schema_language_java.yaml b/schema/meta_schema_language_java.yaml
index 82bff907..55c0db88 100644
--- a/schema/meta_schema_language_java.yaml
+++ b/schema/meta_schema_language_java.yaml
@@ -2,365 +2,373 @@ latestSupportedFileFormat: 1.0.0-rc.1
typeSupportStatuses:
- type: Aggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: AlwaysOffSampler
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: AlwaysOnSampler
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: AttributeLimits
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: AttributeNameValue
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: AttributeType
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: B3MultiPropagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: B3Propagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: BaggagePropagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: Base2ExponentialBucketHistogramAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides:
+ - property: record_min_max
+ status: ignored
- type: BatchLogRecordProcessor
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: BatchSpanProcessor
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: CardinalityLimits
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ConsoleExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: DefaultAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: DropAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExemplarFilter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalContainerResourceDetector
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalGeneralInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalHostResourceDetector
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalHttpClientInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalHttpInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalHttpServerInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalLanguageSpecificInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalLoggerConfig
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalLoggerConfigurator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalLoggerMatcherAndConfig
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalMeterConfig
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalMeterConfigurator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalMeterMatcherAndConfig
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalOtlpFileExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalOtlpFileMetricExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalPeerInstrumentation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalPeerServiceMapping
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalProcessResourceDetector
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalPrometheusMetricExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides:
+ - property: translation_strategy
+ status: not_implemented
+ - property: without_scope_info
+ status: ignored
- type: ExperimentalResourceDetection
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalResourceDetector
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalServiceResourceDetector
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalTracerConfig
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalTracerConfigurator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExperimentalTracerMatcherAndConfig
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExplicitBucketHistogramAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExporterDefaultHistogramAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ExporterTemporalityPreference
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: GrpcTls
status: unknown
- unsupportedProperties: []
notes: ""
+ propertyOverrides:
+ - property: insecure
+ status: not_applicable
- type: HttpTls
status: unknown
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: IncludeExclude
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: InstrumentType
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: JaegerPropagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: JaegerRemoteSampler
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: LastValueAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: LoggerProvider
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: LogRecordExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: LogRecordLimits
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: LogRecordProcessor
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: MeterProvider
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: MetricProducer
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: MetricReader
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: NameStringValuePair
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OpenCensusMetricProducer
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OpentelemetryConfiguration
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OpenTracingPropagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OtlpGrpcExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OtlpGrpcMetricExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OtlpHttpEncoding
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OtlpHttpExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: OtlpHttpMetricExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ParentBasedSampler
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: PeriodicMetricReader
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: Propagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: PullMetricExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: PullMetricReader
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: PushMetricExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: Resource
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: Sampler
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: SimpleLogRecordProcessor
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: SimpleSpanProcessor
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: SpanExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: SpanLimits
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: SpanProcessor
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: SumAggregation
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: TextMapPropagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: TraceContextPropagator
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: TraceIdRatioBasedSampler
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: TracerProvider
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: View
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ViewSelector
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ViewStream
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
- type: ZipkinSpanExporter
status: supported
- unsupportedProperties: []
notes: ""
+ propertyOverrides: []
diff --git a/scripts/generate-markdown.js b/scripts/generate-markdown.js
index bf0c5184..e7e8a6e9 100644
--- a/scripts/generate-markdown.js
+++ b/scripts/generate-markdown.js
@@ -86,7 +86,7 @@ metaSchema.types.forEach(metaSchemaType => {
if (!typeSupportStatus) {
throw new Error(`Meta schema LanguageImplementation for language ${language} missing type ${type}.`);
}
- const status = typeSupportStatus.unsupportedProperties.includes(property) ? 'unsupported' : typeSupportStatus.status;
+ const status = typeSupportStatus.propertyOverrides.includes(property) ? 'unsupported' : typeSupportStatus.status;
output.push(` ${status} |`);
});
output.push('\n');
@@ -150,7 +150,8 @@ KNOWN_LANGUAGES.forEach(language => {
const propertySupportStatus = [];
metaSchemaType.properties.forEach(metaSchemaProperty => {
- const status = typeSupportStatus.unsupportedProperties.includes(metaSchemaProperty.property) ? 'unsupported' : typeSupportStatus.status;
+ const propertyOverride = typeSupportStatus.propertyOverrides.find(propertyOverride => propertyOverride.property === metaSchemaProperty.property);
+ const status = propertyOverride ? propertyOverride.status : typeSupportStatus.status;
propertySupportStatus.push(`* \`${metaSchemaProperty.property}\`: ${status}
`) ;
});
diff --git a/scripts/meta-schema.js b/scripts/meta-schema.js
index 44307392..39beb3d6 100644
--- a/scripts/meta-schema.js
+++ b/scripts/meta-schema.js
@@ -12,6 +12,9 @@ import {
export const KNOWN_LANGUAGES = ['java'];
+const IMPLEMENTATION_STATUS_UNKNOWN = 'unknown';
+const IMPLEMENTATION_STATUSES = ['supported', IMPLEMENTATION_STATUS_UNKNOWN, 'not_implemented', 'ignored', 'not_applicable']
+
export function writeMetaSchema(metaSchema) {
fs.writeFileSync(metaSchemaTypesPath, yaml.stringify(metaSchema.types.map(type => type.toJson()), {lineWidth: 0}));
@@ -174,45 +177,63 @@ export class LanguageImplementation {
export class TypeSupportStatus {
type;
status;
- unsupportedProperties;
+ propertyOverrides;
notes;
- constructor(type, status, unsupportedProperties, notes) {
+ constructor(type, status, propertyOverrides, notes) {
this.type = type;
this.status = status;
- this.unsupportedProperties = unsupportedProperties;
+ this.propertyOverrides = propertyOverrides;
this.notes = notes;
}
toJson() {
- const unsupportedProperties = [...this.unsupportedProperties];
- unsupportedProperties.sort();
+ const propertyOverrides = this.propertyOverrides.map(propertyStatus => propertyStatus.toJson());
+ propertyOverrides.sort((a, b) => a.property.localeCompare(b.property));
return {
type: this.type,
status: this.status,
- unsupportedProperties,
- notes: this.notes
+ notes: this.notes,
+ propertyOverrides
};
}
static parseJson(rawJson, messages) {
const type = parseString(rawJson, 'type', `TypeSupportStatus has invalid 'type'`);
- const status = parseString(rawJson, 'status', `TypeSupportStatus has invalid 'status'`);
- const unsupportedProperties = parseArray(
+ const status = parseEnum(rawJson, 'status', `TypeSupportStatus has invalid 'status'`, IMPLEMENTATION_STATUSES);
+ const propertyOverrides = parseArray(
rawJson,
- 'unsupportedProperties',
- entryJson => {
- if (typeof entryJson !== 'string') {
- throw new Error(`Invalid unsupportedProperty.`);
- }
- return entryJson;
- },
- `TypeSupportStatus '${type}' has invalid 'unsupportedProperties'`,
- error => `TypeSupportStatus '${type}' has invalid unsupportedProperty: ${error.message}. Skipping.`,
- messages);
+ 'propertyOverrides',
+ entryJson => PropertyStatus.parseJson(entryJson, messages),
+ `TypeSupportStatus '${type}' has invalid 'propertyOverrides'`,
+ error => `TypeSupportStatus '${type}' has invalid PropertyStatus: ${error.message}. Skipping.`,
+ messages)
const notes = parseString(rawJson, 'notes', `TypeSupportStatus has invalid 'notes'`);
- return new TypeSupportStatus(type, status, unsupportedProperties, notes);
+ return new TypeSupportStatus(type, status, propertyOverrides, notes);
+ }
+}
+
+export class PropertyStatus {
+ property;
+ status;
+
+ constructor(property, status) {
+ this.property = property;
+ this.status = status;
+ }
+
+ toJson() {
+ return {
+ property: this.property,
+ status: this.status
+ };
+ }
+
+ static parseJson(rawJson, messages) {
+ const property = parseString(rawJson, 'property', `PropertyStatus has invalid 'property'`);
+ const status = parseEnum(rawJson, 'status', `PropertyStatus has invalid 'status'`, IMPLEMENTATION_STATUSES);
+ return new PropertyStatus(property, status);
}
}
@@ -291,10 +312,21 @@ function reconcileLanguageImplementations(metaSchema, jsonSchemaTypesByType, mes
// Remove extra types
languageImplementation.typeSupportStatuses.forEach(typeSupportStatus => {
- if (!expectedTypeSupportStatuses.find(item => item.type === typeSupportStatus.type)) {
+ const jsonSchemaType = jsonSchemaTypesByType[typeSupportStatus.type];
+ if (!jsonSchemaType) {
messages.push(`LanguageImplementation ${language} has type ${typeSupportStatus.type} in meta schema and not in JSON schema. Removing.`);
return;
}
+ // Remove any propertyOverrides which occur in meta schema but not json schema
+ const reconciledPropertyOverrides = [];
+ typeSupportStatus.propertyOverrides.forEach(propertyStatus => {
+ if (!jsonSchemaType.properties.find(jsonSchemaProperty => jsonSchemaProperty.property === propertyStatus.property)) {
+ messages.push(`LanguageImplementation ${language} type ${typeSupportStatus.type} has propertyOverride ${propertyStatus.property} in meta schema and not in JSON schema. Removing.`);
+ return;
+ }
+ reconciledPropertyOverrides.push(propertyStatus);
+ });
+ typeSupportStatus.propertyOverrides = reconciledPropertyOverrides;
reconciledTypeSupportStatuses.push(typeSupportStatus);
});
@@ -318,7 +350,7 @@ function reconcileLanguageImplementations(metaSchema, jsonSchemaTypesByType, mes
fs.unlinkSync(schemaDirPath + file);
});
- // Find and add any language implementations not in missing schema
+ // Find and add any language implementations not in meta schema
KNOWN_LANGUAGES.forEach(language => {
const languageImplementation = languageImplementationsByLanguage[language];
if (!languageImplementation) {
@@ -333,8 +365,16 @@ function reconcileLanguageImplementations(metaSchema, jsonSchemaTypesByType, mes
function emptyLanguageImplementation(language, metaSchema) {
return new LanguageImplementation(
language,
- 'unknown',
- metaSchema.types.map(metaSchemaType => new TypeSupportStatus(metaSchemaType.type, 'unknown', [], '')));
+ 'TODO',
+ metaSchema.types.map(metaSchemaType => new TypeSupportStatus(metaSchemaType.type, IMPLEMENTATION_STATUS_UNKNOWN, [], '')));
+}
+
+function parseEnum(rawJson, propertyName, errorMessage, knownValues) {
+ const string = parseString(rawJson, propertyName, errorMessage);
+ if (!IMPLEMENTATION_STATUSES.includes(string)) {
+ throw new Error(errorMessage);
+ }
+ return string;
}
function parseString(rawJson, propertyName, errorMessage) {
From d1143ddbad8c731e427af645a2678e8b7faf3c42 Mon Sep 17 00:00:00 2001
From: Jack Berg
Date: Thu, 30 Oct 2025 13:03:48 -0500
Subject: [PATCH 5/6] Fix markdown generation
---
schema-docs.md | 8 ++++----
scripts/generate-markdown.js | 3 ++-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/schema-docs.md b/schema-docs.md
index 7f6d647f..2f0a6658 100644
--- a/schema-docs.md
+++ b/schema-docs.md
@@ -475,7 +475,7 @@ Usages:
|---|---|
| `max_scale` | supported |
| `max_size` | supported |
-| `record_min_max` | supported |
+| `record_min_max` | ignored |
Constraints:
@@ -1834,9 +1834,9 @@ Usages:
|---|---|
| `host` | supported |
| `port` | supported |
-| `without_scope_info` | supported |
+| `without_scope_info` | ignored |
| `with_resource_constant_labels` | supported |
-| `translation_strategy` | supported |
+| `translation_strategy` | not_implemented |
Constraints:
@@ -2292,7 +2292,7 @@ Usages:
| `certificate_file` | unknown |
| `client_key_file` | unknown |
| `client_certificate_file` | unknown |
-| `insecure` | unknown |
+| `insecure` | not_applicable |
Constraints:
diff --git a/scripts/generate-markdown.js b/scripts/generate-markdown.js
index e7e8a6e9..5b17dc40 100644
--- a/scripts/generate-markdown.js
+++ b/scripts/generate-markdown.js
@@ -86,7 +86,8 @@ metaSchema.types.forEach(metaSchemaType => {
if (!typeSupportStatus) {
throw new Error(`Meta schema LanguageImplementation for language ${language} missing type ${type}.`);
}
- const status = typeSupportStatus.propertyOverrides.includes(property) ? 'unsupported' : typeSupportStatus.status;
+ const propertyOverride = typeSupportStatus.propertyOverrides.find(propertyOverride => propertyOverride.property === property.property);
+ const status = propertyOverride ? propertyOverride.status : typeSupportStatus.status;
output.push(` ${status} |`);
});
output.push('\n');
From 380deeb16c72dc3ea47a049d7e200b3f07da32ec Mon Sep 17 00:00:00 2001
From: Jack Berg
Date: Thu, 30 Oct 2025 13:13:38 -0500
Subject: [PATCH 6/6] Fix link
---
CONTRIBUTING.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c99495eb..6df3dbc2 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -294,7 +294,7 @@ Notes:
### `meta_schema_language_{language}.yaml`
-These files track language implementation status for a particular language. See [fix-meta-schema](#fix-meta-schema) for details on adding a new language.
+These files track language implementation status for a particular language. See [fix-meta-schema](#make-fix-meta-schema) for details on adding a new language.
Content looks like: