Skip to content
Merged
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
57 changes: 57 additions & 0 deletions examples/kitchen-sink.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,33 @@ meter_provider:
producers:
- # Configure metric producer to be opencensus.
opencensus:
# Configure cardinality limits.
cardinality_limits:
# Configure default cardinality limit for all instrument types.
# Instrument-specific cardinality limits take priority.
# If omitted or null, 2000 is used.
default: 2000
# Configure default cardinality limit for counter instruments.
# If omitted or null, the value from .default is used.
counter: 2000
# Configure default cardinality limit for gauge instruments.
# If omitted or null, the value from .default is used.
gauge: 2000
# Configure default cardinality limit for histogram instruments.
# If omitted or null, the value from .default is used.
histogram: 2000
# Configure default cardinality limit for observable_counter instruments.
# If omitted or null, the value from .default is used.
observable_counter: 2000
# Configure default cardinality limit for observable_gauge instruments.
# If omitted or null, the value from .default is used.
observable_gauge: 2000
# Configure default cardinality limit for observable_up_down_counter instruments.
# If omitted or null, the value from .default is used.
observable_up_down_counter: 2000
# Configure default cardinality limit for up_down_counter instruments.
# If omitted or null, the value from .default is used.
up_down_counter: 2000
- # Configure a periodic metric reader.
periodic:
# Configure delay interval (in milliseconds) between start of two consecutive exports.
Expand Down Expand Up @@ -272,6 +299,33 @@ meter_provider:
producers:
- # Configure metric producer to be prometheus.
prometheus:
# Configure cardinality limits.
cardinality_limits:
# Configure default cardinality limit for all instrument types.
# Instrument-specific cardinality limits take priority.
# If omitted or null, 2000 is used.
default: 2000
# Configure default cardinality limit for counter instruments.
# If omitted or null, the value from .default is used.
counter: 2000
# Configure default cardinality limit for gauge instruments.
# If omitted or null, the value from .default is used.
gauge: 2000
# Configure default cardinality limit for histogram instruments.
# If omitted or null, the value from .default is used.
histogram: 2000
# Configure default cardinality limit for observable_counter instruments.
# If omitted or null, the value from .default is used.
observable_counter: 2000
# Configure default cardinality limit for observable_gauge instruments.
# If omitted or null, the value from .default is used.
observable_gauge: 2000
# Configure default cardinality limit for observable_up_down_counter instruments.
# If omitted or null, the value from .default is used.
observable_up_down_counter: 2000
# Configure default cardinality limit for up_down_counter instruments.
# If omitted or null, the value from .default is used.
up_down_counter: 2000
- # Configure a periodic metric reader.
periodic:
# Configure exporter.
Expand Down Expand Up @@ -424,6 +478,9 @@ meter_provider:
# Configure record min and max.
# If omitted or null, true is used.
record_min_max: true
# Configure the aggregation cardinality limit.
# If omitted or null, the metric reader's default cardinality limit is used.
aggregation_cardinality_limit: 2000
# Configure attribute keys retained in the resulting stream(s).
attribute_keys:
# Configure list of attribute keys to include in the resulting stream(s). All other attributes are dropped.
Expand Down
48 changes: 48 additions & 0 deletions schema/meter_provider.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
"items": {
"$ref": "#/$defs/MetricProducer"
}
},
"cardinality_limits": {
"$ref": "#/$defs/CardinalityLimits"
}
},
"required": [
Expand All @@ -70,12 +73,53 @@
"items": {
"$ref": "#/$defs/MetricProducer"
}
},
"cardinality_limits": {
"$ref": "#/$defs/CardinalityLimits"
}
},
"required": [
"exporter"
]
},
"CardinalityLimits": {
"type": "object",
"additionalProperties": false,
"properties": {
"default": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"counter": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"gauge": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"histogram": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"observable_counter": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"observable_gauge": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"observable_up_down_counter": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"up_down_counter": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
}
}
},
"PushMetricExporter": {
"type": "object",
"additionalProperties": true,
Expand Down Expand Up @@ -352,6 +396,10 @@
"aggregation": {
"$ref": "#/$defs/Aggregation"
},
"aggregation_cardinality_limit": {
"type": ["integer", "null"],
"exclusiveMinimum": 0
},
"attribute_keys": {
"$ref": "common.json#/$defs/IncludeExclude"
}
Expand Down
46 changes: 46 additions & 0 deletions schema/type_descriptions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@
property_descriptions:
exporter: Configure exporter.
producers: Configure metric producers.
cardinality_limits: Configure cardinality limits.
path_patterns:
- .meter_provider.readers[].pull

Expand All @@ -408,6 +409,7 @@
If omitted or null, 30000 is used.
exporter: Configure exporter.
producers: Configure metric producers.
cardinality_limits: Configure cardinality limits.
path_patterns:
- .meter_provider.readers[].periodic

Expand All @@ -419,6 +421,46 @@
- .meter_provider.readers[].pull.producers[]
- .meter_provider.readers[].periodic.producers[]

- type: CardinalityLimits
property_descriptions:
default: >
Configure default cardinality limit for all instrument types.

Instrument-specific cardinality limits take priority.

If omitted or null, 2000 is used.
counter: >
Configure default cardinality limit for counter instruments.

If omitted or null, the value from .default is used.
gauge: >
Configure default cardinality limit for gauge instruments.

If omitted or null, the value from .default is used.
histogram: >
Configure default cardinality limit for histogram instruments.

If omitted or null, the value from .default is used.
observable_counter: >
Configure default cardinality limit for observable_counter instruments.

If omitted or null, the value from .default is used.
observable_gauge: >
Configure default cardinality limit for observable_gauge instruments.

If omitted or null, the value from .default is used.
observable_up_down_counter: >
Configure default cardinality limit for observable_up_down_counter instruments.

If omitted or null, the value from .default is used.
up_down_counter: >
Configure default cardinality limit for up_down_counter instruments.

If omitted or null, the value from .default is used.
path_patterns:
- .meter_provider.readers[].pull.cardinality_limits
- .meter_provider.readers[].periodic.cardinality_limits

- type: MetricExporter
property_descriptions:
prometheus: Configure exporter to be prometheus.
Expand Down Expand Up @@ -533,6 +575,10 @@
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.
aggregation_cardinality_limit: >
Configure the aggregation cardinality limit.

If omitted or null, the metric reader's default cardinality limit is used.
attribute_keys: >
Configure attribute keys retained in the resulting stream(s).
path_patterns:
Expand Down
Loading