diff --git a/examples/kitchen-sink.yaml b/examples/kitchen-sink.yaml index 6e53ee1d..f574f3d0 100644 --- a/examples/kitchen-sink.yaml +++ b/examples/kitchen-sink.yaml @@ -436,3 +436,6 @@ instrumentation/development: swift: example: property: "value" +distribution: + example: + property: "value" diff --git a/opentelemetry_configuration.json b/opentelemetry_configuration.json index 9e493689..08e17fc1 100644 --- a/opentelemetry_configuration.json +++ b/opentelemetry_configuration.json @@ -47,6 +47,10 @@ "instrumentation/development": { "$ref": "#/$defs/ExperimentalInstrumentation", "description": "Configure instrumentation.\nIf omitted, instrumentation defaults are used.\n" + }, + "distribution": { + "$ref": "#/$defs/Distribution", + "description": "Defines configuration parameters specific to a particular OpenTelemetry distribution or vendor.\nThis section provides a standardized location for distribution-specific settings\nthat are not part of the OpenTelemetry configuration model.\nIt allows vendors to expose their own extensions and general configuration options.\nIf omitted, distribution defaults are used.\n" } }, "required": [ @@ -438,6 +442,13 @@ ], "additionalProperties": false }, + "Distribution": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "minProperties": 1 + }, "DropAggregation": { "type": [ "object", diff --git a/schema-docs.md b/schema-docs.md index bc7ff952..052c10f4 100644 --- a/schema-docs.md +++ b/schema-docs.md @@ -814,6 +814,32 @@ Usages: } +## Distribution + +No properties. + +Constraints: + +* `additionalProperties`: `{"type":"object"}` +* `minProperties`: `1` + +Usages: + +* [`OpenTelemetryConfiguration.distribution`](#opentelemetryconfiguration) + +
+JSON Schema + +[JSON Schema Source File](./schema/opentelemetry_configuration.yaml) +
{
+  "type": "object",
+  "additionalProperties": {
+    "type": "object"
+  },
+  "minProperties": 1
+}
+
+ ## DropAggregation No properties. @@ -1773,6 +1799,7 @@ Usages: |---|---|---|---|---|---| | `attribute_limits` | [`AttributeLimits`](#attributelimits) | `false` | If omitted, default values as described in AttributeLimits are used. | No constraints. | Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.
| | `disabled` | one of:
* `boolean`
* `null`
| `false` | If omitted or null, false is used. | No constraints. | Configure if the SDK is disabled or not.
| +| `distribution` | [`Distribution`](#distribution) | `false` | If omitted, distribution defaults are used. | No constraints. | Defines configuration parameters specific to a particular OpenTelemetry distribution or vendor.
This section provides a standardized location for distribution-specific settings
that are not part of the OpenTelemetry configuration model.
It allows vendors to expose their own extensions and general configuration options.
| | `file_format` | `string` | `true` | Property is required and must be non-null. | No constraints. | The file format version.
Represented as a string including the semver major, minor version numbers (and optionally the meta tag). For example: "0.4", "1.0-rc.2", "1.0" (after stable release).
See https://github.com/open-telemetry/opentelemetry-configuration/blob/main/VERSIONING.md for more details.
The yaml format is documented at https://github.com/open-telemetry/opentelemetry-configuration/tree/main/schema
| | `log_level` | [`SeverityNumber`](#severitynumber) | `false` | If omitted, INFO is used. | No constraints. | Configure the log level of the internal logger used by the SDK.
| | `logger_provider` | [`LoggerProvider`](#loggerprovider) | `false` | If omitted, a noop logger provider is used. | No constraints. | Configure logger provider.
| @@ -1789,6 +1816,7 @@ Usages: |---|---|---|---|---| | `attribute_limits` | supported | unknown | supported | unknown | | `disabled` | supported | unknown | supported | unknown | +| `distribution` | supported | unknown | supported | unknown | | `file_format` | supported | unknown | supported | unknown | | `log_level` | supported | unknown | not_implemented | unknown | | `logger_provider` | supported | unknown | supported | unknown | @@ -1849,6 +1877,9 @@ No usages. }, "instrumentation/development": { "$ref": "#/$defs/ExperimentalInstrumentation" + }, + "distribution": { + "$ref": "#/$defs/Distribution" } }, "required": [ @@ -5623,6 +5654,7 @@ Latest supported file format: `1.0.0-rc.2` | [`ConsoleExporter`](#consoleexporter) | supported | | | | [`ConsoleMetricExporter`](#consolemetricexporter) | supported | | * `default_histogram_aggregation`: supported
* `temporality_preference`: supported
| | [`DefaultAggregation`](#defaultaggregation) | supported | | | +| [`Distribution`](#distribution) | unknown | | | | [`DropAggregation`](#dropaggregation) | supported | | | | [`ExemplarFilter`](#exemplarfilter) | not_implemented | | * `always_off`: not_implemented
* `always_on`: not_implemented
* `trace_based`: not_implemented
| | [`ExplicitBucketHistogramAggregation`](#explicitbuckethistogramaggregation) | supported | | * `boundaries`: supported
* `record_min_max`: supported
| @@ -5643,7 +5675,7 @@ Latest supported file format: `1.0.0-rc.2` | [`MetricReader`](#metricreader) | supported | | * `periodic`: supported
* `pull`: supported
| | [`NameStringValuePair`](#namestringvaluepair) | supported | | * `name`: supported
* `value`: supported
| | [`OpenCensusMetricProducer`](#opencensusmetricproducer) | supported | | | -| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | supported | | * `attribute_limits`: supported
* `disabled`: supported
* `file_format`: supported
* `log_level`: supported
* `logger_provider`: supported
* `meter_provider`: supported
* `propagator`: supported
* `resource`: supported
* `tracer_provider`: supported
* `instrumentation/development`: supported
| +| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | supported | | * `attribute_limits`: supported
* `disabled`: supported
* `distribution`: supported
* `file_format`: supported
* `log_level`: supported
* `logger_provider`: supported
* `meter_provider`: supported
* `propagator`: supported
* `resource`: supported
* `tracer_provider`: supported
* `instrumentation/development`: supported
| | [`OpenTracingPropagator`](#opentracingpropagator) | not_implemented | | | | [`OtlpGrpcExporter`](#otlpgrpcexporter) | supported | | * `compression`: supported
* `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `timeout`: supported
* `tls`: supported
| | [`OtlpGrpcMetricExporter`](#otlpgrpcmetricexporter) | supported | | * `compression`: supported
* `default_histogram_aggregation`: supported
* `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `temporality_preference`: supported
* `timeout`: supported
* `tls`: supported
| @@ -5736,6 +5768,7 @@ Latest supported file format: `0.3.0` | [`ConsoleExporter`](#consoleexporter) | unknown | | | | [`ConsoleMetricExporter`](#consolemetricexporter) | unknown | | * `default_histogram_aggregation`: unknown
* `temporality_preference`: unknown
| | [`DefaultAggregation`](#defaultaggregation) | unknown | | | +| [`Distribution`](#distribution) | unknown | | | | [`DropAggregation`](#dropaggregation) | unknown | | | | [`ExemplarFilter`](#exemplarfilter) | unknown | | * `always_off`: unknown
* `always_on`: unknown
* `trace_based`: unknown
| | [`ExplicitBucketHistogramAggregation`](#explicitbuckethistogramaggregation) | unknown | | * `boundaries`: unknown
* `record_min_max`: unknown
| @@ -5756,7 +5789,7 @@ Latest supported file format: `0.3.0` | [`MetricReader`](#metricreader) | unknown | | * `periodic`: unknown
* `pull`: unknown
| | [`NameStringValuePair`](#namestringvaluepair) | unknown | | * `name`: unknown
* `value`: unknown
| | [`OpenCensusMetricProducer`](#opencensusmetricproducer) | unknown | | | -| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | unknown | | * `attribute_limits`: unknown
* `disabled`: unknown
* `file_format`: unknown
* `log_level`: unknown
* `logger_provider`: unknown
* `meter_provider`: unknown
* `propagator`: unknown
* `resource`: unknown
* `tracer_provider`: unknown
* `instrumentation/development`: unknown
| +| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | unknown | | * `attribute_limits`: unknown
* `disabled`: unknown
* `distribution`: unknown
* `file_format`: unknown
* `log_level`: unknown
* `logger_provider`: unknown
* `meter_provider`: unknown
* `propagator`: unknown
* `resource`: unknown
* `tracer_provider`: unknown
* `instrumentation/development`: unknown
| | [`OpenTracingPropagator`](#opentracingpropagator) | unknown | | | | [`OtlpGrpcExporter`](#otlpgrpcexporter) | unknown | | * `compression`: unknown
* `endpoint`: unknown
* `headers`: unknown
* `headers_list`: unknown
* `timeout`: unknown
* `tls`: unknown
| | [`OtlpGrpcMetricExporter`](#otlpgrpcmetricexporter) | unknown | | * `compression`: unknown
* `default_histogram_aggregation`: unknown
* `endpoint`: unknown
* `headers`: unknown
* `headers_list`: unknown
* `temporality_preference`: unknown
* `timeout`: unknown
* `tls`: unknown
| @@ -5849,6 +5882,7 @@ Latest supported file format: `1.0.0-rc.1` | [`ConsoleExporter`](#consoleexporter) | supported | | | | [`ConsoleMetricExporter`](#consolemetricexporter) | supported | | * `default_histogram_aggregation`: not_implemented
* `temporality_preference`: ignored
| | [`DefaultAggregation`](#defaultaggregation) | supported | | | +| [`Distribution`](#distribution) | unknown | | | | [`DropAggregation`](#dropaggregation) | supported | | | | [`ExemplarFilter`](#exemplarfilter) | supported | | * `always_off`: supported
* `always_on`: supported
* `trace_based`: supported
| | [`ExplicitBucketHistogramAggregation`](#explicitbuckethistogramaggregation) | supported | | * `boundaries`: supported
* `record_min_max`: not_implemented
| @@ -5869,7 +5903,7 @@ Latest supported file format: `1.0.0-rc.1` | [`MetricReader`](#metricreader) | supported | | * `periodic`: supported
* `pull`: supported
| | [`NameStringValuePair`](#namestringvaluepair) | supported | | * `name`: supported
* `value`: supported
| | [`OpenCensusMetricProducer`](#opencensusmetricproducer) | ignored | | | -| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | supported | | * `attribute_limits`: supported
* `disabled`: supported
* `file_format`: supported
* `log_level`: not_implemented
* `logger_provider`: supported
* `meter_provider`: supported
* `propagator`: supported
* `resource`: supported
* `tracer_provider`: supported
* `instrumentation/development`: supported
| +| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | supported | | * `attribute_limits`: supported
* `disabled`: supported
* `distribution`: supported
* `file_format`: supported
* `log_level`: not_implemented
* `logger_provider`: supported
* `meter_provider`: supported
* `propagator`: supported
* `resource`: supported
* `tracer_provider`: supported
* `instrumentation/development`: supported
| | [`OpenTracingPropagator`](#opentracingpropagator) | supported | | | | [`OtlpGrpcExporter`](#otlpgrpcexporter) | supported | | * `compression`: supported
* `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `timeout`: supported
* `tls`: ignored
| | [`OtlpGrpcMetricExporter`](#otlpgrpcmetricexporter) | supported | | * `compression`: supported
* `default_histogram_aggregation`: supported
* `endpoint`: supported
* `headers`: supported
* `headers_list`: supported
* `temporality_preference`: supported
* `timeout`: supported
* `tls`: ignored
| @@ -5962,6 +5996,7 @@ Latest supported file format: `1.0.0-rc.2` | [`ConsoleExporter`](#consoleexporter) | unknown | | | | [`ConsoleMetricExporter`](#consolemetricexporter) | unknown | | * `default_histogram_aggregation`: unknown
* `temporality_preference`: unknown
| | [`DefaultAggregation`](#defaultaggregation) | unknown | | | +| [`Distribution`](#distribution) | unknown | | | | [`DropAggregation`](#dropaggregation) | unknown | | | | [`ExemplarFilter`](#exemplarfilter) | unknown | | * `always_off`: unknown
* `always_on`: unknown
* `trace_based`: unknown
| | [`ExplicitBucketHistogramAggregation`](#explicitbuckethistogramaggregation) | unknown | | * `boundaries`: unknown
* `record_min_max`: unknown
| @@ -5982,7 +6017,7 @@ Latest supported file format: `1.0.0-rc.2` | [`MetricReader`](#metricreader) | unknown | | * `periodic`: unknown
* `pull`: unknown
| | [`NameStringValuePair`](#namestringvaluepair) | unknown | | * `name`: unknown
* `value`: unknown
| | [`OpenCensusMetricProducer`](#opencensusmetricproducer) | unknown | | | -| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | unknown | | * `attribute_limits`: unknown
* `disabled`: unknown
* `file_format`: unknown
* `log_level`: unknown
* `logger_provider`: unknown
* `meter_provider`: unknown
* `propagator`: unknown
* `resource`: unknown
* `tracer_provider`: unknown
* `instrumentation/development`: unknown
| +| [`OpenTelemetryConfiguration`](#opentelemetryconfiguration) | unknown | | * `attribute_limits`: unknown
* `disabled`: unknown
* `distribution`: unknown
* `file_format`: unknown
* `log_level`: unknown
* `logger_provider`: unknown
* `meter_provider`: unknown
* `propagator`: unknown
* `resource`: unknown
* `tracer_provider`: unknown
* `instrumentation/development`: unknown
| | [`OpenTracingPropagator`](#opentracingpropagator) | unknown | | | | [`OtlpGrpcExporter`](#otlpgrpcexporter) | unknown | | * `compression`: unknown
* `endpoint`: unknown
* `headers`: unknown
* `headers_list`: unknown
* `timeout`: unknown
* `tls`: unknown
| | [`OtlpGrpcMetricExporter`](#otlpgrpcmetricexporter) | unknown | | * `compression`: unknown
* `default_histogram_aggregation`: unknown
* `endpoint`: unknown
* `headers`: unknown
* `headers_list`: unknown
* `temporality_preference`: unknown
* `timeout`: unknown
* `tls`: unknown
| diff --git a/schema/meta_schema_language_cpp.yaml b/schema/meta_schema_language_cpp.yaml index 0eae47f5..32305f25 100644 --- a/schema/meta_schema_language_cpp.yaml +++ b/schema/meta_schema_language_cpp.yaml @@ -48,6 +48,9 @@ typeSupportStatuses: - type: DefaultAggregation status: supported propertyOverrides: [] + - type: Distribution + status: unknown + propertyOverrides: [] - type: DropAggregation status: supported propertyOverrides: [] diff --git a/schema/meta_schema_language_go.yaml b/schema/meta_schema_language_go.yaml index af196f29..c3882c13 100644 --- a/schema/meta_schema_language_go.yaml +++ b/schema/meta_schema_language_go.yaml @@ -48,6 +48,9 @@ typeSupportStatuses: - type: DefaultAggregation status: unknown propertyOverrides: [] + - type: Distribution + status: unknown + propertyOverrides: [] - type: DropAggregation status: unknown propertyOverrides: [] diff --git a/schema/meta_schema_language_java.yaml b/schema/meta_schema_language_java.yaml index ea8a83f7..9019c2ea 100644 --- a/schema/meta_schema_language_java.yaml +++ b/schema/meta_schema_language_java.yaml @@ -54,6 +54,9 @@ typeSupportStatuses: - type: DefaultAggregation status: supported propertyOverrides: [] + - type: Distribution + status: unknown + propertyOverrides: [] - type: DropAggregation status: supported propertyOverrides: [] diff --git a/schema/meta_schema_language_js.yaml b/schema/meta_schema_language_js.yaml index 535f1341..ec76dc44 100644 --- a/schema/meta_schema_language_js.yaml +++ b/schema/meta_schema_language_js.yaml @@ -48,6 +48,9 @@ typeSupportStatuses: - type: DefaultAggregation status: unknown propertyOverrides: [] + - type: Distribution + status: unknown + propertyOverrides: [] - type: DropAggregation status: unknown propertyOverrides: [] diff --git a/schema/opentelemetry_configuration.yaml b/schema/opentelemetry_configuration.yaml index 2d7050fa..0a3441d0 100644 --- a/schema/opentelemetry_configuration.yaml +++ b/schema/opentelemetry_configuration.yaml @@ -55,6 +55,14 @@ properties: description: | Configure instrumentation. defaultBehavior: instrumentation defaults are used + distribution: + $ref: "#/$defs/Distribution" + description: | + Defines configuration parameters specific to a particular OpenTelemetry distribution or vendor. + This section provides a standardized location for distribution-specific settings + that are not part of the OpenTelemetry configuration model. + It allows vendors to expose their own extensions and general configuration options. + defaultBehavior: distribution defaults are used required: - file_format $defs: @@ -92,3 +100,8 @@ $defs: $ref: resource.yaml ExperimentalInstrumentation: $ref: instrumentation.yaml + Distribution: + type: object + additionalProperties: + type: object + minProperties: 1