Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
3 changes: 3 additions & 0 deletions examples/otel-sdk-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
Expand Down Expand Up @@ -91,4 +93,5 @@ logger_provider:
timeout: 10000
limits:
attribute_value_length_limit:
attribute_value_depth_limit: 64
attribute_count_limit: 128
36 changes: 18 additions & 18 deletions language-support-status.md

Large diffs are not rendered by default.

24 changes: 24 additions & 0 deletions opentelemetry_configuration.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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",
Expand Down
11 changes: 11 additions & 0 deletions schema/logger_provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 9 additions & 3 deletions schema/meta_schema_language_cpp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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: []
Expand Down
8 changes: 6 additions & 2 deletions schema/meta_schema_language_go.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
Expand Down Expand Up @@ -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:
Expand Down
12 changes: 9 additions & 3 deletions schema/meta_schema_language_java.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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: []
Expand Down
12 changes: 9 additions & 3 deletions schema/meta_schema_language_js.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
Expand Down Expand Up @@ -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: []
Expand Down Expand Up @@ -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: []
Expand Down
12 changes: 9 additions & 3 deletions schema/meta_schema_language_php.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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: []
Expand Down
4 changes: 3 additions & 1 deletion schema/meta_schema_language_python.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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: []
Expand Down
11 changes: 11 additions & 0 deletions schema/opentelemetry_configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 11 additions & 0 deletions schema/tracer_provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 4 additions & 2 deletions snippets/LogRecordLimits_kitchen_sink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
attribute_value_depth_limit: 64
attribute_value_length_limit: 4096
6 changes: 4 additions & 2 deletions snippets/SpanLimits_kitchen_sink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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
link_count_limit: 128
Loading