diff --git a/CHANGELOG.md b/CHANGELOG.md index 26792b2b..da3c3237 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ following the deprecation of OpenCensus compatibility in the specification ([#655](https://github.com/open-telemetry/opentelemetry-configuration/pull/655)) +* Add `attribute_value_depth_limit` to attribute, span, and log record limits + ([#702](https://github.com/open-telemetry/opentelemetry-configuration/pull/702)) ## v1.1.0 - 2026-06-05 diff --git a/examples/otel-sdk-config.yaml b/examples/otel-sdk-config.yaml index d31f990d..1fb5cf74 100644 --- a/examples/otel-sdk-config.yaml +++ b/examples/otel-sdk-config.yaml @@ -16,6 +16,7 @@ resource: value: unknown_service attribute_limits: attribute_value_length_limit: + attribute_value_depth_limit: 64 attribute_count_limit: 128 propagator: composite: @@ -39,6 +40,7 @@ tracer_provider: timeout: 10000 limits: attribute_value_length_limit: + attribute_value_depth_limit: 64 attribute_count_limit: 128 event_count_limit: 128 link_count_limit: 128 @@ -91,4 +93,5 @@ logger_provider: timeout: 10000 limits: attribute_value_length_limit: + attribute_value_depth_limit: 64 attribute_count_limit: 128 diff --git a/language-support-status.md b/language-support-status.md index c71a38b0..1e8e1bff 100644 --- a/language-support-status.md +++ b/language-support-status.md @@ -20,7 +20,7 @@ Latest supported file format: `1.0.0` | `Aggregation` | supported | | * `base2_exponential_bucket_histogram`: supported
* `default`: supported
* `drop`: supported
* `explicit_bucket_histogram`: supported
* `last_value`: supported
* `sum`: supported
| | `AlwaysOffSampler` | supported | | | | `AlwaysOnSampler` | supported | | | -| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `AttributeNameValue` | supported | | * `name`: supported
* `type`: supported
* `value`: supported
| | `AttributeType` | supported | | * `bool`: supported
* `bool_array`: supported
* `double`: supported
* `double_array`: supported
* `int`: supported
* `int_array`: supported
* `string`: supported
* `string_array`: supported
| | `B3MultiPropagator` | supported | | | @@ -47,7 +47,7 @@ Latest supported file format: `1.0.0` | `LastValueAggregation` | supported | | | | `LoggerProvider` | supported | | * `limits`: supported
* `processors`: supported
* `logger_configurator/development`: supported
| | `LogRecordExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| -| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `LogRecordProcessor` | supported | | * `batch`: supported
* `simple`: supported
* `event_to_span_event_bridge/development`: unknown
| | `MeterProvider` | supported | | * `exemplar_filter`: supported
* `readers`: supported
* `views`: supported
* `meter_configurator/development`: supported
| | `MetricProducer` | supported | | * `opencensus`: supported
| @@ -74,7 +74,7 @@ Latest supported file format: `1.0.0` | `SimpleSpanProcessor` | supported | | * `exporter`: supported
| | `SpanExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| | `SpanKind` | not_implemented | | * `client`: not_implemented
* `consumer`: not_implemented
* `internal`: not_implemented
* `producer`: not_implemented
* `server`: not_implemented
| -| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| +| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| | `SpanProcessor` | supported | | * `batch`: supported
* `simple`: supported
| | `SumAggregation` | supported | | | | `TextMapPropagator` | supported | | * `b3`: supported
* `b3multi`: supported
* `baggage`: supported
* `tracecontext`: supported
| @@ -141,7 +141,7 @@ Latest supported file format: `1.0.0` | `Aggregation` | unknown | | * `base2_exponential_bucket_histogram`: unknown
* `default`: unknown
* `drop`: unknown
* `explicit_bucket_histogram`: unknown
* `last_value`: unknown
* `sum`: unknown
| | `AlwaysOffSampler` | supported | | | | `AlwaysOnSampler` | supported | | | -| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `AttributeNameValue` | supported | | * `name`: supported
* `type`: supported
* `value`: supported
| | `AttributeType` | supported | | * `bool`: supported
* `bool_array`: supported
* `double`: supported
* `double_array`: supported
* `int`: supported
* `int_array`: supported
* `string`: supported
* `string_array`: supported
| | `B3MultiPropagator` | supported | | | @@ -168,7 +168,7 @@ Latest supported file format: `1.0.0` | `LastValueAggregation` | supported | | | | `LoggerProvider` | supported | | * `limits`: supported
* `processors`: supported
* `logger_configurator/development`: not_implemented
| | `LogRecordExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: not_implemented
| -| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `LogRecordProcessor` | supported | | * `batch`: supported
* `simple`: supported
* `event_to_span_event_bridge/development`: unknown
| | `MeterProvider` | supported | | * `exemplar_filter`: supported
* `readers`: supported
* `views`: supported
* `meter_configurator/development`: supported
| | `MetricProducer` | unknown | | * `opencensus`: unknown
| @@ -195,7 +195,7 @@ Latest supported file format: `1.0.0` | `SimpleSpanProcessor` | supported | | * `exporter`: supported
| | `SpanExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: not_implemented
| | `SpanKind` | unknown | | * `client`: unknown
* `consumer`: unknown
* `internal`: unknown
* `producer`: unknown
* `server`: unknown
| -| `SpanLimits` | unknown | | * `attribute_count_limit`: unknown
* `attribute_value_length_limit`: unknown
* `event_attribute_count_limit`: unknown
* `event_count_limit`: unknown
* `link_attribute_count_limit`: unknown
* `link_count_limit`: unknown
| +| `SpanLimits` | unknown | | * `attribute_count_limit`: unknown
* `attribute_value_depth_limit`: unknown
* `attribute_value_length_limit`: unknown
* `event_attribute_count_limit`: unknown
* `event_count_limit`: unknown
* `link_attribute_count_limit`: unknown
* `link_count_limit`: unknown
| | `SpanProcessor` | supported | | * `batch`: supported
* `simple`: supported
| | `SumAggregation` | unknown | | | | `TextMapPropagator` | supported | | * `b3`: supported
* `b3multi`: supported
* `baggage`: supported
* `tracecontext`: supported
| @@ -262,7 +262,7 @@ Latest supported file format: `1.0.0-rc.3` | `Aggregation` | supported | | * `base2_exponential_bucket_histogram`: supported
* `default`: supported
* `drop`: supported
* `explicit_bucket_histogram`: supported
* `last_value`: supported
* `sum`: supported
| | `AlwaysOffSampler` | supported | | | | `AlwaysOnSampler` | supported | | | -| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `AttributeNameValue` | supported | | * `name`: supported
* `type`: supported
* `value`: supported
| | `AttributeType` | supported | | * `bool`: supported
* `bool_array`: supported
* `double`: supported
* `double_array`: supported
* `int`: supported
* `int_array`: supported
* `string`: supported
* `string_array`: supported
| | `B3MultiPropagator` | supported | | | @@ -289,7 +289,7 @@ Latest supported file format: `1.0.0-rc.3` | `LastValueAggregation` | supported | | | | `LoggerProvider` | supported | | * `limits`: supported
* `processors`: supported
* `logger_configurator/development`: supported
| | `LogRecordExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| -| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `LogRecordProcessor` | supported | | * `batch`: supported
* `simple`: supported
* `event_to_span_event_bridge/development`: unknown
| | `MeterProvider` | supported | | * `exemplar_filter`: supported
* `readers`: supported
* `views`: supported
* `meter_configurator/development`: supported
| | `MetricProducer` | ignored | | * `opencensus`: ignored
| @@ -316,7 +316,7 @@ Latest supported file format: `1.0.0-rc.3` | `SimpleSpanProcessor` | supported | | * `exporter`: supported
| | `SpanExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| | `SpanKind` | supported | | * `client`: supported
* `consumer`: supported
* `internal`: supported
* `producer`: supported
* `server`: supported
| -| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| +| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| | `SpanProcessor` | supported | | * `batch`: supported
* `simple`: supported
| | `SumAggregation` | supported | | | | `TextMapPropagator` | supported | | * `b3`: supported
* `b3multi`: supported
* `baggage`: supported
* `tracecontext`: supported
| @@ -383,7 +383,7 @@ Latest supported file format: `1.0.0-rc.3` | `Aggregation` | supported | | * `base2_exponential_bucket_histogram`: supported
* `default`: supported
* `drop`: supported
* `explicit_bucket_histogram`: supported
* `last_value`: supported
* `sum`: supported
| | `AlwaysOffSampler` | supported | | | | `AlwaysOnSampler` | supported | | | -| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `AttributeNameValue` | supported | | * `name`: supported
* `type`: supported
* `value`: supported
| | `AttributeType` | supported | | * `bool`: supported
* `bool_array`: supported
* `double`: supported
* `double_array`: supported
* `int`: supported
* `int_array`: supported
* `string`: supported
* `string_array`: supported
| | `B3MultiPropagator` | supported | | | @@ -410,7 +410,7 @@ Latest supported file format: `1.0.0-rc.3` | `LastValueAggregation` | supported | | | | `LoggerProvider` | supported | | * `limits`: supported
* `processors`: supported
* `logger_configurator/development`: supported
| | `LogRecordExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| -| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `LogRecordProcessor` | supported | | * `batch`: supported
* `simple`: supported
* `event_to_span_event_bridge/development`: supported
| | `MeterProvider` | supported | | * `exemplar_filter`: supported
* `readers`: supported
* `views`: supported
* `meter_configurator/development`: supported
| | `MetricProducer` | supported | | * `opencensus`: supported
| @@ -437,7 +437,7 @@ Latest supported file format: `1.0.0-rc.3` | `SimpleSpanProcessor` | supported | | * `exporter`: supported
| | `SpanExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| | `SpanKind` | supported | | * `client`: supported
* `consumer`: supported
* `internal`: supported
* `producer`: supported
* `server`: supported
| -| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| +| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| | `SpanProcessor` | supported | | * `batch`: supported
* `simple`: supported
| | `SumAggregation` | supported | | | | `TextMapPropagator` | supported | | * `b3`: supported
* `b3multi`: supported
* `baggage`: supported
* `tracecontext`: supported
| @@ -504,7 +504,7 @@ Latest supported file format: `1.0.0-rc.2` | `Aggregation` | ignored | | * `base2_exponential_bucket_histogram`: ignored
* `default`: ignored
* `drop`: ignored
* `explicit_bucket_histogram`: ignored
* `last_value`: ignored
* `sum`: ignored
| | `AlwaysOffSampler` | supported | | | | `AlwaysOnSampler` | supported | | | -| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `AttributeLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `AttributeNameValue` | supported | | * `name`: supported
* `type`: not_implemented
* `value`: supported
| | `AttributeType` | not_implemented | | * `bool`: not_implemented
* `bool_array`: not_implemented
* `double`: not_implemented
* `double_array`: not_implemented
* `int`: not_implemented
* `int_array`: not_implemented
* `string`: not_implemented
* `string_array`: not_implemented
| | `B3MultiPropagator` | supported | | | @@ -531,7 +531,7 @@ Latest supported file format: `1.0.0-rc.2` | `LastValueAggregation` | ignored | | | | `LoggerProvider` | supported | | * `limits`: supported
* `processors`: supported
* `logger_configurator/development`: supported
| | `LogRecordExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| -| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
| +| `LogRecordLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
| | `LogRecordProcessor` | supported | | * `batch`: supported
* `simple`: supported
* `event_to_span_event_bridge/development`: unknown
| | `MeterProvider` | supported | | * `exemplar_filter`: supported
* `readers`: supported
* `views`: supported
* `meter_configurator/development`: supported
| | `MetricProducer` | not_implemented | | * `opencensus`: not_implemented
| @@ -558,7 +558,7 @@ Latest supported file format: `1.0.0-rc.2` | `SimpleSpanProcessor` | supported | | * `exporter`: supported
| | `SpanExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| | `SpanKind` | not_implemented | | * `client`: not_implemented
* `consumer`: not_implemented
* `internal`: not_implemented
* `producer`: not_implemented
* `server`: not_implemented
| -| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| +| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| | `SpanProcessor` | supported | | * `batch`: supported
* `simple`: supported
| | `SumAggregation` | ignored | | | | `TextMapPropagator` | supported | | * `b3`: supported
* `b3multi`: supported
* `baggage`: supported
* `tracecontext`: supported
| @@ -625,7 +625,7 @@ Latest supported file format: `1.0.0` | `Aggregation` | supported | | * `base2_exponential_bucket_histogram`: supported
* `default`: supported
* `drop`: supported
* `explicit_bucket_histogram`: supported
* `last_value`: supported
* `sum`: supported
| | `AlwaysOffSampler` | supported | | | | `AlwaysOnSampler` | supported | | | -| `AttributeLimits` | ignored | | * `attribute_count_limit`: ignored
* `attribute_value_length_limit`: ignored
| +| `AttributeLimits` | ignored | | * `attribute_count_limit`: ignored
* `attribute_value_depth_limit`: ignored
* `attribute_value_length_limit`: ignored
| | `AttributeNameValue` | supported | | * `name`: supported
* `type`: supported
* `value`: supported
| | `AttributeType` | supported | | * `bool`: supported
* `bool_array`: supported
* `double`: supported
* `double_array`: supported
* `int`: supported
* `int_array`: supported
* `string`: supported
* `string_array`: supported
| | `B3MultiPropagator` | supported | | | @@ -652,7 +652,7 @@ Latest supported file format: `1.0.0` | `LastValueAggregation` | supported | | | | `LoggerProvider` | supported | | * `limits`: supported
* `processors`: supported
* `logger_configurator/development`: supported
| | `LogRecordExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| -| `LogRecordLimits` | ignored | | * `attribute_count_limit`: ignored
* `attribute_value_length_limit`: ignored
| +| `LogRecordLimits` | ignored | | * `attribute_count_limit`: ignored
* `attribute_value_depth_limit`: ignored
* `attribute_value_length_limit`: ignored
| | `LogRecordProcessor` | supported | | * `batch`: supported
* `simple`: supported
* `event_to_span_event_bridge/development`: supported
| | `MeterProvider` | supported | | * `exemplar_filter`: supported
* `readers`: supported
* `views`: supported
* `meter_configurator/development`: supported
| | `MetricProducer` | ignored | | * `opencensus`: ignored
| @@ -679,7 +679,7 @@ Latest supported file format: `1.0.0` | `SimpleSpanProcessor` | supported | | * `exporter`: supported
| | `SpanExporter` | supported | | * `console`: supported
* `otlp_grpc`: supported
* `otlp_http`: supported
* `otlp_file/development`: supported
| | `SpanKind` | supported | | * `client`: supported
* `consumer`: supported
* `internal`: supported
* `producer`: supported
* `server`: supported
| -| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| +| `SpanLimits` | supported | | * `attribute_count_limit`: supported
* `attribute_value_depth_limit`: not_implemented
* `attribute_value_length_limit`: supported
* `event_attribute_count_limit`: supported
* `event_count_limit`: supported
* `link_attribute_count_limit`: supported
* `link_count_limit`: supported
| | `SpanProcessor` | supported | | * `batch`: supported
* `simple`: supported
| | `SumAggregation` | supported | | | | `TextMapPropagator` | supported | | * `b3`: supported
* `b3multi`: supported
* `baggage`: supported
* `tracecontext`: supported
| diff --git a/opentelemetry_configuration.json b/opentelemetry_configuration.json index 7a8e7975..d2a77d1c 100644 --- a/opentelemetry_configuration.json +++ b/opentelemetry_configuration.json @@ -114,6 +114,14 @@ "minimum": 0, "description": "Configure max attribute value size. \nValue must be non-negative.\nIf omitted or null, there is no limit.\n" }, + "attribute_value_depth_limit": { + "type": [ + "integer", + "null" + ], + "minimum": 1, + "description": "Configure the maximum attribute value depth for nested array and map values.\nDepth starts at 1 for the top-level attribute value and increments when descending into array elements or map values.\nArray or map values deeper than the limit are replaced with an empty value.\nValue must be positive.\nIf omitted or null, 64 is used.\n" + }, "attribute_count_limit": { "type": [ "integer", @@ -1591,6 +1599,14 @@ "minimum": 0, "description": "Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. \nValue must be non-negative.\nIf omitted or null, there is no limit.\n" }, + "attribute_value_depth_limit": { + "type": [ + "integer", + "null" + ], + "minimum": 1, + "description": "Configure the maximum attribute value depth for nested array and map values. Overrides .attribute_limits.attribute_value_depth_limit.\nDepth starts at 1 for the top-level attribute value and increments when descending into array elements or map values.\nArray or map values deeper than the limit are replaced with an empty value.\nValue must be positive.\nIf omitted or null, 64 is used.\n" + }, "attribute_count_limit": { "type": [ "integer", @@ -2319,6 +2335,14 @@ "minimum": 0, "description": "Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. \nValue must be non-negative.\nIf omitted or null, there is no limit.\n" }, + "attribute_value_depth_limit": { + "type": [ + "integer", + "null" + ], + "minimum": 1, + "description": "Configure the maximum attribute value depth for nested array and map values. Overrides .attribute_limits.attribute_value_depth_limit.\nDepth starts at 1 for the top-level attribute value and increments when descending into array elements or map values.\nArray or map values deeper than the limit are replaced with an empty value.\nValue must be positive.\nIf omitted or null, 64 is used.\n" + }, "attribute_count_limit": { "type": [ "integer", diff --git a/schema/logger_provider.yaml b/schema/logger_provider.yaml index ccbea082..356a16b3 100644 --- a/schema/logger_provider.yaml +++ b/schema/logger_provider.yaml @@ -116,6 +116,17 @@ $defs: Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. Value must be non-negative. defaultBehavior: there is no limit + attribute_value_depth_limit: + type: + - integer + - "null" + minimum: 1 + description: | + Configure the maximum attribute value depth for nested array and map values. Overrides .attribute_limits.attribute_value_depth_limit. + Depth starts at 1 for the top-level attribute value and increments when descending into array elements or map values. + Array or map values deeper than the limit are replaced with an empty value. + Value must be positive. + defaultBehavior: 64 is used attribute_count_limit: type: - integer diff --git a/schema/meta_schema_language_cpp.yaml b/schema/meta_schema_language_cpp.yaml index 05c9c61c..85ab59c5 100644 --- a/schema/meta_schema_language_cpp.yaml +++ b/schema/meta_schema_language_cpp.yaml @@ -11,7 +11,9 @@ typeSupportStatuses: propertyOverrides: [] - type: AttributeLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: AttributeNameValue status: supported propertyOverrides: [] @@ -92,7 +94,9 @@ typeSupportStatuses: propertyOverrides: [] - type: LogRecordLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: LogRecordProcessor status: supported propertyOverrides: @@ -177,7 +181,9 @@ typeSupportStatuses: enumOverrides: [] - type: SpanLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: SpanProcessor status: supported propertyOverrides: [] diff --git a/schema/meta_schema_language_go.yaml b/schema/meta_schema_language_go.yaml index da49efe9..09331776 100644 --- a/schema/meta_schema_language_go.yaml +++ b/schema/meta_schema_language_go.yaml @@ -11,7 +11,9 @@ typeSupportStatuses: propertyOverrides: [] - type: AttributeLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: AttributeNameValue status: supported propertyOverrides: [] @@ -100,7 +102,9 @@ typeSupportStatuses: status: not_implemented - type: LogRecordLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: LogRecordProcessor status: supported propertyOverrides: diff --git a/schema/meta_schema_language_java.yaml b/schema/meta_schema_language_java.yaml index 3d90d147..5aadb2fb 100644 --- a/schema/meta_schema_language_java.yaml +++ b/schema/meta_schema_language_java.yaml @@ -11,7 +11,9 @@ typeSupportStatuses: propertyOverrides: [] - type: AttributeLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: AttributeNameValue status: supported propertyOverrides: [] @@ -98,7 +100,9 @@ typeSupportStatuses: propertyOverrides: [] - type: LogRecordLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: LogRecordProcessor status: supported propertyOverrides: @@ -193,7 +197,9 @@ typeSupportStatuses: enumOverrides: [] - type: SpanLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: SpanProcessor status: supported propertyOverrides: [] diff --git a/schema/meta_schema_language_js.yaml b/schema/meta_schema_language_js.yaml index 3b59889e..e1a880ca 100644 --- a/schema/meta_schema_language_js.yaml +++ b/schema/meta_schema_language_js.yaml @@ -11,7 +11,9 @@ typeSupportStatuses: propertyOverrides: [] - type: AttributeLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: AttributeNameValue status: supported propertyOverrides: [] @@ -96,7 +98,9 @@ typeSupportStatuses: propertyOverrides: [] - type: LogRecordLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: LogRecordProcessor status: supported propertyOverrides: [] @@ -179,7 +183,9 @@ typeSupportStatuses: enumOverrides: [] - type: SpanLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: SpanProcessor status: supported propertyOverrides: [] diff --git a/schema/meta_schema_language_php.yaml b/schema/meta_schema_language_php.yaml index bdea4257..d85bb409 100644 --- a/schema/meta_schema_language_php.yaml +++ b/schema/meta_schema_language_php.yaml @@ -11,7 +11,9 @@ typeSupportStatuses: propertyOverrides: [] - type: AttributeLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: AttributeNameValue status: supported propertyOverrides: @@ -100,7 +102,9 @@ typeSupportStatuses: propertyOverrides: [] - type: LogRecordLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: LogRecordProcessor status: supported propertyOverrides: @@ -213,7 +217,9 @@ typeSupportStatuses: enumOverrides: [] - type: SpanLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: SpanProcessor status: supported propertyOverrides: [] diff --git a/schema/meta_schema_language_python.yaml b/schema/meta_schema_language_python.yaml index 4e5fb13a..608dccca 100644 --- a/schema/meta_schema_language_python.yaml +++ b/schema/meta_schema_language_python.yaml @@ -173,7 +173,9 @@ typeSupportStatuses: enumOverrides: [] - type: SpanLimits status: supported - propertyOverrides: [] + propertyOverrides: + - property: attribute_value_depth_limit + status: not_implemented - type: SpanProcessor status: supported propertyOverrides: [] diff --git a/schema/opentelemetry_configuration.yaml b/schema/opentelemetry_configuration.yaml index 0a3441d0..b33bdccd 100644 --- a/schema/opentelemetry_configuration.yaml +++ b/schema/opentelemetry_configuration.yaml @@ -79,6 +79,17 @@ $defs: Configure max attribute value size. Value must be non-negative. defaultBehavior: there is no limit + attribute_value_depth_limit: + type: + - integer + - "null" + minimum: 1 + description: | + Configure the maximum attribute value depth for nested array and map values. + Depth starts at 1 for the top-level attribute value and increments when descending into array elements or map values. + Array or map values deeper than the limit are replaced with an empty value. + Value must be positive. + defaultBehavior: 64 is used attribute_count_limit: type: - integer diff --git a/schema/tracer_provider.yaml b/schema/tracer_provider.yaml index e29e6110..4c306542 100644 --- a/schema/tracer_provider.yaml +++ b/schema/tracer_provider.yaml @@ -469,6 +469,17 @@ $defs: Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. Value must be non-negative. defaultBehavior: there is no limit + attribute_value_depth_limit: + type: + - integer + - "null" + minimum: 1 + description: | + Configure the maximum attribute value depth for nested array and map values. Overrides .attribute_limits.attribute_value_depth_limit. + Depth starts at 1 for the top-level attribute value and increments when descending into array elements or map values. + Array or map values deeper than the limit are replaced with an empty value. + Value must be positive. + defaultBehavior: 64 is used attribute_count_limit: type: - integer diff --git a/snippets/LogRecordLimits_kitchen_sink.yaml b/snippets/LogRecordLimits_kitchen_sink.yaml index bc0f2b25..858c9009 100644 --- a/snippets/LogRecordLimits_kitchen_sink.yaml +++ b/snippets/LogRecordLimits_kitchen_sink.yaml @@ -2,6 +2,7 @@ file_format: "1.1" attribute_limits: attribute_value_length_limit: 2048 + attribute_value_depth_limit: 32 attribute_count_limit: 64 logger_provider: @@ -11,6 +12,7 @@ logger_provider: console: limits: # SNIPPET_START - # .logger_provider.limits take priority over general .attribute_limits. In this contrived example, attribute_value_length_limit is set to 4096, attribute_count_limit is set to 128, overriding the values from general .attribute_limits. + # .logger_provider.limits take priority over general .attribute_limits. In this contrived example, attribute_value_length_limit is set to 4096, attribute_value_depth_limit is set to 64, and attribute_count_limit is set to 128, overriding the values from general .attribute_limits. attribute_count_limit: 128 - attribute_value_length_limit: 4096 \ No newline at end of file + attribute_value_depth_limit: 64 + attribute_value_length_limit: 4096 diff --git a/snippets/SpanLimits_kitchen_sink.yaml b/snippets/SpanLimits_kitchen_sink.yaml index 182f62e2..8960bb26 100644 --- a/snippets/SpanLimits_kitchen_sink.yaml +++ b/snippets/SpanLimits_kitchen_sink.yaml @@ -2,6 +2,7 @@ file_format: "1.1" attribute_limits: attribute_value_length_limit: 2048 + attribute_value_depth_limit: 32 attribute_count_limit: 64 tracer_provider: @@ -11,10 +12,11 @@ tracer_provider: console: limits: # SNIPPET_START - # .tracer_provider.limits take priority over general .attribute_limits. In this contrived example, attribute_value_length_limit is set to 4096, attribute_count_limit is set to 128, overriding the values from general .attribute_limits. + # .tracer_provider.limits take priority over general .attribute_limits. In this contrived example, attribute_value_length_limit is set to 4096, attribute_value_depth_limit is set to 64, and attribute_count_limit is set to 128, overriding the values from general .attribute_limits. attribute_count_limit: 128 + attribute_value_depth_limit: 64 attribute_value_length_limit: 4096 event_attribute_count_limit: 128 event_count_limit: 128 link_attribute_count_limit: 128 - link_count_limit: 128 \ No newline at end of file + link_count_limit: 128