Overview
June 2, 2026 ยท View on GitHub
This document is an auto-generated view of the declarative configuration JSON schema and meta schema meant for improved consumability by humans.
- Types contains descriptions of all types and properties, with convenient linking between type references. OpenTelemetryConfiguration is the root type and is a good starting point.
- Experimental Types same as Types but for experimental types subject to breaking changes.
- SDK Extension Plugins lists all the SDK extension plugin points.
See also language support status for all details about each language's support in a single place.
Types
Aggregation
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
base2_exponential_bucket_histogram | Base2ExponentialBucketHistogramAggregation | false | If omitted, ignore. | No constraints. | Configures the stream to collect data for the exponential histogram metric point, which uses a base-2 exponential formula to determine bucket boundaries and an integer scale parameter to control resolution. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#base2-exponential-bucket-histogram-aggregation for details. |
default | DefaultAggregation | false | If omitted, ignore. | No constraints. | Configures the stream to use the instrument kind to select an aggregation and advisory parameters to influence aggregation configuration parameters. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#default-aggregation for details. |
drop | DropAggregation | false | If omitted, ignore. | No constraints. | Configures the stream to ignore/drop all instrument measurements. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#drop-aggregation for details. |
explicit_bucket_histogram | ExplicitBucketHistogramAggregation | false | If omitted, ignore. | No constraints. | Configures the stream to collect data for the histogram metric point using a set of explicit boundary values for histogram bucketing. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#explicit-bucket-histogram-aggregation for details |
last_value | LastValueAggregation | false | If omitted, ignore. | No constraints. | Configures the stream to collect data using the last measurement. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#last-value-aggregation for details. |
sum | SumAggregation | false | If omitted, ignore. | No constraints. | Configures the stream to collect the arithmetic sum of measurement values. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#sum-aggregation for details. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
base2_exponential_bucket_histogram | supported | unknown | supported | unknown | ignored |
default | supported | unknown | supported | unknown | ignored |
drop | supported | unknown | supported | unknown | ignored |
explicit_bucket_histogram | supported | unknown | supported | unknown | ignored |
last_value | supported | unknown | supported | unknown | ignored |
sum | supported | unknown | supported | unknown | ignored |
Constraints:
additionalProperties:falseminProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"maxProperties": 1,
"properties": {
"default": {
"$ref": "#/$defs/DefaultAggregation",
"description": "Configures the stream to use the instrument kind to select an aggregation and advisory parameters to influence aggregation configuration parameters. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#default-aggregation for details.\nIf omitted, ignore.\n"
},
"drop": {
"$ref": "#/$defs/DropAggregation",
"description": "Configures the stream to ignore/drop all instrument measurements. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#drop-aggregation for details.\nIf omitted, ignore.\n"
},
"explicit_bucket_histogram": {
"$ref": "#/$defs/ExplicitBucketHistogramAggregation",
"description": "Configures the stream to collect data for the histogram metric point using a set of explicit boundary values for histogram bucketing. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#explicit-bucket-histogram-aggregation for details\nIf omitted, ignore.\n"
},
"base2_exponential_bucket_histogram": {
"$ref": "#/$defs/Base2ExponentialBucketHistogramAggregation",
"description": "Configures the stream to collect data for the exponential histogram metric point, which uses a base-2 exponential formula to determine bucket boundaries and an integer scale parameter to control resolution. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#base2-exponential-bucket-histogram-aggregation for details.\nIf omitted, ignore.\n"
},
"last_value": {
"$ref": "#/$defs/LastValueAggregation",
"description": "Configures the stream to collect data using the last measurement. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#last-value-aggregation for details.\nIf omitted, ignore.\n"
},
"sum": {
"$ref": "#/$defs/SumAggregation",
"description": "Configures the stream to collect the arithmetic sum of measurement values. See https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#sum-aggregation for details.\nIf omitted, ignore.\n"
}
}
}
AlwaysOffSampler
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
AlwaysOnSampler
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
AttributeLimits
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attribute_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max attribute count. Value must be non-negative. |
attribute_value_length_limit | one of: * integer* null | false | If omitted or null, there is no limit. | * minimum: 0 | Configure max attribute value size. Value must be non-negative. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attribute_count_limit | supported | supported | supported | unknown | supported |
attribute_value_length_limit | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"attribute_value_length_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max attribute value size. \nValue must be non-negative.\nIf omitted or null, there is no limit.\n"
},
"attribute_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max attribute count. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
}
}
}
AttributeNameValue
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
name | string | true | Property is required and must be non-null. | No constraints. | The attribute name. |
type | AttributeType | false | If omitted, string is used. | No constraints. | The attribute type. |
value | one of: * string* number* boolean* null* array of string* array of boolean* array of number | true | Property must be present, but if null the entry is ignored. | No constraints. | The attribute value. The type of value must match .type. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
name | supported | supported | supported | unknown | supported |
type | supported | supported | supported | unknown | not_implemented |
value | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["name","value"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The attribute name.\nProperty is required and must be non-null.\n"
},
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
},
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
{
"type": "array",
"items": {
"type": "boolean"
},
"minItems": 1
},
{
"type": "array",
"items": {
"type": "number"
},
"minItems": 1
}
],
"description": "The attribute value.\nThe type of value must match .type.\nProperty must be present, but if null the entry is ignored.\n"
},
"type": {
"$ref": "#/$defs/AttributeType",
"description": "The attribute type.\nValues include:\n* bool: Boolean attribute value.\n* bool_array: Boolean array attribute value.\n* double: Double attribute value.\n* double_array: Double array attribute value.\n* int: Integer attribute value.\n* int_array: Integer array attribute value.\n* string: String attribute value.\n* string_array: String array attribute value.\nIf omitted, string is used.\n"
}
},
"required": [
"name",
"value"
]
}
AttributeType
This is a enum type.
| Value | Description |
|---|---|
bool | Boolean attribute value. |
bool_array | Boolean array attribute value. |
double | Double attribute value. |
double_array | Double array attribute value. |
int | Integer attribute value. |
int_array | Integer array attribute value. |
string | String attribute value. |
string_array | String array attribute value. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
bool | supported | supported | supported | unknown | not_implemented |
bool_array | supported | supported | supported | unknown | not_implemented |
double | supported | supported | supported | unknown | not_implemented |
double_array | supported | supported | supported | unknown | not_implemented |
int | supported | supported | supported | unknown | not_implemented |
int_array | supported | supported | supported | unknown | not_implemented |
string | supported | supported | supported | unknown | not_implemented |
string_array | supported | supported | supported | unknown | not_implemented |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"string",
"bool",
"int",
"double",
"string_array",
"bool_array",
"int_array",
"double_array"
]
}
B3MultiPropagator
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
B3Propagator
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
BaggagePropagator
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
Base2ExponentialBucketHistogramAggregation
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
max_scale | one of: * integer* null | false | If omitted or null, 20 is used. | * minimum: -10* maximum: 20 | Configure the max scale factor. |
max_size | one of: * integer* null | false | If omitted or null, 160 is used. | * minimum: 2 | Configure the maximum number of buckets in each of the positive and negative ranges, not counting the special zero bucket. |
record_min_max | one of: * boolean* null | false | If omitted or null, true is used. | No constraints. | Configure whether or not to record min and max. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
max_scale | supported | unknown | supported | unknown | not_implemented |
max_size | supported | unknown | supported | unknown | not_implemented |
record_min_max | supported | unknown | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"max_scale": {
"type": [
"integer",
"null"
],
"minimum": -10,
"maximum": 20,
"description": "Configure the max scale factor.\nIf omitted or null, 20 is used.\n"
},
"max_size": {
"type": [
"integer",
"null"
],
"minimum": 2,
"description": "Configure the maximum number of buckets in each of the positive and negative ranges, not counting the special zero bucket.\nIf omitted or null, 160 is used.\n"
},
"record_min_max": {
"type": [
"boolean",
"null"
],
"description": "Configure whether or not to record min and max.\nIf omitted or null, true is used.\n"
}
}
}
BatchLogRecordProcessor
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
export_timeout | one of: * integer* null | false | If omitted or null, 30000 is used. | * minimum: 0 | Configure maximum allowed time (in milliseconds) to export data. Value must be non-negative. A value of 0 indicates no limit (infinity). |
exporter | LogRecordExporter | true | Property is required and must be non-null. | No constraints. | Configure exporter. |
max_export_batch_size | one of: * integer* null | false | If omitted or null, 512 is used. | * exclusiveMinimum: 0 | Configure maximum batch size. Value must be positive. |
max_queue_size | one of: * integer* null | false | If omitted or null, 2048 is used. | * exclusiveMinimum: 0 | Configure maximum queue size. Value must be positive. |
schedule_delay | one of: * integer* null | false | If omitted or null, 1000 is used. | * minimum: 0 | Configure delay interval (in milliseconds) between two consecutive exports. Value must be non-negative. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
export_timeout | supported | supported | supported | unknown | supported |
exporter | supported | supported | supported | unknown | supported |
max_export_batch_size | supported | supported | supported | unknown | supported |
max_queue_size | supported | supported | supported | unknown | supported |
schedule_delay | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["exporter"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"schedule_delay": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure delay interval (in milliseconds) between two consecutive exports. \nValue must be non-negative.\nIf omitted or null, 1000 is used.\n"
},
"export_timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure maximum allowed time (in milliseconds) to export data. \nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 30000 is used.\n"
},
"max_queue_size": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure maximum queue size. Value must be positive.\nIf omitted or null, 2048 is used.\n"
},
"max_export_batch_size": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure maximum batch size. Value must be positive.\nIf omitted or null, 512 is used.\n"
},
"exporter": {
"$ref": "#/$defs/LogRecordExporter",
"description": "Configure exporter.\nProperty is required and must be non-null.\n"
}
},
"required": [
"exporter"
]
}
BatchSpanProcessor
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
export_timeout | one of: * integer* null | false | If omitted or null, 30000 is used. | * minimum: 0 | Configure maximum allowed time (in milliseconds) to export data. Value must be non-negative. A value of 0 indicates no limit (infinity). |
exporter | SpanExporter | true | Property is required and must be non-null. | No constraints. | Configure exporter. |
max_export_batch_size | one of: * integer* null | false | If omitted or null, 512 is used. | * exclusiveMinimum: 0 | Configure maximum batch size. Value must be positive. |
max_queue_size | one of: * integer* null | false | If omitted or null, 2048 is used. | * exclusiveMinimum: 0 | Configure maximum queue size. Value must be positive. |
schedule_delay | one of: * integer* null | false | If omitted or null, 5000 is used. | * minimum: 0 | Configure delay interval (in milliseconds) between two consecutive exports. Value must be non-negative. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
export_timeout | supported | supported | supported | unknown | supported |
exporter | supported | supported | supported | unknown | supported |
max_export_batch_size | supported | supported | supported | unknown | supported |
max_queue_size | supported | supported | supported | unknown | supported |
schedule_delay | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["exporter"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"schedule_delay": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure delay interval (in milliseconds) between two consecutive exports. \nValue must be non-negative.\nIf omitted or null, 5000 is used.\n"
},
"export_timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure maximum allowed time (in milliseconds) to export data. \nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 30000 is used.\n"
},
"max_queue_size": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure maximum queue size. Value must be positive.\nIf omitted or null, 2048 is used.\n"
},
"max_export_batch_size": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure maximum batch size. Value must be positive.\nIf omitted or null, 512 is used.\n"
},
"exporter": {
"$ref": "#/$defs/SpanExporter",
"description": "Configure exporter.\nProperty is required and must be non-null.\n"
}
},
"required": [
"exporter"
]
}
CardinalityLimits
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
counter | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for counter instruments. |
default | one of: * integer* null | false | If omitted or null, 2000 is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for all instrument types. Instrument-specific cardinality limits take priority. |
gauge | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for gauge instruments. |
histogram | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for histogram instruments. |
observable_counter | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for observable_counter instruments. |
observable_gauge | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for observable_gauge instruments. |
observable_up_down_counter | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for observable_up_down_counter instruments. |
up_down_counter | one of: * integer* null | false | If omitted or null, the value from .default is used. | * exclusiveMinimum: 0 | Configure default cardinality limit for up_down_counter instruments. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
counter | ignored | unknown | supported | unknown | not_implemented |
default | ignored | unknown | supported | unknown | not_implemented |
gauge | ignored | unknown | supported | unknown | not_implemented |
histogram | ignored | unknown | supported | unknown | not_implemented |
observable_counter | ignored | unknown | supported | unknown | not_implemented |
observable_gauge | ignored | unknown | supported | unknown | not_implemented |
observable_up_down_counter | ignored | unknown | supported | unknown | not_implemented |
up_down_counter | ignored | unknown | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
# specify .default to set cardinality limits for all instruments, or specify instrument-specific limits. Instrument-specific limits take priority over .default. In this contrived example, the cardinality limits of each instrument type are set to 2000, overriding the value from .default.
default: 100
counter: 2000
gauge: 2000
histogram: 2000
observable_counter: 2000
observable_gauge: 2000
observable_up_down_counter: 2000
up_down_counter: 2000
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"default": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for all instrument types.\nInstrument-specific cardinality limits take priority.\nIf omitted or null, 2000 is used.\n"
},
"counter": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for counter instruments.\nIf omitted or null, the value from .default is used.\n"
},
"gauge": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for gauge instruments.\nIf omitted or null, the value from .default is used.\n"
},
"histogram": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for histogram instruments.\nIf omitted or null, the value from .default is used.\n"
},
"observable_counter": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for observable_counter instruments.\nIf omitted or null, the value from .default is used.\n"
},
"observable_gauge": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for observable_gauge instruments.\nIf omitted or null, the value from .default is used.\n"
},
"observable_up_down_counter": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for observable_up_down_counter instruments.\nIf omitted or null, the value from .default is used.\n"
},
"up_down_counter": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure default cardinality limit for up_down_counter instruments.\nIf omitted or null, the value from .default is used.\n"
}
}
}
ConsoleExporter
No properties.
Constraints:
additionalProperties:false
Usages:
Snippets:
ConsoleMetricExporter
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
default_histogram_aggregation | ExporterDefaultHistogramAggregation | false | If omitted, explicit_bucket_histogram is used. | No constraints. | Configure default histogram aggregation. |
temporality_preference | ExporterTemporalityPreference | false | If omitted, cumulative is used. | No constraints. | Configure temporality preference. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
default_histogram_aggregation | supported | not_implemented | not_implemented | unknown | not_implemented |
temporality_preference | supported | not_implemented | ignored | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
Snippets:
Traces Kitchen Sink
temporality_preference: cumulative
default_histogram_aggregation: explicit_bucket_histogram
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"temporality_preference": {
"$ref": "#/$defs/ExporterTemporalityPreference",
"description": "Configure temporality preference.\nValues include:\n* cumulative: Use cumulative aggregation temporality for all instrument types.\n* delta: Use delta aggregation for all instrument types except up down counter and asynchronous up down counter.\n* low_memory: Use delta aggregation temporality for counter and histogram instrument types. Use cumulative aggregation temporality for all other instrument types.\nIf omitted, cumulative is used.\n"
},
"default_histogram_aggregation": {
"$ref": "#/$defs/ExporterDefaultHistogramAggregation",
"description": "Configure default histogram aggregation.\nValues include:\n* base2_exponential_bucket_histogram: Use base2 exponential histogram as the default aggregation for histogram instruments.\n* explicit_bucket_histogram: Use explicit bucket histogram as the default aggregation for histogram instruments.\nIf omitted, explicit_bucket_histogram is used.\n"
}
}
}
DefaultAggregation
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
Distribution
No properties.
Constraints:
additionalProperties:{"type":"object"}minProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": "object"
},
"minProperties": 1
}
DropAggregation
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExemplarFilter
This is a enum type.
| Value | Description |
|---|---|
always_off | ExemplarFilter which makes no measurements eligible for being an Exemplar. |
always_on | ExemplarFilter which makes all measurements eligible for being an Exemplar. |
trace_based | ExemplarFilter which makes measurements recorded in the context of a sampled parent span eligible for being an Exemplar. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
always_off | supported | unknown | supported | unknown | supported |
always_on | supported | unknown | supported | unknown | supported |
trace_based | supported | unknown | supported | unknown | supported |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"always_on",
"always_off",
"trace_based"
]
}
ExplicitBucketHistogramAggregation
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
boundaries | array of number | false | If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used. | * minItems: 0 | Configure bucket boundaries. |
record_min_max | one of: * boolean* null | false | If omitted or null, true is used. | No constraints. | Configure record min and max. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
boundaries | supported | unknown | supported | unknown | ignored |
record_min_max | supported | unknown | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"boundaries": {
"type": "array",
"minItems": 0,
"items": {
"type": "number"
},
"description": "Configure bucket boundaries.\nIf omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used.\n"
},
"record_min_max": {
"type": [
"boolean",
"null"
],
"description": "Configure record min and max.\nIf omitted or null, true is used.\n"
}
}
}
ExporterDefaultHistogramAggregation
This is a enum type.
| Value | Description |
|---|---|
base2_exponential_bucket_histogram | Use base2 exponential histogram as the default aggregation for histogram instruments. |
explicit_bucket_histogram | Use explicit bucket histogram as the default aggregation for histogram instruments. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
base2_exponential_bucket_histogram | supported | unknown | supported | unknown | ignored |
explicit_bucket_histogram | supported | unknown | supported | unknown | ignored |
No constraints.
Usages:
OtlpHttpMetricExporter.default_histogram_aggregationOtlpGrpcMetricExporter.default_histogram_aggregationExperimentalOtlpFileMetricExporter.default_histogram_aggregationConsoleMetricExporter.default_histogram_aggregation
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"explicit_bucket_histogram",
"base2_exponential_bucket_histogram"
]
}
ExporterTemporalityPreference
This is a enum type.
| Value | Description |
|---|---|
cumulative | Use cumulative aggregation temporality for all instrument types. |
delta | Use delta aggregation for all instrument types except up down counter and asynchronous up down counter. |
low_memory | Use delta aggregation temporality for counter and histogram instrument types. Use cumulative aggregation temporality for all other instrument types. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
cumulative | supported | supported | supported | unknown | supported |
delta | supported | supported | supported | unknown | supported |
low_memory | supported | supported | supported | unknown | supported |
No constraints.
Usages:
OtlpHttpMetricExporter.temporality_preferenceOtlpGrpcMetricExporter.temporality_preferenceExperimentalOtlpFileMetricExporter.temporality_preferenceConsoleMetricExporter.temporality_preference
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"cumulative",
"delta",
"low_memory"
]
}
GrpcTls
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
ca_file | one of: * string* null | false | If omitted or null, system default certificate verification is used for secure connections. | No constraints. | Configure certificate used to verify a server's TLS credentials. Absolute path to certificate file in PEM format. |
cert_file | one of: * string* null | false | If omitted or null, mTLS is not used. | No constraints. | Configure mTLS client certificate. Absolute path to client certificate file in PEM format. If set, .client_key must also be set. |
insecure | one of: * boolean* null | false | If omitted or null, false is used. | 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. |
key_file | one of: * string* null | false | If omitted or null, mTLS is not used. | No constraints. | Configure mTLS private client key. Absolute path to client key file in PEM format. If set, .client_certificate must also be set. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
ca_file | supported | supported | supported | unknown | ignored |
cert_file | supported | supported | supported | unknown | ignored |
insecure | supported | supported | not_implemented | unknown | ignored |
key_file | supported | supported | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"ca_file": {
"type": [
"string",
"null"
],
"description": "Configure certificate used to verify a server's TLS credentials. \nAbsolute path to certificate file in PEM format.\nIf omitted or null, system default certificate verification is used for secure connections.\n"
},
"key_file": {
"type": [
"string",
"null"
],
"description": "Configure mTLS private client key. \nAbsolute path to client key file in PEM format. If set, .client_certificate must also be set.\nIf omitted or null, mTLS is not used.\n"
},
"cert_file": {
"type": [
"string",
"null"
],
"description": "Configure mTLS client certificate. \nAbsolute path to client certificate file in PEM format. If set, .client_key must also be set.\nIf omitted or null, mTLS is not used.\n"
},
"insecure": {
"type": [
"boolean",
"null"
],
"description": "Configure client transport security for the exporter's connection. \nOnly applicable when .endpoint is provided without http or https scheme. Implementations may choose to ignore .insecure.\nIf omitted or null, false is used.\n"
}
}
}
HttpTls
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
ca_file | one of: * string* null | false | If omitted or null, system default certificate verification is used for secure connections. | No constraints. | Configure certificate used to verify a server's TLS credentials. Absolute path to certificate file in PEM format. |
cert_file | one of: * string* null | false | If omitted or null, mTLS is not used. | No constraints. | Configure mTLS client certificate. Absolute path to client certificate file in PEM format. If set, .client_key must also be set. |
key_file | one of: * string* null | false | If omitted or null, mTLS is not used. | No constraints. | Configure mTLS private client key. Absolute path to client key file in PEM format. If set, .client_certificate must also be set. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
ca_file | supported | supported | supported | unknown | ignored |
cert_file | supported | supported | supported | unknown | ignored |
key_file | supported | supported | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"ca_file": {
"type": [
"string",
"null"
],
"description": "Configure certificate used to verify a server's TLS credentials. \nAbsolute path to certificate file in PEM format.\nIf omitted or null, system default certificate verification is used for secure connections.\n"
},
"key_file": {
"type": [
"string",
"null"
],
"description": "Configure mTLS private client key. \nAbsolute path to client key file in PEM format. If set, .client_certificate must also be set.\nIf omitted or null, mTLS is not used.\n"
},
"cert_file": {
"type": [
"string",
"null"
],
"description": "Configure mTLS client certificate. \nAbsolute path to client certificate file in PEM format. If set, .client_key must also be set.\nIf omitted or null, mTLS is not used.\n"
}
}
}
IdGenerator
IdGenerator is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
random | RandomIdGenerator | false | If omitted, ignore. | No constraints. | Configure the ID generator to randomly generate TraceIds and SpanIds (spec default). |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
Snippets:
Custom
# configure a custom ID generator registered via PluginComponentProvider
my_custom_id_generator:
property: value
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"random": {
"$ref": "#/$defs/RandomIdGenerator",
"description": "Configure the ID generator to randomly generate TraceIds and SpanIds (spec default).\nIf omitted, ignore.\n"
}
}
}
IncludeExclude
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
excluded | array of string | false | If omitted, .included attributes are included. | * minItems: 1 | Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included). Matching is case-sensitive. 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. |
included | array of string | false | If omitted, all values are included. | * minItems: 1 | Configure list of value patterns to include. Matching is case-sensitive. 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. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
excluded | supported | supported | supported | unknown | supported |
included | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
ExperimentalPrometheusMetricExporter.resource_constant_labelsViewStream.attribute_keysExperimentalResourceDetection.attributes
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"included": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure list of value patterns to include.\nMatching is case-sensitive. Values are evaluated to match as follows:\n * If the value exactly matches.\n * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nIf omitted, all values are included.\n"
},
"excluded": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).\nMatching is case-sensitive. Values are evaluated to match as follows:\n * If the value exactly matches.\n * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nIf omitted, .included attributes are included.\n"
}
}
}
InstrumentType
This is a enum type.
| Value | Description |
|---|---|
counter | Synchronous counter instruments. |
gauge | Synchronous gauge instruments. |
histogram | Synchronous histogram instruments. |
observable_counter | Asynchronous counter instruments. |
observable_gauge | Asynchronous gauge instruments. |
observable_up_down_counter | Asynchronous up down counter instruments. |
up_down_counter | Synchronous up down counter instruments. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
counter | supported | supported | supported | unknown | supported |
gauge | supported | supported | supported | unknown | supported |
histogram | supported | supported | supported | unknown | supported |
observable_counter | supported | supported | supported | unknown | supported |
observable_gauge | supported | supported | supported | unknown | supported |
observable_up_down_counter | supported | supported | supported | unknown | supported |
up_down_counter | supported | supported | supported | unknown | supported |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"counter",
"gauge",
"histogram",
"observable_counter",
"observable_gauge",
"observable_up_down_counter",
"up_down_counter"
]
}
LastValueAggregation
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
LoggerProvider
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
limits | LogRecordLimits | false | If omitted, default values as described in LogRecordLimits are used. | No constraints. | Configure log record limits. See also attribute_limits. |
processors | array of LogRecordProcessor | true | Property is required and must be non-null. | * minItems: 1 | Configure log record processors. |
logger_configurator/developmentWARNING: This property is experimental. | ExperimentalLoggerConfigurator | false | If omitted, all loggers use default values as described in ExperimentalLoggerConfig. | No constraints. | Configure loggers. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
limits | supported | supported | supported | unknown | supported |
processors | supported | supported | supported | unknown | supported |
logger_configurator/development | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["processors"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"processors": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/LogRecordProcessor"
},
"description": "Configure log record processors.\nProperty is required and must be non-null.\n"
},
"limits": {
"$ref": "#/$defs/LogRecordLimits",
"description": "Configure log record limits. See also attribute_limits.\nIf omitted, default values as described in LogRecordLimits are used.\n"
},
"logger_configurator/development": {
"$ref": "#/$defs/ExperimentalLoggerConfigurator",
"description": "Configure loggers.\nIf omitted, all loggers use default values as described in ExperimentalLoggerConfig.\n"
}
},
"required": [
"processors"
]
}
LogRecordExporter
LogRecordExporter is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
console | ConsoleExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be console. |
otlp_grpc | OtlpGrpcExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with gRPC transport. |
otlp_http | OtlpHttpExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with HTTP transport. |
otlp_file/developmentWARNING: This property is experimental. | ExperimentalOtlpFileExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with file transport. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
console | supported | supported | supported | unknown | supported |
otlp_grpc | supported | supported | supported | unknown | supported |
otlp_http | supported | supported | supported | unknown | supported |
otlp_file/development | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"otlp_http": {
"$ref": "#/$defs/OtlpHttpExporter",
"description": "Configure exporter to be OTLP with HTTP transport.\nIf omitted, ignore.\n"
},
"otlp_grpc": {
"$ref": "#/$defs/OtlpGrpcExporter",
"description": "Configure exporter to be OTLP with gRPC transport.\nIf omitted, ignore.\n"
},
"otlp_file/development": {
"$ref": "#/$defs/ExperimentalOtlpFileExporter",
"description": "Configure exporter to be OTLP with file transport.\nIf omitted, ignore.\n"
},
"console": {
"$ref": "#/$defs/ConsoleExporter",
"description": "Configure exporter to be console.\nIf omitted, ignore.\n"
}
}
}
LogRecordLimits
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attribute_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. Value must be non-negative. |
attribute_value_length_limit | one of: * integer* null | false | If omitted or null, there is no limit. | * minimum: 0 | Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. Value must be non-negative. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attribute_count_limit | supported | supported | supported | unknown | supported |
attribute_value_length_limit | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
# .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.
attribute_count_limit: 128
attribute_value_length_limit: 4096
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"attribute_value_length_limit": {
"type": [
"integer",
"null"
],
"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_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
}
}
}
LogRecordProcessor
LogRecordProcessor is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
batch | BatchLogRecordProcessor | false | If omitted, ignore. | No constraints. | Configure a batch log record processor. |
simple | SimpleLogRecordProcessor | false | If omitted, ignore. | No constraints. | Configure a simple log record processor. |
event_to_span_event_bridge/developmentWARNING: This property is experimental. | ExperimentalEventToSpanEventBridgeLogRecordProcessor | false | If omitted, ignore. | No constraints. | Configure an event to span event bridge log record processor. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
batch | supported | supported | supported | unknown | supported |
simple | supported | supported | supported | unknown | supported |
event_to_span_event_bridge/development | unknown | unknown | unknown | unknown | unknown |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"batch": {
"$ref": "#/$defs/BatchLogRecordProcessor",
"description": "Configure a batch log record processor.\nIf omitted, ignore.\n"
},
"simple": {
"$ref": "#/$defs/SimpleLogRecordProcessor",
"description": "Configure a simple log record processor.\nIf omitted, ignore.\n"
},
"event_to_span_event_bridge/development": {
"$ref": "#/$defs/ExperimentalEventToSpanEventBridgeLogRecordProcessor",
"description": "Configure an event to span event bridge log record processor.\nIf omitted, ignore.\n"
}
}
}
MeterProvider
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
exemplar_filter | ExemplarFilter | false | If omitted, trace_based is used. | No constraints. | Configure the exemplar filter. |
readers | array of MetricReader | true | Property is required and must be non-null. | * minItems: 1 | Configure metric readers. |
views | array of View | false | If omitted, no views are registered. | * minItems: 1 | Configure views. Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s). |
meter_configurator/developmentWARNING: This property is experimental. | ExperimentalMeterConfigurator | false | If omitted, all meters use default values as described in ExperimentalMeterConfig. | No constraints. | Configure meters. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
exemplar_filter | supported | supported | supported | unknown | supported |
readers | supported | supported | supported | unknown | supported |
views | supported | supported | supported | unknown | supported |
meter_configurator/development | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["readers"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"readers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/MetricReader"
},
"description": "Configure metric readers.\nProperty is required and must be non-null.\n"
},
"views": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/View"
},
"description": "Configure views. \nEach view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s).\nIf omitted, no views are registered.\n"
},
"exemplar_filter": {
"$ref": "#/$defs/ExemplarFilter",
"description": "Configure the exemplar filter.\nValues include:\n* always_off: ExemplarFilter which makes no measurements eligible for being an Exemplar.\n* always_on: ExemplarFilter which makes all measurements eligible for being an Exemplar.\n* trace_based: ExemplarFilter which makes measurements recorded in the context of a sampled parent span eligible for being an Exemplar.\nIf omitted, trace_based is used.\n"
},
"meter_configurator/development": {
"$ref": "#/$defs/ExperimentalMeterConfigurator",
"description": "Configure meters.\nIf omitted, all meters use default values as described in ExperimentalMeterConfig.\n"
}
},
"required": [
"readers"
]
}
MetricProducer
MetricProducer is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
opencensus | OpenCensusMetricProducer | false | If omitted, ignore. | No constraints. | Configure metric producer to be opencensus. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
opencensus | supported | unknown | ignored | unknown | not_implemented |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"opencensus": {
"$ref": "#/$defs/OpenCensusMetricProducer",
"description": "Configure metric producer to be opencensus.\nIf omitted, ignore.\n"
}
}
}
MetricReader
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
periodic | PeriodicMetricReader | false | If omitted, ignore. | No constraints. | Configure a periodic metric reader. |
pull | PullMetricReader | false | If omitted, ignore. | No constraints. | Configure a pull based metric reader. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
periodic | supported | unknown | supported | unknown | supported |
pull | supported | unknown | supported | unknown | not_implemented |
Constraints:
additionalProperties:falseminProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"maxProperties": 1,
"properties": {
"periodic": {
"$ref": "#/$defs/PeriodicMetricReader",
"description": "Configure a periodic metric reader.\nIf omitted, ignore.\n"
},
"pull": {
"$ref": "#/$defs/PullMetricReader",
"description": "Configure a pull based metric reader.\nIf omitted, ignore.\n"
}
}
}
NameStringValuePair
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
name | string | true | Property is required and must be non-null. | No constraints. | The name of the pair. |
value | one of: * string* null | true | Property must be present, but if null the behavior is dependent on usage context. | No constraints. | The value of the pair. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
name | supported | supported | supported | unknown | supported |
value | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["name","value"]
Usages:
OtlpHttpExporter.headersOtlpGrpcExporter.headersOtlpHttpMetricExporter.headersOtlpGrpcMetricExporter.headers
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"description": "The name of the pair.\nProperty is required and must be non-null.\n"
},
"value": {
"type": [
"string",
"null"
],
"description": "The value of the pair.\nProperty must be present, but if null the behavior is dependent on usage context.\n"
}
},
"required": [
"name",
"value"
]
}
OpenCensusMetricProducer
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
OpenTelemetryConfiguration
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attribute_limits | 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 | 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 | false | If omitted, INFO is used. | No constraints. | Configure the log level of the internal logger used by the SDK. |
logger_provider | LoggerProvider | false | If omitted, a noop logger provider is used. | No constraints. | Configure logger provider. |
meter_provider | MeterProvider | false | If omitted, a noop meter provider is used. | No constraints. | Configure meter provider. |
propagator | Propagator | false | If omitted, a noop propagator is used. | No constraints. | Configure text map context propagators. |
resource | Resource | false | If omitted, the default resource is used. | No constraints. | Configure resource for all signals. |
tracer_provider | TracerProvider | false | If omitted, a noop tracer provider is used. | No constraints. | Configure tracer provider. |
instrumentation/developmentWARNING: This property is experimental. | ExperimentalInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure instrumentation. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attribute_limits | supported | unknown | supported | unknown | supported |
disabled | supported | unknown | supported | unknown | supported |
distribution | supported | unknown | supported | unknown | not_implemented |
file_format | supported | unknown | supported | unknown | supported |
log_level | supported | unknown | not_implemented | unknown | not_implemented |
logger_provider | supported | unknown | supported | unknown | supported |
meter_provider | supported | unknown | supported | unknown | supported |
propagator | supported | unknown | supported | unknown | supported |
resource | supported | unknown | supported | unknown | supported |
tracer_provider | supported | unknown | supported | unknown | supported |
instrumentation/development | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:truerequired:["file_format"]
No usages.
No snippets.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "OpenTelemetryConfiguration",
"type": "object",
"additionalProperties": true,
"properties": {
"file_format": {
"type": "string",
"description": "The file format version.\nRepresented 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).\nSee https://github.com/open-telemetry/opentelemetry-configuration/blob/main/VERSIONING.md for more details.\nThe yaml format is documented at https://github.com/open-telemetry/opentelemetry-configuration/tree/main/schema\nProperty is required and must be non-null.\n"
},
"disabled": {
"type": [
"boolean",
"null"
],
"description": "Configure if the SDK is disabled or not.\nIf omitted or null, false is used.\n"
},
"log_level": {
"$ref": "#/$defs/SeverityNumber",
"description": "Configure the log level of the internal logger used by the SDK.\nValues include:\n* debug: debug, severity number 5.\n* debug2: debug2, severity number 6.\n* debug3: debug3, severity number 7.\n* debug4: debug4, severity number 8.\n* error: error, severity number 17.\n* error2: error2, severity number 18.\n* error3: error3, severity number 19.\n* error4: error4, severity number 20.\n* fatal: fatal, severity number 21.\n* fatal2: fatal2, severity number 22.\n* fatal3: fatal3, severity number 23.\n* fatal4: fatal4, severity number 24.\n* info: info, severity number 9.\n* info2: info2, severity number 10.\n* info3: info3, severity number 11.\n* info4: info4, severity number 12.\n* trace: trace, severity number 1.\n* trace2: trace2, severity number 2.\n* trace3: trace3, severity number 3.\n* trace4: trace4, severity number 4.\n* warn: warn, severity number 13.\n* warn2: warn2, severity number 14.\n* warn3: warn3, severity number 15.\n* warn4: warn4, severity number 16.\nIf omitted, INFO is used.\n"
},
"attribute_limits": {
"$ref": "#/$defs/AttributeLimits",
"description": "Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits.\nIf omitted, default values as described in AttributeLimits are used.\n"
},
"logger_provider": {
"$ref": "#/$defs/LoggerProvider",
"description": "Configure logger provider.\nIf omitted, a noop logger provider is used.\n"
},
"meter_provider": {
"$ref": "#/$defs/MeterProvider",
"description": "Configure meter provider.\nIf omitted, a noop meter provider is used.\n"
},
"propagator": {
"$ref": "#/$defs/Propagator",
"description": "Configure text map context propagators.\nIf omitted, a noop propagator is used.\n"
},
"tracer_provider": {
"$ref": "#/$defs/TracerProvider",
"description": "Configure tracer provider.\nIf omitted, a noop tracer provider is used.\n"
},
"resource": {
"$ref": "#/$defs/Resource",
"description": "Configure resource for all signals.\nIf omitted, the default resource is used.\n"
},
"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": [
"file_format"
]
}
OtlpGrpcExporter
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
compression | one of: * string* null | false | If omitted or null, none is used. | No constraints. | Configure compression. Known values include: gzip, none. Implementations may support other compression algorithms. |
endpoint | one of: * string* null | false | If omitted or null, http://localhost:4317 is used. | No constraints. | Configure endpoint. |
headers | array of NameStringValuePair | false | If omitted, no headers are added. | * minItems: 1 | Configure headers. Entries have higher priority than entries from .headers_list. If an entry's .value is null, the entry is ignored. |
headers_list | one of: * string* null | false | If omitted or null, no headers are added. | No constraints. | 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. |
timeout | one of: * integer* null | false | If omitted or null, 10000 is used. | * 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). |
tls | GrpcTls | false | If omitted, system default TLS settings are used. | No constraints. | Configure TLS settings for the exporter. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
compression | supported | supported | supported | unknown | supported |
endpoint | supported | supported | supported | unknown | supported |
headers | supported | supported | supported | unknown | supported |
headers_list | supported | supported | supported | unknown | supported |
timeout | supported | supported | supported | unknown | supported |
tls | supported | supported | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
Snippets:
Logs Kitchen Sink
endpoint: http://localhost:4317
tls:
ca_file: /app/cert.pem
key_file: /app/cert.pem
cert_file: /app/cert.pem
insecure: false
headers:
- name: api-key
value: "1234"
headers_list: "api-key=1234"
compression: gzip
timeout: 10000
Traces Kitchen Sink
endpoint: http://localhost:4317
tls:
ca_file: /app/cert.pem
key_file: /app/cert.pem
cert_file: /app/cert.pem
insecure: false
headers:
- name: api-key
value: "1234"
headers_list: "api-key=1234"
compression: gzip
timeout: 10000
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"endpoint": {
"type": [
"string",
"null"
],
"description": "Configure endpoint.\nIf omitted or null, http://localhost:4317 is used.\n"
},
"tls": {
"$ref": "#/$defs/GrpcTls",
"description": "Configure TLS settings for the exporter.\nIf omitted, system default TLS settings are used.\n"
},
"headers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/NameStringValuePair"
},
"description": "Configure headers. Entries have higher priority than entries from .headers_list.\nIf an entry's .value is null, the entry is ignored.\nIf omitted, no headers are added.\n"
},
"headers_list": {
"type": [
"string",
"null"
],
"description": "Configure headers. Entries have lower priority than entries from .headers.\nThe 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.\nIf omitted or null, no headers are added.\n"
},
"compression": {
"type": [
"string",
"null"
],
"description": "Configure compression.\nKnown values include: gzip, none. Implementations may support other compression algorithms.\nIf omitted or null, none is used.\n"
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max time (in milliseconds) to wait for each export.\nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 10000 is used.\n"
}
}
}
OtlpGrpcMetricExporter
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
compression | one of: * string* null | false | If omitted or null, none is used. | No constraints. | Configure compression. Known values include: gzip, none. Implementations may support other compression algorithms. |
default_histogram_aggregation | ExporterDefaultHistogramAggregation | false | If omitted, explicit_bucket_histogram is used. | No constraints. | Configure default histogram aggregation. |
endpoint | one of: * string* null | false | If omitted or null, http://localhost:4317 is used. | No constraints. | Configure endpoint. |
headers | array of NameStringValuePair | false | If omitted, no headers are added. | * minItems: 1 | Configure headers. Entries have higher priority than entries from .headers_list. If an entry's .value is null, the entry is ignored. |
headers_list | one of: * string* null | false | If omitted or null, no headers are added. | No constraints. | 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. |
temporality_preference | ExporterTemporalityPreference | false | If omitted, cumulative is used. | No constraints. | Configure temporality preference. |
timeout | one of: * integer* null | false | If omitted or null, 10000 is used. | * 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). |
tls | GrpcTls | false | If omitted, system default TLS settings are used. | No constraints. | Configure TLS settings for the exporter. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
compression | supported | supported | supported | unknown | supported |
default_histogram_aggregation | supported | not_implemented | supported | unknown | not_implemented |
endpoint | supported | supported | supported | unknown | supported |
headers | supported | supported | supported | unknown | supported |
headers_list | supported | supported | supported | unknown | supported |
temporality_preference | supported | supported | supported | unknown | supported |
timeout | supported | supported | supported | unknown | supported |
tls | supported | supported | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
Snippets:
Metrics Kitchen Sink
endpoint: http://localhost:4317
tls:
ca_file: /app/cert.pem
key_file: /app/cert.pem
cert_file: /app/cert.pem
insecure: false
headers:
- name: api-key
value: "1234"
headers_list: "api-key=1234"
compression: gzip
timeout: 10000
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"endpoint": {
"type": [
"string",
"null"
],
"description": "Configure endpoint.\nIf omitted or null, http://localhost:4317 is used.\n"
},
"tls": {
"$ref": "#/$defs/GrpcTls",
"description": "Configure TLS settings for the exporter.\nIf omitted, system default TLS settings are used.\n"
},
"headers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/NameStringValuePair"
},
"description": "Configure headers. Entries have higher priority than entries from .headers_list.\nIf an entry's .value is null, the entry is ignored.\nIf omitted, no headers are added.\n"
},
"headers_list": {
"type": [
"string",
"null"
],
"description": "Configure headers. Entries have lower priority than entries from .headers.\nThe 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.\nIf omitted or null, no headers are added.\n"
},
"compression": {
"type": [
"string",
"null"
],
"description": "Configure compression.\nKnown values include: gzip, none. Implementations may support other compression algorithms.\nIf omitted or null, none is used.\n"
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max time (in milliseconds) to wait for each export.\nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 10000 is used.\n"
},
"temporality_preference": {
"$ref": "#/$defs/ExporterTemporalityPreference",
"description": "Configure temporality preference.\nValues include:\n* cumulative: Use cumulative aggregation temporality for all instrument types.\n* delta: Use delta aggregation for all instrument types except up down counter and asynchronous up down counter.\n* low_memory: Use delta aggregation temporality for counter and histogram instrument types. Use cumulative aggregation temporality for all other instrument types.\nIf omitted, cumulative is used.\n"
},
"default_histogram_aggregation": {
"$ref": "#/$defs/ExporterDefaultHistogramAggregation",
"description": "Configure default histogram aggregation.\nValues include:\n* base2_exponential_bucket_histogram: Use base2 exponential histogram as the default aggregation for histogram instruments.\n* explicit_bucket_histogram: Use explicit bucket histogram as the default aggregation for histogram instruments.\nIf omitted, explicit_bucket_histogram is used.\n"
}
}
}
OtlpHttpEncoding
This is a enum type.
| Value | Description |
|---|---|
json | Protobuf JSON encoding. |
protobuf | Protobuf binary encoding. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
json | supported | not_implemented | not_implemented | unknown | supported |
protobuf | supported | not_implemented | not_implemented | unknown | supported |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"protobuf",
"json"
]
}
OtlpHttpExporter
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
compression | one of: * string* null | false | If omitted or null, none is used. | No constraints. | Configure compression. Known values include: gzip, none. Implementations may support other compression algorithms. |
encoding | OtlpHttpEncoding | false | If omitted, protobuf is used. | No constraints. | Configure the encoding used for messages. Implementations may not support json. |
endpoint | one of: * string* null | false | If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used. | No constraints. | Configure endpoint, including the signal specific path. |
headers | array of NameStringValuePair | false | If omitted, no headers are added. | * minItems: 1 | Configure headers. Entries have higher priority than entries from .headers_list. If an entry's .value is null, the entry is ignored. |
headers_list | one of: * string* null | false | If omitted or null, no headers are added. | No constraints. | 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. |
timeout | one of: * integer* null | false | If omitted or null, 10000 is used. | * 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). |
tls | HttpTls | false | If omitted, system default TLS settings are used. | No constraints. | Configure TLS settings for the exporter. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
compression | supported | supported | supported | unknown | supported |
encoding | supported | not_implemented | not_implemented | unknown | supported |
endpoint | supported | supported | supported | unknown | supported |
headers | supported | supported | supported | unknown | supported |
headers_list | supported | supported | supported | unknown | supported |
timeout | supported | supported | supported | unknown | supported |
tls | supported | supported | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
Snippets:
Logs Kitchen Sink
endpoint: http://localhost:4318/v1/logs
tls:
ca_file: /app/cert.pem
key_file: /app/cert.pem
cert_file: /app/cert.pem
headers:
- name: api-key
value: "1234"
headers_list: "api-key=1234"
compression: gzip
timeout: 10000
encoding: protobuf
Traces Kitchen Sink
endpoint: http://localhost:4318/v1/traces
tls:
ca_file: /app/cert.pem
key_file: /app/cert.pem
cert_file: /app/cert.pem
headers:
- name: api-key
value: "1234"
headers_list: "api-key=1234"
compression: gzip
timeout: 10000
encoding: protobuf
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"endpoint": {
"type": [
"string",
"null"
],
"description": "Configure endpoint, including the signal specific path.\nIf omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used.\n"
},
"tls": {
"$ref": "#/$defs/HttpTls",
"description": "Configure TLS settings for the exporter.\nIf omitted, system default TLS settings are used.\n"
},
"headers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/NameStringValuePair"
},
"description": "Configure headers. Entries have higher priority than entries from .headers_list.\nIf an entry's .value is null, the entry is ignored.\nIf omitted, no headers are added.\n"
},
"headers_list": {
"type": [
"string",
"null"
],
"description": "Configure headers. Entries have lower priority than entries from .headers.\nThe 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.\nIf omitted or null, no headers are added.\n"
},
"compression": {
"type": [
"string",
"null"
],
"description": "Configure compression.\nKnown values include: gzip, none. Implementations may support other compression algorithms.\nIf omitted or null, none is used.\n"
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max time (in milliseconds) to wait for each export.\nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 10000 is used.\n"
},
"encoding": {
"$ref": "#/$defs/OtlpHttpEncoding",
"description": "Configure the encoding used for messages. \nImplementations may not support json.\nValues include:\n* json: Protobuf JSON encoding.\n* protobuf: Protobuf binary encoding.\nIf omitted, protobuf is used.\n"
}
}
}
OtlpHttpMetricExporter
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
compression | one of: * string* null | false | If omitted or null, none is used. | No constraints. | Configure compression. Known values include: gzip, none. Implementations may support other compression algorithms. |
default_histogram_aggregation | ExporterDefaultHistogramAggregation | false | If omitted, explicit_bucket_histogram is used. | No constraints. | Configure default histogram aggregation. |
encoding | OtlpHttpEncoding | false | If omitted, protobuf is used. | No constraints. | Configure the encoding used for messages. Implementations may not support json. |
endpoint | one of: * string* null | false | If omitted or null, http://localhost:4318/v1/metrics is used. | No constraints. | Configure endpoint. |
headers | array of NameStringValuePair | false | If omitted, no headers are added. | * minItems: 1 | Configure headers. Entries have higher priority than entries from .headers_list. If an entry's .value is null, the entry is ignored. |
headers_list | one of: * string* null | false | If omitted or null, no headers are added. | No constraints. | 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. |
temporality_preference | ExporterTemporalityPreference | false | If omitted, cumulative is used. | No constraints. | Configure temporality preference. |
timeout | one of: * integer* null | false | If omitted or null, 10000 is used. | * 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). |
tls | HttpTls | false | If omitted, system default TLS settings are used. | No constraints. | Configure TLS settings for the exporter. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
compression | supported | supported | supported | unknown | supported |
default_histogram_aggregation | supported | not_implemented | supported | unknown | not_implemented |
encoding | supported | not_implemented | not_implemented | unknown | supported |
endpoint | supported | supported | supported | unknown | supported |
headers | supported | supported | supported | unknown | supported |
headers_list | supported | supported | supported | unknown | supported |
temporality_preference | supported | supported | supported | unknown | supported |
timeout | supported | supported | supported | unknown | supported |
tls | supported | supported | supported | unknown | ignored |
Constraints:
additionalProperties:false
Usages:
Snippets:
Metrics Kitchen Sink
endpoint: http://localhost:4318/v1/metrics
tls:
ca_file: /app/cert.pem
key_file: /app/cert.pem
cert_file: /app/cert.pem
headers:
- name: api-key
value: "1234"
headers_list: "api-key=1234"
compression: gzip
timeout: 10000
encoding: protobuf
temporality_preference: cumulative
default_histogram_aggregation: explicit_bucket_histogram
Use Base2 Exponential Histogram
endpoint: http://localhost:4318/v1/metrics
default_histogram_aggregation: base2_exponential_bucket_histogram
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"endpoint": {
"type": [
"string",
"null"
],
"description": "Configure endpoint.\nIf omitted or null, http://localhost:4318/v1/metrics is used.\n"
},
"tls": {
"$ref": "#/$defs/HttpTls",
"description": "Configure TLS settings for the exporter.\nIf omitted, system default TLS settings are used.\n"
},
"headers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/NameStringValuePair"
},
"description": "Configure headers. Entries have higher priority than entries from .headers_list.\nIf an entry's .value is null, the entry is ignored.\nIf omitted, no headers are added.\n"
},
"headers_list": {
"type": [
"string",
"null"
],
"description": "Configure headers. Entries have lower priority than entries from .headers.\nThe 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.\nIf omitted or null, no headers are added.\n"
},
"compression": {
"type": [
"string",
"null"
],
"description": "Configure compression.\nKnown values include: gzip, none. Implementations may support other compression algorithms.\nIf omitted or null, none is used.\n"
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max time (in milliseconds) to wait for each export.\nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 10000 is used.\n"
},
"encoding": {
"$ref": "#/$defs/OtlpHttpEncoding",
"description": "Configure the encoding used for messages. \nImplementations may not support json.\nValues include:\n* json: Protobuf JSON encoding.\n* protobuf: Protobuf binary encoding.\nIf omitted, protobuf is used.\n"
},
"temporality_preference": {
"$ref": "#/$defs/ExporterTemporalityPreference",
"description": "Configure temporality preference.\nValues include:\n* cumulative: Use cumulative aggregation temporality for all instrument types.\n* delta: Use delta aggregation for all instrument types except up down counter and asynchronous up down counter.\n* low_memory: Use delta aggregation temporality for counter and histogram instrument types. Use cumulative aggregation temporality for all other instrument types.\nIf omitted, cumulative is used.\n"
},
"default_histogram_aggregation": {
"$ref": "#/$defs/ExporterDefaultHistogramAggregation",
"description": "Configure default histogram aggregation.\nValues include:\n* base2_exponential_bucket_histogram: Use base2 exponential histogram as the default aggregation for histogram instruments.\n* explicit_bucket_histogram: Use explicit bucket histogram as the default aggregation for histogram instruments.\nIf omitted, explicit_bucket_histogram is used.\n"
}
}
}
ParentBasedSampler
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
local_parent_not_sampled | Sampler | false | If omitted, always_off is used. | No constraints. | Configure local_parent_not_sampled sampler. |
local_parent_sampled | Sampler | false | If omitted, always_on is used. | No constraints. | Configure local_parent_sampled sampler. |
remote_parent_not_sampled | Sampler | false | If omitted, always_off is used. | No constraints. | Configure remote_parent_not_sampled sampler. |
remote_parent_sampled | Sampler | false | If omitted, always_on is used. | No constraints. | Configure remote_parent_sampled sampler. |
root | Sampler | false | If omitted, always_on is used. | No constraints. | Configure root sampler. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
local_parent_not_sampled | supported | supported | supported | unknown | supported |
local_parent_sampled | supported | supported | supported | unknown | supported |
remote_parent_not_sampled | supported | supported | supported | unknown | supported |
remote_parent_sampled | supported | supported | supported | unknown | supported |
root | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"root": {
"$ref": "#/$defs/Sampler",
"description": "Configure root sampler.\nIf omitted, always_on is used.\n"
},
"remote_parent_sampled": {
"$ref": "#/$defs/Sampler",
"description": "Configure remote_parent_sampled sampler.\nIf omitted, always_on is used.\n"
},
"remote_parent_not_sampled": {
"$ref": "#/$defs/Sampler",
"description": "Configure remote_parent_not_sampled sampler.\nIf omitted, always_off is used.\n"
},
"local_parent_sampled": {
"$ref": "#/$defs/Sampler",
"description": "Configure local_parent_sampled sampler.\nIf omitted, always_on is used.\n"
},
"local_parent_not_sampled": {
"$ref": "#/$defs/Sampler",
"description": "Configure local_parent_not_sampled sampler.\nIf omitted, always_off is used.\n"
}
}
}
PeriodicMetricReader
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
cardinality_limits | CardinalityLimits | false | If omitted, default values as described in CardinalityLimits are used. | No constraints. | Configure cardinality limits. |
exporter | PushMetricExporter | true | Property is required and must be non-null. | No constraints. | Configure exporter. |
interval | one of: * integer* null | false | If omitted or null, 60000 is used. | * minimum: 0 | Configure delay interval (in milliseconds) between start of two consecutive exports. Value must be non-negative. |
producers | array of MetricProducer | false | If omitted, no metric producers are added. | * minItems: 1 | Configure metric producers. |
timeout | one of: * integer* null | false | If omitted or null, 30000 is used. | * minimum: 0 | Configure maximum allowed time (in milliseconds) to export data. Value must be non-negative. A value of 0 indicates no limit (infinity). |
max_export_batch_size/developmentWARNING: This property is experimental. | one of: * integer* null | false | If omitted or null, no limit is used. | * minimum: 1 | Configure maximum export batch size. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
cardinality_limits | supported | not_implemented | supported | unknown | supported |
exporter | supported | supported | supported | unknown | supported |
interval | supported | supported | supported | unknown | not_implemented |
producers | supported | not_implemented | not_implemented | unknown | not_implemented |
timeout | supported | supported | supported | unknown | supported |
max_export_batch_size/development | not_implemented | not_implemented | not_implemented | not_implemented | not_implemented |
Constraints:
additionalProperties:falserequired:["exporter"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"interval": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure delay interval (in milliseconds) between start of two consecutive exports. \nValue must be non-negative.\nIf omitted or null, 60000 is used.\n"
},
"timeout": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure maximum allowed time (in milliseconds) to export data. \nValue must be non-negative. A value of 0 indicates no limit (infinity).\nIf omitted or null, 30000 is used.\n"
},
"max_export_batch_size/development": {
"type": [
"integer",
"null"
],
"minimum": 1,
"description": "Configure maximum export batch size.\nIf omitted or null, no limit is used.\n"
},
"exporter": {
"$ref": "#/$defs/PushMetricExporter",
"description": "Configure exporter.\nProperty is required and must be non-null.\n"
},
"producers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/MetricProducer"
},
"description": "Configure metric producers.\nIf omitted, no metric producers are added.\n"
},
"cardinality_limits": {
"$ref": "#/$defs/CardinalityLimits",
"description": "Configure cardinality limits.\nIf omitted, default values as described in CardinalityLimits are used.\n"
}
},
"required": [
"exporter"
]
}
Propagator
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
composite | array of TextMapPropagator | false | If omitted, and .composite_list is omitted or null, a noop propagator is used. | * minItems: 1 | 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. Known third party keys include: xray. |
composite_list | one of: * string* null | false | If omitted or null, and .composite is omitted or null, a noop propagator is used. | 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. Known third party identifiers include: xray. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
composite | supported | supported | supported | unknown | supported |
composite_list | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
# .composite and .composite_list are merged and deduplicated.
composite:
- tracecontext:
- baggage:
- b3:
- b3multi:
composite_list: "xray"
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"composite": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/TextMapPropagator"
},
"description": "Configure the propagators in the composite text map propagator. Entries from .composite_list are appended to the list here with duplicates filtered out.\nBuilt-in propagator keys include: tracecontext, baggage, b3, b3multi. Known third party keys include: xray.\nIf omitted, and .composite_list is omitted or null, a noop propagator is used.\n"
},
"composite_list": {
"type": [
"string",
"null"
],
"description": "Configure the propagators in the composite text map propagator. Entries are appended to .composite with duplicates filtered out.\nThe 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.\nBuilt-in propagator identifiers include: tracecontext, baggage, b3, b3multi. Known third party identifiers include: xray.\nIf omitted or null, and .composite is omitted or null, a noop propagator is used.\n"
}
}
}
PullMetricExporter
PullMetricExporter is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
prometheus/developmentWARNING: This property is experimental. | ExperimentalPrometheusMetricExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be prometheus. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
prometheus/development | supported | unknown | supported | unknown | not_implemented |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"prometheus/development": {
"$ref": "#/$defs/ExperimentalPrometheusMetricExporter",
"description": "Configure exporter to be prometheus.\nIf omitted, ignore.\n"
}
}
}
PullMetricReader
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
cardinality_limits | CardinalityLimits | false | If omitted, default values as described in CardinalityLimits are used. | No constraints. | Configure cardinality limits. |
exporter | PullMetricExporter | true | Property is required and must be non-null. | No constraints. | Configure exporter. |
producers | array of MetricProducer | false | If omitted, no metric producers are added. | * minItems: 1 | Configure metric producers. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
cardinality_limits | supported | unknown | supported | unknown | not_implemented |
exporter | supported | unknown | supported | unknown | not_implemented |
producers | supported | unknown | not_implemented | unknown | not_implemented |
Constraints:
additionalProperties:falserequired:["exporter"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"exporter": {
"$ref": "#/$defs/PullMetricExporter",
"description": "Configure exporter.\nProperty is required and must be non-null.\n"
},
"producers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/MetricProducer"
},
"description": "Configure metric producers.\nIf omitted, no metric producers are added.\n"
},
"cardinality_limits": {
"$ref": "#/$defs/CardinalityLimits",
"description": "Configure cardinality limits.\nIf omitted, default values as described in CardinalityLimits are used.\n"
}
},
"required": [
"exporter"
]
}
PushMetricExporter
PushMetricExporter is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
console | ConsoleMetricExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be console. |
otlp_grpc | OtlpGrpcMetricExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with gRPC transport. |
otlp_http | OtlpHttpMetricExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with HTTP transport. |
otlp_file/developmentWARNING: This property is experimental. | ExperimentalOtlpFileMetricExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with file transport. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
console | supported | unknown | supported | unknown | supported |
otlp_grpc | supported | unknown | supported | unknown | supported |
otlp_http | supported | unknown | supported | unknown | supported |
otlp_file/development | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"otlp_http": {
"$ref": "#/$defs/OtlpHttpMetricExporter",
"description": "Configure exporter to be OTLP with HTTP transport.\nIf omitted, ignore.\n"
},
"otlp_grpc": {
"$ref": "#/$defs/OtlpGrpcMetricExporter",
"description": "Configure exporter to be OTLP with gRPC transport.\nIf omitted, ignore.\n"
},
"otlp_file/development": {
"$ref": "#/$defs/ExperimentalOtlpFileMetricExporter",
"description": "Configure exporter to be OTLP with file transport.\nIf omitted, ignore.\n"
},
"console": {
"$ref": "#/$defs/ConsoleMetricExporter",
"description": "Configure exporter to be console.\nIf omitted, ignore.\n"
}
}
}
RandomIdGenerator
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
Resource
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attributes | array of AttributeNameValue | false | If omitted, no resource attributes are added. | * minItems: 1 | Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list. |
attributes_list | one of: * string* null | false | If omitted or null, no resource attributes are added. | 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. |
schema_url | one of: * string* null | false | If omitted or null, no schema URL is used. | No constraints. | Configure resource schema URL. |
detection/developmentWARNING: This property is experimental. | ExperimentalResourceDetection | false | If omitted, resource detection is disabled. | No constraints. | Configure resource detection. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attributes | supported | unknown | supported | unknown | supported |
attributes_list | supported | unknown | supported | unknown | supported |
schema_url | supported | unknown | supported | unknown | supported |
detection/development | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
attributes:
- name: service.name
value: unknown_service
- name: string_key
value: value
type: string
- name: bool_key
value: true
type: bool
- name: int_key
value: 1
type: int
- name: double_key
value: 1.1
type: double
- name: string_array_key
value: [ "value1", "value2" ]
type: string_array
- name: bool_array_key
value: [ true, false ]
type: bool_array
- name: int_array_key
value: [ 1, 2 ]
type: int_array
- name: double_array_key
value: [ 1.1, 2.2 ]
type: double_array
attributes_list: "service.namespace=my-namespace,service.version=1.0.0"
detection/development:
attributes:
included:
- process.*
excluded:
- process.command_args
detectors:
- container:
- host:
- process:
- service:
schema_url: https://opentelemetry.io/schemas/1.16.0
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"attributes": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/AttributeNameValue"
},
"description": "Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list.\nIf omitted, no resource attributes are added.\n"
},
"detection/development": {
"$ref": "#/$defs/ExperimentalResourceDetection",
"description": "Configure resource detection.\nIf omitted, resource detection is disabled.\n"
},
"schema_url": {
"type": [
"string",
"null"
],
"description": "Configure resource schema URL.\nIf omitted or null, no schema URL is used.\n"
},
"attributes_list": {
"type": [
"string",
"null"
],
"description": "Configure resource attributes. Entries have lower priority than entries from .resource.attributes.\nThe 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.\nIf omitted or null, no resource attributes are added.\n"
}
}
}
Sampler
Sampler is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
always_off | AlwaysOffSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be always_off. |
always_on | AlwaysOnSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be always_on. |
parent_based | ParentBasedSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be parent_based. |
trace_id_ratio_based | TraceIdRatioBasedSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be trace_id_ratio_based. |
composite/developmentWARNING: This property is experimental. | ExperimentalComposableSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be composite. |
jaeger_remote/developmentWARNING: This property is experimental. | ExperimentalJaegerRemoteSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be jaeger_remote. |
probability/developmentWARNING: This property is experimental. | ExperimentalProbabilitySampler | false | If omitted, ignore. | No constraints. | Configure sampler to be probability. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
always_off | supported | supported | supported | unknown | supported |
always_on | supported | supported | supported | unknown | supported |
parent_based | supported | supported | supported | unknown | supported |
trace_id_ratio_based | supported | supported | supported | unknown | supported |
composite/development | supported | not_implemented | supported | unknown | not_implemented |
jaeger_remote/development | supported | not_implemented | supported | unknown | not_implemented |
probability/development | supported | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
TracerProvider.samplerExperimentalJaegerRemoteSampler.initial_samplerParentBasedSampler.rootParentBasedSampler.remote_parent_sampledParentBasedSampler.remote_parent_not_sampledParentBasedSampler.local_parent_sampledParentBasedSampler.local_parent_not_sampled
Snippets:
Composite Rule Based Drop Redis Ping
# Use the composite rule_based sampler to suppress noisy Redis health check spans,
# while falling back to standard parent-based sampling for all other spans.
# Rules are matched in order; if no rule matches, the span is not sampled.
composite/development:
rule_based:
rules:
# Drop Redis PING health check spans. These are CLIENT spans where db.operation=PING.
# Use db.operation.name instead if using stable DB semantic conventions.
- span_kinds:
- client
attribute_values:
key: db.operation
values:
- PING
sampler:
always_off:
# Catch-all: apply standard parent-based behavior for all other spans.
# parent_threshold respects the parent sampling decision; always_on is used
# for root spans (no parent), matching the default parent_based behavior.
- sampler:
parent_threshold:
root:
always_on:
Parent Based Typical
# configure the parent based sampler to sample 1% of root spans, and follow the sampling decision of parent spans
parent_based:
root:
trace_id_ratio_based:
ratio: 0.01
remote_parent_sampled:
always_on:
remote_parent_not_sampled:
always_off:
local_parent_sampled:
always_on:
local_parent_not_sampled:
always_off:
Rule Based Kitchen Sink
composite/development:
rule_based:
# The rules for the sampler, matched in order. Each rule can have multiple match conditions - the sampler will be applied if all match.
# If no conditions are specified, the rule matches all spans that reach it. If no rules match, the span is not sampled.
# The rules of this sampler, in plain english:
# - If http.route = /healthz or /livez, do not sample the span.
# - If http.path starts with /internal/ and not /internal/special/, sample the span.
# - If there is no parent and the sppan kind is client, sample the span 5% of the time.
# - Else, sample the span .1% of the time.
rules:
- attribute_values:
key: http.route
values:
- /healthz
- /livez
# Configure sampler when matched.
sampler:
# Configure sampler to be always_off if matched.
always_off:
# Configure a sampling rule matching http.path attribute patterns.
- attribute_patterns:
key: http.path
included:
- /internal/*
excluded:
- /internal/special/*
# Configure sampler when matched.
sampler:
# Configure sampler to be always_on if matched.
always_on:
# Configure a sampling rule matching root spans with CLIENT span kind.
- parent:
- none
span_kinds:
- client
sampler:
# Configure sampler to be probability if matched.
probability:
ratio: 0.05
- sampler:
probability:
# Configure ratio.
# If omitted or null, 1.0 is used.
ratio: 0.001
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"always_off": {
"$ref": "#/$defs/AlwaysOffSampler",
"description": "Configure sampler to be always_off.\nIf omitted, ignore.\n"
},
"always_on": {
"$ref": "#/$defs/AlwaysOnSampler",
"description": "Configure sampler to be always_on.\nIf omitted, ignore.\n"
},
"composite/development": {
"$ref": "#/$defs/ExperimentalComposableSampler",
"description": "Configure sampler to be composite.\nIf omitted, ignore.\n"
},
"jaeger_remote/development": {
"$ref": "#/$defs/ExperimentalJaegerRemoteSampler",
"description": "Configure sampler to be jaeger_remote.\nIf omitted, ignore.\n"
},
"parent_based": {
"$ref": "#/$defs/ParentBasedSampler",
"description": "Configure sampler to be parent_based.\nIf omitted, ignore.\n"
},
"probability/development": {
"$ref": "#/$defs/ExperimentalProbabilitySampler",
"description": "Configure sampler to be probability.\nIf omitted, ignore.\n"
},
"trace_id_ratio_based": {
"$ref": "#/$defs/TraceIdRatioBasedSampler",
"description": "Configure sampler to be trace_id_ratio_based.\nIf omitted, ignore.\n"
}
}
}
SeverityNumber
This is a enum type.
| Value | Description |
|---|---|
debug | debug, severity number 5. |
debug2 | debug2, severity number 6. |
debug3 | debug3, severity number 7. |
debug4 | debug4, severity number 8. |
error | error, severity number 17. |
error2 | error2, severity number 18. |
error3 | error3, severity number 19. |
error4 | error4, severity number 20. |
fatal | fatal, severity number 21. |
fatal2 | fatal2, severity number 22. |
fatal3 | fatal3, severity number 23. |
fatal4 | fatal4, severity number 24. |
info | info, severity number 9. |
info2 | info2, severity number 10. |
info3 | info3, severity number 11. |
info4 | info4, severity number 12. |
trace | trace, severity number 1. |
trace2 | trace2, severity number 2. |
trace3 | trace3, severity number 3. |
trace4 | trace4, severity number 4. |
warn | warn, severity number 13. |
warn2 | warn2, severity number 14. |
warn3 | warn3, severity number 15. |
warn4 | warn4, severity number 16. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
debug | supported | unknown | supported | unknown | supported |
debug2 | supported | unknown | supported | unknown | supported |
debug3 | supported | unknown | supported | unknown | supported |
debug4 | supported | unknown | supported | unknown | supported |
error | supported | unknown | supported | unknown | supported |
error2 | supported | unknown | supported | unknown | supported |
error3 | supported | unknown | supported | unknown | supported |
error4 | supported | unknown | supported | unknown | supported |
fatal | supported | unknown | supported | unknown | supported |
fatal2 | supported | unknown | supported | unknown | supported |
fatal3 | supported | unknown | supported | unknown | supported |
fatal4 | supported | unknown | supported | unknown | supported |
info | supported | unknown | supported | unknown | supported |
info2 | supported | unknown | supported | unknown | supported |
info3 | supported | unknown | supported | unknown | supported |
info4 | supported | unknown | supported | unknown | supported |
trace | supported | unknown | supported | unknown | supported |
trace2 | supported | unknown | supported | unknown | supported |
trace3 | supported | unknown | supported | unknown | supported |
trace4 | supported | unknown | supported | unknown | supported |
warn | supported | unknown | supported | unknown | supported |
warn2 | supported | unknown | supported | unknown | supported |
warn3 | supported | unknown | supported | unknown | supported |
warn4 | supported | unknown | supported | unknown | supported |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"trace",
"trace2",
"trace3",
"trace4",
"debug",
"debug2",
"debug3",
"debug4",
"info",
"info2",
"info3",
"info4",
"warn",
"warn2",
"warn3",
"warn4",
"error",
"error2",
"error3",
"error4",
"fatal",
"fatal2",
"fatal3",
"fatal4"
]
}
SimpleLogRecordProcessor
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
exporter | LogRecordExporter | true | Property is required and must be non-null. | No constraints. | Configure exporter. |
Constraints:
additionalProperties:falserequired:["exporter"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"exporter": {
"$ref": "#/$defs/LogRecordExporter",
"description": "Configure exporter.\nProperty is required and must be non-null.\n"
}
},
"required": [
"exporter"
]
}
SimpleSpanProcessor
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
exporter | SpanExporter | true | Property is required and must be non-null. | No constraints. | Configure exporter. |
Constraints:
additionalProperties:falserequired:["exporter"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"exporter": {
"$ref": "#/$defs/SpanExporter",
"description": "Configure exporter.\nProperty is required and must be non-null.\n"
}
},
"required": [
"exporter"
]
}
SpanExporter
SpanExporter is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
console | ConsoleExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be console. |
otlp_grpc | OtlpGrpcExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with gRPC transport. |
otlp_http | OtlpHttpExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with HTTP transport. |
otlp_file/developmentWARNING: This property is experimental. | ExperimentalOtlpFileExporter | false | If omitted, ignore. | No constraints. | Configure exporter to be OTLP with file transport. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
console | supported | supported | supported | unknown | supported |
otlp_grpc | supported | supported | supported | unknown | supported |
otlp_http | supported | supported | supported | unknown | supported |
otlp_file/development | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"otlp_http": {
"$ref": "#/$defs/OtlpHttpExporter",
"description": "Configure exporter to be OTLP with HTTP transport.\nIf omitted, ignore.\n"
},
"otlp_grpc": {
"$ref": "#/$defs/OtlpGrpcExporter",
"description": "Configure exporter to be OTLP with gRPC transport.\nIf omitted, ignore.\n"
},
"otlp_file/development": {
"$ref": "#/$defs/ExperimentalOtlpFileExporter",
"description": "Configure exporter to be OTLP with file transport.\nIf omitted, ignore.\n"
},
"console": {
"$ref": "#/$defs/ConsoleExporter",
"description": "Configure exporter to be console.\nIf omitted, ignore.\n"
}
}
}
SpanKind
This is a enum type.
| Value | Description |
|---|---|
client | client, a client span. |
consumer | consumer, a consumer span. |
internal | internal, an internal span. |
producer | producer, a producer span. |
server | server, a server span. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
client | not_implemented | unknown | supported | unknown | not_implemented |
consumer | not_implemented | unknown | supported | unknown | not_implemented |
internal | not_implemented | unknown | supported | unknown | not_implemented |
producer | not_implemented | unknown | supported | unknown | not_implemented |
server | not_implemented | unknown | supported | unknown | not_implemented |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"internal",
"server",
"client",
"producer",
"consumer"
]
}
SpanLimits
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attribute_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. Value must be non-negative. |
attribute_value_length_limit | one of: * integer* null | false | If omitted or null, there is no limit. | * minimum: 0 | Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. Value must be non-negative. |
event_attribute_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max attributes per span event. Value must be non-negative. |
event_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max span event count. Value must be non-negative. |
link_attribute_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max attributes per span link. Value must be non-negative. |
link_count_limit | one of: * integer* null | false | If omitted or null, 128 is used. | * minimum: 0 | Configure max span link count. Value must be non-negative. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attribute_count_limit | supported | unknown | supported | unknown | supported |
attribute_value_length_limit | supported | unknown | supported | unknown | supported |
event_attribute_count_limit | supported | unknown | supported | unknown | supported |
event_count_limit | supported | unknown | supported | unknown | supported |
link_attribute_count_limit | supported | unknown | supported | unknown | supported |
link_count_limit | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
# .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.
attribute_count_limit: 128
attribute_value_length_limit: 4096
event_attribute_count_limit: 128
event_count_limit: 128
link_attribute_count_limit: 128
link_count_limit: 128
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"attribute_value_length_limit": {
"type": [
"integer",
"null"
],
"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_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
},
"event_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max span event count. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
},
"link_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max span link count. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
},
"event_attribute_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max attributes per span event. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
},
"link_attribute_count_limit": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure max attributes per span link. \nValue must be non-negative.\nIf omitted or null, 128 is used.\n"
}
}
}
SpanProcessor
SpanProcessor is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
batch | BatchSpanProcessor | false | If omitted, ignore. | No constraints. | Configure a batch span processor. |
simple | SimpleSpanProcessor | false | If omitted, ignore. | No constraints. | Configure a simple span processor. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
batch | supported | supported | supported | unknown | supported |
simple | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"batch": {
"$ref": "#/$defs/BatchSpanProcessor",
"description": "Configure a batch span processor.\nIf omitted, ignore.\n"
},
"simple": {
"$ref": "#/$defs/SimpleSpanProcessor",
"description": "Configure a simple span processor.\nIf omitted, ignore.\n"
}
}
}
SumAggregation
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
TextMapPropagator
TextMapPropagator is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
b3 | B3Propagator | false | If omitted, ignore. | No constraints. | Include the zipkin b3 propagator. |
b3multi | B3MultiPropagator | false | If omitted, ignore. | No constraints. | Include the zipkin b3 multi propagator. |
baggage | BaggagePropagator | false | If omitted, ignore. | No constraints. | Include the w3c baggage propagator. |
tracecontext | TraceContextPropagator | false | If omitted, ignore. | No constraints. | Include the w3c trace context propagator. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
b3 | supported | supported | supported | unknown | supported |
b3multi | supported | supported | supported | unknown | supported |
baggage | supported | supported | supported | unknown | supported |
tracecontext | supported | supported | supported | unknown | supported |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"tracecontext": {
"$ref": "#/$defs/TraceContextPropagator",
"description": "Include the w3c trace context propagator.\nIf omitted, ignore.\n"
},
"baggage": {
"$ref": "#/$defs/BaggagePropagator",
"description": "Include the w3c baggage propagator.\nIf omitted, ignore.\n"
},
"b3": {
"$ref": "#/$defs/B3Propagator",
"description": "Include the zipkin b3 propagator.\nIf omitted, ignore.\n"
},
"b3multi": {
"$ref": "#/$defs/B3MultiPropagator",
"description": "Include the zipkin b3 multi propagator.\nIf omitted, ignore.\n"
}
}
}
TraceContextPropagator
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
TraceIdRatioBasedSampler
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
ratio | one of: * number* null | false | If omitted or null, 1.0 is used. | * minimum: 0* maximum: 1 | Configure trace_id_ratio. |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"ratio": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1,
"description": "Configure trace_id_ratio.\nIf omitted or null, 1.0 is used.\n"
}
}
}
TracerProvider
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
id_generator | IdGenerator | false | If omitted, RandomIdGenerator is used. | No constraints. | Configure the trace and span ID generator. |
limits | SpanLimits | false | If omitted, default values as described in SpanLimits are used. | No constraints. | Configure span limits. See also attribute_limits. |
processors | array of SpanProcessor | true | Property is required and must be non-null. | * minItems: 1 | Configure span processors. |
sampler | Sampler | false | If omitted, parent based sampler with a root of always_on is used. | No constraints. | Configure the sampler. |
tracer_configurator/developmentWARNING: This property is experimental. | ExperimentalTracerConfigurator | false | If omitted, all tracers use default values as described in ExperimentalTracerConfig. | No constraints. | Configure tracers. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
id_generator | supported | unknown | supported | unknown | supported |
limits | supported | unknown | supported | unknown | supported |
processors | supported | unknown | supported | unknown | supported |
sampler | supported | unknown | supported | unknown | supported |
tracer_configurator/development | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["processors"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"processors": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/SpanProcessor"
},
"description": "Configure span processors.\nProperty is required and must be non-null.\n"
},
"limits": {
"$ref": "#/$defs/SpanLimits",
"description": "Configure span limits. See also attribute_limits.\nIf omitted, default values as described in SpanLimits are used.\n"
},
"sampler": {
"$ref": "#/$defs/Sampler",
"description": "Configure the sampler.\nIf omitted, parent based sampler with a root of always_on is used.\n"
},
"id_generator": {
"$ref": "#/$defs/IdGenerator",
"description": "Configure the trace and span ID generator.\nIf omitted, RandomIdGenerator is used.\n"
},
"tracer_configurator/development": {
"$ref": "#/$defs/ExperimentalTracerConfigurator",
"description": "Configure tracers.\nIf omitted, all tracers use default values as described in ExperimentalTracerConfig.\n"
}
},
"required": [
"processors"
]
}
View
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
selector | ViewSelector | true | Property is required and must be non-null. | 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 | true | Property is required and must be non-null. | No constraints. | Configure view stream. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
selector | supported | unknown | supported | unknown | supported |
stream | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["selector","stream"]
Usages:
Snippets:
Kitchen Sink
selector:
instrument_name: my_instrument
instrument_type: histogram
unit: ms
meter_name: my-meter
meter_version: 1.0.0
meter_schema_url: https://opentelemetry.io/schemas/1.16.0
stream:
name: new_instrument_name
description: new_description
aggregation:
explicit_bucket_histogram:
boundaries:
- 0.0
- 5.0
- 10.0
- 25.0
- 50.0
- 75.0
- 100.0
- 250.0
- 500.0
- 750.0
- 1000.0
- 2500.0
- 5000.0
- 7500.0
- 10000.0
record_min_max: true
aggregation_cardinality_limit: 2000
attribute_keys:
included:
- foo.*
excluded:
- foo.bar
Override Default Histogram Buckets
# select a specific histogram instrument and override the default buckets
selector:
instrument_name: my.instrument.name
instrument_type: histogram
stream:
aggregation:
explicit_bucket_histogram:
boundaries:
- 0
- 5.0
- 10.0
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"selector": {
"$ref": "#/$defs/ViewSelector",
"description": "Configure view selector. \nSelection criteria is additive as described in https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#instrument-selection-criteria.\nProperty is required and must be non-null.\n"
},
"stream": {
"$ref": "#/$defs/ViewStream",
"description": "Configure view stream.\nProperty is required and must be non-null.\n"
}
},
"required": [
"selector",
"stream"
]
}
ViewSelector
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
instrument_name | one of: * string* null | false | If omitted or null, all instrument names match. | No constraints. | Configure instrument name selection criteria. |
instrument_type | InstrumentType | false | If omitted, all instrument types match. | No constraints. | Configure instrument type selection criteria. |
meter_name | one of: * string* null | false | If omitted or null, all meter names match. | No constraints. | Configure meter name selection criteria. |
meter_schema_url | one of: * string* null | false | If omitted or null, all meter schema URLs match. | No constraints. | Configure meter schema url selection criteria. |
meter_version | one of: * string* null | false | If omitted or null, all meter versions match. | No constraints. | Configure meter version selection criteria. |
unit | one of: * string* null | false | If omitted or null, all instrument units match. | No constraints. | Configure the instrument unit selection criteria. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
instrument_name | supported | unknown | supported | unknown | supported |
instrument_type | supported | unknown | supported | unknown | supported |
meter_name | supported | unknown | supported | unknown | supported |
meter_schema_url | supported | unknown | supported | unknown | supported |
meter_version | supported | unknown | supported | unknown | supported |
unit | supported | unknown | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"instrument_name": {
"type": [
"string",
"null"
],
"description": "Configure instrument name selection criteria.\nIf omitted or null, all instrument names match.\n"
},
"instrument_type": {
"$ref": "#/$defs/InstrumentType",
"description": "Configure instrument type selection criteria.\nValues include:\n* counter: Synchronous counter instruments.\n* gauge: Synchronous gauge instruments.\n* histogram: Synchronous histogram instruments.\n* observable_counter: Asynchronous counter instruments.\n* observable_gauge: Asynchronous gauge instruments.\n* observable_up_down_counter: Asynchronous up down counter instruments.\n* up_down_counter: Synchronous up down counter instruments.\nIf omitted, all instrument types match.\n"
},
"unit": {
"type": [
"string",
"null"
],
"description": "Configure the instrument unit selection criteria.\nIf omitted or null, all instrument units match.\n"
},
"meter_name": {
"type": [
"string",
"null"
],
"description": "Configure meter name selection criteria.\nIf omitted or null, all meter names match.\n"
},
"meter_version": {
"type": [
"string",
"null"
],
"description": "Configure meter version selection criteria.\nIf omitted or null, all meter versions match.\n"
},
"meter_schema_url": {
"type": [
"string",
"null"
],
"description": "Configure meter schema url selection criteria.\nIf omitted or null, all meter schema URLs match.\n"
}
}
}
ViewStream
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
aggregation | Aggregation | false | If omitted, default is used. | No constraints. | Configure aggregation of the resulting stream(s). |
aggregation_cardinality_limit | one of: * integer* null | false | If omitted or null, the metric reader's default cardinality limit is used. | * exclusiveMinimum: 0 | Configure the aggregation cardinality limit. |
attribute_keys | IncludeExclude | false | If omitted, all attribute keys are retained. | No constraints. | Configure attribute keys retained in the resulting stream(s). |
description | one of: * string* null | false | If omitted or null, the instrument's origin description is used. | No constraints. | Configure metric description of the resulting stream(s). |
name | one of: * string* null | false | If omitted or null, the instrument's original name is used. | No constraints. | Configure metric name of the resulting stream(s). |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
aggregation | supported | unknown | supported | unknown | ignored |
aggregation_cardinality_limit | supported | unknown | supported | unknown | not_implemented |
attribute_keys | supported | unknown | supported | unknown | supported |
description | supported | unknown | supported | unknown | supported |
name | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": [
"string",
"null"
],
"description": "Configure metric name of the resulting stream(s).\nIf omitted or null, the instrument's original name is used.\n"
},
"description": {
"type": [
"string",
"null"
],
"description": "Configure metric description of the resulting stream(s).\nIf omitted or null, the instrument's origin description is used.\n"
},
"aggregation": {
"$ref": "#/$defs/Aggregation",
"description": "Configure aggregation of the resulting stream(s).\nIf omitted, default is used.\n"
},
"aggregation_cardinality_limit": {
"type": [
"integer",
"null"
],
"exclusiveMinimum": 0,
"description": "Configure the aggregation cardinality limit.\nIf omitted or null, the metric reader's default cardinality limit is used.\n"
},
"attribute_keys": {
"$ref": "#/$defs/IncludeExclude",
"description": "Configure attribute keys retained in the resulting stream(s).\nIf omitted, all attribute keys are retained.\n"
}
}
}
Experimental Types
ExperimentalCodeInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
semconv | ExperimentalSemconvConfig | false | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure code semantic convention version and migration behavior. This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting. See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/ |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"semconv": {
"$ref": "#/$defs/ExperimentalSemconvConfig",
"description": "Configure code semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
}
}
}
ExperimentalComposableAlwaysOffSampler
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalComposableAlwaysOnSampler
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalComposableParentThresholdSampler
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
root | ExperimentalComposableSampler | true | Property is required and must be non-null. | No constraints. | Sampler to use when there is no parent. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
root | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:falserequired:["root"]
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"root": {
"$ref": "#/$defs/ExperimentalComposableSampler",
"description": "Sampler to use when there is no parent.\nProperty is required and must be non-null.\n"
}
},
"required": [
"root"
]
}
ExperimentalComposableProbabilitySampler
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
ratio | one of: * number* null | false | If omitted or null, 1.0 is used. | * minimum: 0* maximum: 1 | Configure ratio. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
ratio | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"ratio": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1,
"description": "Configure ratio.\nIf omitted or null, 1.0 is used.\n"
}
}
}
ExperimentalComposableRuleBasedSampler
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
rules | array of ExperimentalComposableRuleBasedSamplerRule | false | If omitted, no span is sampled. | * minItems: 1 | The rules for the sampler, matched in order. Each rule can have multiple match conditions. All conditions must match for the rule to match. If no conditions are specified, the rule matches all spans that reach it. If no rules match, the span is not sampled. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
rules | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"rules": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ExperimentalComposableRuleBasedSamplerRule"
},
"description": "The rules for the sampler, matched in order.\nEach rule can have multiple match conditions. All conditions must match for the rule to match.\nIf no conditions are specified, the rule matches all spans that reach it.\nIf no rules match, the span is not sampled.\nIf omitted, no span is sampled.\n"
}
}
}
ExperimentalComposableRuleBasedSamplerRule
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attribute_patterns | ExperimentalComposableRuleBasedSamplerRuleAttributePatterns | false | If omitted, ignore. | No constraints. | Patterns to match against a single attribute. Non-string attributes are matched using their string representation: for example, a pattern of "4*" would match any http.response.status_code in 400-499. For array attributes, if any item matches, it is considered a match. |
attribute_values | ExperimentalComposableRuleBasedSamplerRuleAttributeValues | false | If omitted, ignore. | No constraints. | Values to match against a single attribute. Non-string attributes are matched using their string representation: for example, a value of "404" would match the http.response.status_code 404. For array attributes, if any item matches, it is considered a match. |
parent | array of ExperimentalSpanParent | false | If omitted, ignore. | * minItems: 1 | The parent span types to match. |
sampler | ExperimentalComposableSampler | true | Property is required and must be non-null. | No constraints. | The sampler to use for matching spans. |
span_kinds | array of SpanKind | false | If omitted, ignore. | * minItems: 1 | The span kinds to match. If the span's kind matches any of these, it matches. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attribute_patterns | ignored | not_implemented | supported | unknown | not_implemented |
attribute_values | ignored | not_implemented | supported | unknown | not_implemented |
parent | ignored | not_implemented | supported | unknown | not_implemented |
sampler | ignored | not_implemented | supported | unknown | not_implemented |
span_kinds | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:falserequired:["sampler"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"description": "A rule for ExperimentalComposableRuleBasedSampler. A rule can have multiple match conditions - the sampler will be applied if all match. \nIf no conditions are specified, the rule matches all spans that reach it.\n",
"additionalProperties": false,
"properties": {
"attribute_values": {
"$ref": "#/$defs/ExperimentalComposableRuleBasedSamplerRuleAttributeValues",
"description": "Values to match against a single attribute. Non-string attributes are matched using their string representation:\nfor example, a value of \"404\" would match the http.response.status_code 404. For array attributes, if any\nitem matches, it is considered a match.\nIf omitted, ignore.\n"
},
"attribute_patterns": {
"$ref": "#/$defs/ExperimentalComposableRuleBasedSamplerRuleAttributePatterns",
"description": "Patterns to match against a single attribute. Non-string attributes are matched using their string representation:\nfor example, a pattern of \"4*\" would match any http.response.status_code in 400-499. For array attributes, if any\nitem matches, it is considered a match.\nIf omitted, ignore.\n"
},
"span_kinds": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/SpanKind"
},
"description": "The span kinds to match. If the span's kind matches any of these, it matches.\nValues include:\n* client: client, a client span.\n* consumer: consumer, a consumer span.\n* internal: internal, an internal span.\n* producer: producer, a producer span.\n* server: server, a server span.\nIf omitted, ignore.\n"
},
"parent": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ExperimentalSpanParent"
},
"description": "The parent span types to match.\nValues include:\n* local: local, a local parent.\n* none: none, no parent, i.e., the trace root.\n* remote: remote, a remote parent.\nIf omitted, ignore.\n"
},
"sampler": {
"$ref": "#/$defs/ExperimentalComposableSampler",
"description": "The sampler to use for matching spans.\nProperty is required and must be non-null.\n"
}
},
"required": [
"sampler"
]
}
ExperimentalComposableRuleBasedSamplerRuleAttributePatterns
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
excluded | array of string | false | If omitted, .included attributes are included. | * minItems: 1 | Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included). Matching is case-sensitive. 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. |
included | array of string | false | If omitted, all values are included. | * minItems: 1 | Configure list of value patterns to include. Matching is case-sensitive. 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. |
key | string | true | Property is required and must be non-null. | No constraints. | The attribute key to match against. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
excluded | ignored | not_implemented | supported | unknown | not_implemented |
included | ignored | not_implemented | supported | unknown | not_implemented |
key | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:falserequired:["key"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"description": "The attribute key to match against.\nProperty is required and must be non-null.\n"
},
"included": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure list of value patterns to include.\nMatching is case-sensitive. Values are evaluated to match as follows:\n * If the value exactly matches.\n * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nIf omitted, all values are included.\n"
},
"excluded": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure list of value patterns to exclude. Applies after .included (i.e. excluded has higher priority than included).\nMatching is case-sensitive. Values are evaluated to match as follows:\n * If the value exactly matches.\n * If the value matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nIf omitted, .included attributes are included.\n"
}
},
"required": [
"key"
]
}
ExperimentalComposableRuleBasedSamplerRuleAttributeValues
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
key | string | true | Property is required and must be non-null. | No constraints. | The attribute key to match against. |
values | array of string | true | Property is required and must be non-null. | * minItems: 1 | The attribute values to match against. If the attribute's value matches any of these, it matches. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
key | ignored | not_implemented | supported | unknown | not_implemented |
values | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:falserequired:["key","values"]
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"key": {
"type": "string",
"description": "The attribute key to match against.\nProperty is required and must be non-null.\n"
},
"values": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "The attribute values to match against. If the attribute's value matches any of these, it matches.\nProperty is required and must be non-null.\n"
}
},
"required": [
"key",
"values"
]
}
ExperimentalComposableSampler
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
always_off | ExperimentalComposableAlwaysOffSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be always_off. |
always_on | ExperimentalComposableAlwaysOnSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be always_on. |
parent_threshold | ExperimentalComposableParentThresholdSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be parent_threshold. |
probability | ExperimentalComposableProbabilitySampler | false | If omitted, ignore. | No constraints. | Configure sampler to be probability. |
rule_based | ExperimentalComposableRuleBasedSampler | false | If omitted, ignore. | No constraints. | Configure sampler to be rule_based. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
always_off | ignored | not_implemented | supported | unknown | not_implemented |
always_on | ignored | not_implemented | supported | unknown | not_implemented |
parent_threshold | ignored | not_implemented | supported | unknown | not_implemented |
probability | ignored | not_implemented | supported | unknown | not_implemented |
rule_based | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
Sampler.composite/developmentExperimentalComposableParentThresholdSampler.rootExperimentalComposableRuleBasedSamplerRule.sampler
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"always_off": {
"$ref": "#/$defs/ExperimentalComposableAlwaysOffSampler",
"description": "Configure sampler to be always_off.\nIf omitted, ignore.\n"
},
"always_on": {
"$ref": "#/$defs/ExperimentalComposableAlwaysOnSampler",
"description": "Configure sampler to be always_on.\nIf omitted, ignore.\n"
},
"parent_threshold": {
"$ref": "#/$defs/ExperimentalComposableParentThresholdSampler",
"description": "Configure sampler to be parent_threshold.\nIf omitted, ignore.\n"
},
"probability": {
"$ref": "#/$defs/ExperimentalComposableProbabilitySampler",
"description": "Configure sampler to be probability.\nIf omitted, ignore.\n"
},
"rule_based": {
"$ref": "#/$defs/ExperimentalComposableRuleBasedSampler",
"description": "Configure sampler to be rule_based.\nIf omitted, ignore.\n"
}
}
}
ExperimentalContainerResourceDetector
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalDbInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
semconv | ExperimentalSemconvConfig | false | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure database semantic convention version and migration behavior. This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting. See database migration: https://opentelemetry.io/docs/specs/semconv/database/ |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"semconv": {
"$ref": "#/$defs/ExperimentalSemconvConfig",
"description": "Configure database semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee database migration: https://opentelemetry.io/docs/specs/semconv/database/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
}
}
}
ExperimentalEventToSpanEventBridgeLogRecordProcessor
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalGenAiInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
semconv | ExperimentalSemconvConfig | false | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure GenAI semantic convention version and migration behavior. This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting. See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/ |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"semconv": {
"$ref": "#/$defs/ExperimentalSemconvConfig",
"description": "Configure GenAI semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
}
}
}
ExperimentalGeneralInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
code | ExperimentalCodeInstrumentation | false | If omitted, defaults as described in ExperimentalCodeInstrumentation are used. | No constraints. | Configure instrumentations following the code semantic conventions. See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/ |
db | ExperimentalDbInstrumentation | false | If omitted, defaults as described in ExperimentalDbInstrumentation are used. | No constraints. | Configure instrumentations following the database semantic conventions. See database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/ |
gen_ai | ExperimentalGenAiInstrumentation | false | If omitted, defaults as described in ExperimentalGenAiInstrumentation are used. | No constraints. | Configure instrumentations following the GenAI semantic conventions. See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/ |
http | ExperimentalHttpInstrumentation | false | If omitted, defaults as described in ExperimentalHttpInstrumentation are used. | No constraints. | Configure instrumentations following the http semantic conventions. See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/ |
messaging | ExperimentalMessagingInstrumentation | false | If omitted, defaults as described in ExperimentalMessagingInstrumentation are used. | No constraints. | Configure instrumentations following the messaging semantic conventions. See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/ |
rpc | ExperimentalRpcInstrumentation | false | If omitted, defaults as described in ExperimentalRpcInstrumentation are used. | No constraints. | Configure instrumentations following the RPC semantic conventions. See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/ |
sanitization | ExperimentalSanitization | false | If omitted, defaults as described in ExperimentalSanitization are used. | No constraints. | Configure general sanitization options. |
stability_opt_in_list | one of: * string* null | false | If omitted or null, no opt-in is configured and instrumentations continue emitting their default semantic convention version. | No constraints. | Configure semantic convention stability opt-in as a comma-separated list. This property follows the format and semantics of the OTEL_SEMCONV_STABILITY_OPT_IN environment variable. Controls the emission of stable vs. experimental semantic conventions for instrumentation. This setting is only intended for migrating from experimental to stable semantic conventions. Known values include: - http: Emit stable HTTP and networking conventions only - http/dup: Emit both old and stable HTTP and networking conventions (for phased migration) - database: Emit stable database conventions only - database/dup: Emit both old and stable database conventions (for phased migration) - rpc: Emit stable RPC conventions only - rpc/dup: Emit both experimental and stable RPC conventions (for phased migration) - messaging: Emit stable messaging conventions only - messaging/dup: Emit both old and stable messaging conventions (for phased migration) - code: Emit stable code conventions only - code/dup: Emit both old and stable code conventions (for phased migration) Multiple values can be specified as a comma-separated list (e.g., "http,database/dup"). Additional signal types may be supported in future versions. Domain-specific semconv properties (e.g., .instrumentation/development.general.db.semconv) take precedence over this general setting. See: - HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/ - Database migration: https://opentelemetry.io/docs/specs/semconv/database/ - RPC: https://opentelemetry.io/docs/specs/semconv/rpc/ - Messaging: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/ |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
code | not_applicable | not_implemented | supported | unknown | supported |
db | not_applicable | not_implemented | supported | unknown | supported |
gen_ai | not_applicable | not_implemented | supported | unknown | supported |
http | not_applicable | not_implemented | supported | unknown | supported |
messaging | not_applicable | not_implemented | supported | unknown | supported |
rpc | not_applicable | not_implemented | supported | unknown | supported |
sanitization | not_applicable | not_implemented | supported | unknown | supported |
stability_opt_in_list | not_applicable | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Semconv Stability Opt In
# Configure semantic convention stability opt-in using a comma-separated list
# This format is compatible with OTEL_SEMCONV_STABILITY_OPT_IN environment variable
stability_opt_in_list: "http,database/dup"
# Alternatively, configure per-domain semconv settings (takes precedence over stability_opt_in_list)
http:
# Use stable HTTP and networking conventions (latest version)
semconv:
version: 1
db:
# Use stable database conventions and also emit previous version for phased migration
semconv:
version: 1
dual_emit: true
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"http": {
"$ref": "#/$defs/ExperimentalHttpInstrumentation",
"description": "Configure instrumentations following the http semantic conventions.\nSee http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/\nIf omitted, defaults as described in ExperimentalHttpInstrumentation are used.\n"
},
"code": {
"$ref": "#/$defs/ExperimentalCodeInstrumentation",
"description": "Configure instrumentations following the code semantic conventions.\nSee code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/\nIf omitted, defaults as described in ExperimentalCodeInstrumentation are used.\n"
},
"db": {
"$ref": "#/$defs/ExperimentalDbInstrumentation",
"description": "Configure instrumentations following the database semantic conventions.\nSee database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/\nIf omitted, defaults as described in ExperimentalDbInstrumentation are used.\n"
},
"gen_ai": {
"$ref": "#/$defs/ExperimentalGenAiInstrumentation",
"description": "Configure instrumentations following the GenAI semantic conventions.\nSee GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/\nIf omitted, defaults as described in ExperimentalGenAiInstrumentation are used.\n"
},
"messaging": {
"$ref": "#/$defs/ExperimentalMessagingInstrumentation",
"description": "Configure instrumentations following the messaging semantic conventions.\nSee messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/\nIf omitted, defaults as described in ExperimentalMessagingInstrumentation are used.\n"
},
"rpc": {
"$ref": "#/$defs/ExperimentalRpcInstrumentation",
"description": "Configure instrumentations following the RPC semantic conventions.\nSee RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/\nIf omitted, defaults as described in ExperimentalRpcInstrumentation are used.\n"
},
"sanitization": {
"$ref": "#/$defs/ExperimentalSanitization",
"description": "Configure general sanitization options.\nIf omitted, defaults as described in ExperimentalSanitization are used.\n"
},
"stability_opt_in_list": {
"type": [
"string",
"null"
],
"description": "Configure semantic convention stability opt-in as a comma-separated list.\nThis property follows the format and semantics of the OTEL_SEMCONV_STABILITY_OPT_IN environment variable.\nControls the emission of stable vs. experimental semantic conventions for instrumentation.\nThis setting is only intended for migrating from experimental to stable semantic conventions.\n\nKnown values include:\n- http: Emit stable HTTP and networking conventions only\n- http/dup: Emit both old and stable HTTP and networking conventions (for phased migration)\n- database: Emit stable database conventions only\n- database/dup: Emit both old and stable database conventions (for phased migration)\n- rpc: Emit stable RPC conventions only\n- rpc/dup: Emit both experimental and stable RPC conventions (for phased migration)\n- messaging: Emit stable messaging conventions only\n- messaging/dup: Emit both old and stable messaging conventions (for phased migration)\n- code: Emit stable code conventions only\n- code/dup: Emit both old and stable code conventions (for phased migration)\n\nMultiple values can be specified as a comma-separated list (e.g., \"http,database/dup\").\nAdditional signal types may be supported in future versions.\n\nDomain-specific semconv properties (e.g., .instrumentation/development.general.db.semconv) take precedence over this general setting.\n\nSee:\n- HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n- Database migration: https://opentelemetry.io/docs/specs/semconv/database/\n- RPC: https://opentelemetry.io/docs/specs/semconv/rpc/\n- Messaging: https://opentelemetry.io/docs/specs/semconv/messaging/messaging-spans/\nIf omitted or null, no opt-in is configured and instrumentations continue emitting their default semantic convention version.\n"
}
}
}
ExperimentalHostResourceDetector
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalHttpClientInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
known_methods | array of string | false | If omitted, HTTP methods GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are known. | * minItems: 0 | Override the default list of known HTTP methods. Known methods are case-sensitive. This is a full override of the default known methods, not a list of known methods in addition to the defaults. |
request_captured_headers | array of string | false | If omitted, no outbound request headers are captured. | * minItems: 1 | Configure headers to capture for outbound http requests. |
response_captured_headers | array of string | false | If omitted, no inbound response headers are captured. | * minItems: 1 | Configure headers to capture for inbound http responses. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
known_methods | not_applicable | not_implemented | supported | unknown | supported |
request_captured_headers | not_applicable | not_implemented | supported | unknown | supported |
response_captured_headers | not_applicable | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"request_captured_headers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure headers to capture for outbound http requests.\nIf omitted, no outbound request headers are captured.\n"
},
"response_captured_headers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure headers to capture for inbound http responses.\nIf omitted, no inbound response headers are captured.\n"
},
"known_methods": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Override the default list of known HTTP methods.\nKnown methods are case-sensitive.\nThis is a full override of the default known methods, not a list of known methods in addition to the defaults.\nIf omitted, HTTP methods GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are known.\n"
}
}
}
ExperimentalHttpInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
client | ExperimentalHttpClientInstrumentation | false | If omitted, defaults as described in ExperimentalHttpClientInstrumentation are used. | No constraints. | Configure instrumentations following the http client semantic conventions. |
semconv | ExperimentalSemconvConfig | false | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure HTTP semantic convention version and migration behavior. This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting. See HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/ |
server | ExperimentalHttpServerInstrumentation | false | If omitted, defaults as described in ExperimentalHttpServerInstrumentation are used. | No constraints. | Configure instrumentations following the http server semantic conventions. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
client | not_applicable | not_implemented | supported | unknown | supported |
semconv | not_applicable | not_implemented | supported | unknown | supported |
server | not_applicable | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"semconv": {
"$ref": "#/$defs/ExperimentalSemconvConfig",
"description": "Configure HTTP semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee HTTP migration: https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
},
"client": {
"$ref": "#/$defs/ExperimentalHttpClientInstrumentation",
"description": "Configure instrumentations following the http client semantic conventions.\nIf omitted, defaults as described in ExperimentalHttpClientInstrumentation are used.\n"
},
"server": {
"$ref": "#/$defs/ExperimentalHttpServerInstrumentation",
"description": "Configure instrumentations following the http server semantic conventions.\nIf omitted, defaults as described in ExperimentalHttpServerInstrumentation are used.\n"
}
}
}
ExperimentalHttpServerInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
known_methods | array of string | false | If omitted, HTTP methods GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are known. | * minItems: 0 | Override the default list of known HTTP methods. Known methods are case-sensitive. This is a full override of the default known methods, not a list of known methods in addition to the defaults. |
request_captured_headers | array of string | false | If omitted, no request headers are captured. | * minItems: 1 | Configure headers to capture for inbound http requests. |
response_captured_headers | array of string | false | If omitted, no response headers are captures. | * minItems: 1 | Configure headers to capture for outbound http responses. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
known_methods | not_applicable | not_implemented | supported | unknown | supported |
request_captured_headers | not_applicable | not_implemented | supported | unknown | supported |
response_captured_headers | not_applicable | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"request_captured_headers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure headers to capture for inbound http requests.\nIf omitted, no request headers are captured.\n"
},
"response_captured_headers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
},
"description": "Configure headers to capture for outbound http responses.\nIf omitted, no response headers are captures.\n"
},
"known_methods": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "Override the default list of known HTTP methods.\nKnown methods are case-sensitive.\nThis is a full override of the default known methods, not a list of known methods in addition to the defaults.\nIf omitted, HTTP methods GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are known.\n"
}
}
}
ExperimentalInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
cpp | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure C++ language-specific instrumentation libraries. |
dotnet | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure .NET language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
erlang | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure Erlang language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
general | ExperimentalGeneralInstrumentation | false | If omitted, default values as described in ExperimentalGeneralInstrumentation are used. | No constraints. | 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. |
go | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure Go language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
java | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure Java language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
js | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure JavaScript language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
php | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure PHP language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
python | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure Python language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
ruby | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure Ruby language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
rust | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | No constraints. | Configure Rust language-specific instrumentation libraries. Each entry's key identifies a particular instrumentation library. The corresponding value configures it. |
swift | ExperimentalLanguageSpecificInstrumentation | false | If omitted, instrumentation defaults are used. | 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 | cpp | go | java | js | php |
|---|---|---|---|---|---|
cpp | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
dotnet | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
erlang | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
general | not_applicable | not_implemented | supported | unknown | supported |
go | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
java | not_applicable | not_implemented | supported | unknown | not_applicable |
js | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
php | not_applicable | not_implemented | not_applicable | unknown | supported |
python | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
ruby | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
rust | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
swift | not_applicable | not_implemented | not_applicable | unknown | not_applicable |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
general:
http:
semconv:
version: 1
experimental: true
dual_emit: true
client:
request_captured_headers:
- Content-Type
- Accept
response_captured_headers:
- Content-Type
- Content-Encoding
known_methods:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
server:
request_captured_headers:
- Content-Type
- Accept
response_captured_headers:
- Content-Type
- Content-Encoding
known_methods:
- CONNECT
- DELETE
- GET
- HEAD
- OPTIONS
- PATCH
- POST
- PUT
- TRACE
db:
semconv:
version: 1
experimental: false
dual_emit: false
rpc:
semconv:
version: 1
experimental: false
dual_emit: true
messaging:
semconv:
version: 1
experimental: true
dual_emit: false
sanitization:
url:
sensitive_query_parameters:
- AWSAccessKeyId
- Signature
- sig
- X-Goog-Signature
# Domain-specific semconv sections above (http, db, etc.) take precedence over this general setting.
stability_opt_in_list: "http/dup,database"
cpp:
example:
property: "value"
dotnet:
example:
property: "value"
erlang:
example:
property: "value"
go:
example:
property: "value"
java:
example:
property: "value"
js:
example:
property: "value"
php:
example:
property: "value"
python:
example:
property: "value"
ruby:
example:
property: "value"
rust:
example:
property: "value"
swift:
example:
property: "value"
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"general": {
"$ref": "#/$defs/ExperimentalGeneralInstrumentation",
"description": "Configure general SemConv options that may apply to multiple languages and instrumentations.\nInstrumenation may merge general config options with the language specific configuration at .instrumentation..\nIf omitted, default values as described in ExperimentalGeneralInstrumentation are used.\n"
},
"cpp": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure C++ language-specific instrumentation libraries.\nIf omitted, instrumentation defaults are used.\n"
},
"dotnet": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure .NET language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"erlang": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Erlang language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"go": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Go language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"java": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Java language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"js": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure JavaScript language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"php": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure PHP language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"python": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Python language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"ruby": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Ruby language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"rust": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Rust language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
},
"swift": {
"$ref": "#/$defs/ExperimentalLanguageSpecificInstrumentation",
"description": "Configure Swift language-specific instrumentation libraries.\nEach entry's key identifies a particular instrumentation library. The corresponding value configures it.\nIf omitted, instrumentation defaults are used.\n"
}
}
}
ExperimentalJaegerRemoteSampler
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
endpoint | string | true | Property is required and must be non-null. | No constraints. | Configure the endpoint of the jaeger remote sampling service. |
initial_sampler | Sampler | true | Property is required and must be non-null. | No constraints. | Configure the initial sampler used before first configuration is fetched. |
interval | one of: * integer* null | false | If omitted or null, 60000 is used. | * minimum: 0 | Configure the polling interval (in milliseconds) to fetch from the remote sampling service. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
endpoint | not_implemented | not_implemented | supported | unknown | not_implemented |
initial_sampler | not_implemented | not_implemented | supported | unknown | not_implemented |
interval | not_implemented | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:falserequired:["endpoint","initial_sampler"]
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"endpoint": {
"type": [
"string"
],
"description": "Configure the endpoint of the jaeger remote sampling service.\nProperty is required and must be non-null.\n"
},
"interval": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "Configure the polling interval (in milliseconds) to fetch from the remote sampling service.\nIf omitted or null, 60000 is used.\n"
},
"initial_sampler": {
"$ref": "#/$defs/Sampler",
"description": "Configure the initial sampler used before first configuration is fetched.\nProperty is required and must be non-null.\n"
}
},
"required": [
"endpoint",
"initial_sampler"
]
}
ExperimentalLanguageSpecificInstrumentation
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:{"type":"object"}
Usages:
ExperimentalInstrumentation.cppExperimentalInstrumentation.dotnetExperimentalInstrumentation.erlangExperimentalInstrumentation.goExperimentalInstrumentation.javaExperimentalInstrumentation.jsExperimentalInstrumentation.phpExperimentalInstrumentation.pythonExperimentalInstrumentation.rubyExperimentalInstrumentation.rustExperimentalInstrumentation.swift
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": "object"
}
}
ExperimentalLoggerConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
enabled | one of: * boolean* null | false | If omitted or null, true is used. | No constraints. | Configure if the logger is enabled or not. |
minimum_severity | SeverityNumber | false | If omitted, severity filtering is not applied. | No constraints. | Configure severity filtering. Log records with an non-zero (i.e. unspecified) severity number which is less than minimum_severity are not processed. |
trace_based | one of: * boolean* null | false | If omitted or null, trace based filtering is not applied. | No constraints. | Configure trace based filtering. If true, log records associated with unsampled trace contexts traces are not processed. If false, or if a log record is not associated with a trace context, trace based filtering is not applied. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
enabled | not_implemented | unknown | supported | unknown | supported |
minimum_severity | not_implemented | unknown | supported | unknown | not_implemented |
trace_based | not_implemented | unknown | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"enabled": {
"type": [
"boolean",
"null"
],
"description": "Configure if the logger is enabled or not.\nIf omitted or null, true is used.\n"
},
"minimum_severity": {
"$ref": "#/$defs/SeverityNumber",
"description": "Configure severity filtering.\nLog records with an non-zero (i.e. unspecified) severity number which is less than minimum_severity are not processed.\nValues include:\n* debug: debug, severity number 5.\n* debug2: debug2, severity number 6.\n* debug3: debug3, severity number 7.\n* debug4: debug4, severity number 8.\n* error: error, severity number 17.\n* error2: error2, severity number 18.\n* error3: error3, severity number 19.\n* error4: error4, severity number 20.\n* fatal: fatal, severity number 21.\n* fatal2: fatal2, severity number 22.\n* fatal3: fatal3, severity number 23.\n* fatal4: fatal4, severity number 24.\n* info: info, severity number 9.\n* info2: info2, severity number 10.\n* info3: info3, severity number 11.\n* info4: info4, severity number 12.\n* trace: trace, severity number 1.\n* trace2: trace2, severity number 2.\n* trace3: trace3, severity number 3.\n* trace4: trace4, severity number 4.\n* warn: warn, severity number 13.\n* warn2: warn2, severity number 14.\n* warn3: warn3, severity number 15.\n* warn4: warn4, severity number 16.\nIf omitted, severity filtering is not applied.\n"
},
"trace_based": {
"type": [
"boolean",
"null"
],
"description": "Configure trace based filtering.\nIf true, log records associated with unsampled trace contexts traces are not processed. If false, or if a log record is not associated with a trace context, trace based filtering is not applied.\nIf omitted or null, trace based filtering is not applied.\n"
}
}
}
ExperimentalLoggerConfigurator
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
default_config | ExperimentalLoggerConfig | false | If omitted, unmatched .loggers use default values as described in ExperimentalLoggerConfig. | No constraints. | Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers. |
loggers | array of ExperimentalLoggerMatcherAndConfig | false | If omitted, all loggers use .default_config. | * minItems: 1 | Configure loggers. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
default_config | supported | not_implemented | supported | unknown | supported |
loggers | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
default_config:
enabled: false
loggers:
- name: io.opentelemetry.contrib.*
config:
enabled: true
minimum_severity: info
trace_based: true
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"default_config": {
"$ref": "#/$defs/ExperimentalLoggerConfig",
"description": "Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers.\nIf omitted, unmatched .loggers use default values as described in ExperimentalLoggerConfig.\n"
},
"loggers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ExperimentalLoggerMatcherAndConfig"
},
"description": "Configure loggers.\nIf omitted, all loggers use .default_config.\n"
}
}
}
ExperimentalLoggerMatcherAndConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
config | ExperimentalLoggerConfig | true | Property is required and must be non-null. | No constraints. | The logger config. |
name | string | true | Property is required and must be non-null. | No constraints. | Configure logger names to match. Matching is case-sensitive, 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. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
config | supported | unknown | supported | unknown | supported |
name | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["name","config"]
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"name": {
"type": [
"string"
],
"description": "Configure logger names to match. Matching is case-sensitive, evaluated as follows:\n\n * If the logger name exactly matches.\n * If the logger name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nProperty is required and must be non-null.\n"
},
"config": {
"$ref": "#/$defs/ExperimentalLoggerConfig",
"description": "The logger config.\nProperty is required and must be non-null.\n"
}
},
"required": [
"name",
"config"
]
}
ExperimentalMessagingInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
semconv | ExperimentalSemconvConfig | false | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure messaging semantic convention version and migration behavior. This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting. See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/ |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"semconv": {
"$ref": "#/$defs/ExperimentalSemconvConfig",
"description": "Configure messaging semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
}
}
}
ExperimentalMeterConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
enabled | boolean | false | If omitted, true is used. | No constraints. | Configure if the meter is enabled or not. |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"enabled": {
"type": [
"boolean"
],
"description": "Configure if the meter is enabled or not.\nIf omitted, true is used.\n"
}
}
}
ExperimentalMeterConfigurator
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
default_config | ExperimentalMeterConfig | false | If omitted, unmatched .meters use default values as described in ExperimentalMeterConfig. | No constraints. | Configure the default meter config used there is no matching entry in .meter_configurator/development.meters. |
meters | array of ExperimentalMeterMatcherAndConfig | false | If omitted, all meters used .default_config. | * minItems: 1 | Configure meters. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
default_config | supported | not_implemented | supported | unknown | supported |
meters | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
default_config:
enabled: false
meters:
- name: io.opentelemetry.contrib.*
config:
enabled: true
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"default_config": {
"$ref": "#/$defs/ExperimentalMeterConfig",
"description": "Configure the default meter config used there is no matching entry in .meter_configurator/development.meters.\nIf omitted, unmatched .meters use default values as described in ExperimentalMeterConfig.\n"
},
"meters": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ExperimentalMeterMatcherAndConfig"
},
"description": "Configure meters.\nIf omitted, all meters used .default_config.\n"
}
}
}
ExperimentalMeterMatcherAndConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
config | ExperimentalMeterConfig | true | Property is required and must be non-null. | No constraints. | The meter config. |
name | string | true | Property is required and must be non-null. | No constraints. | Configure meter names to match. Matching is case-sensitive, 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. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
config | supported | unknown | supported | unknown | supported |
name | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["name","config"]
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"name": {
"type": [
"string"
],
"description": "Configure meter names to match. Matching is case-sensitive, evaluated as follows:\n\n * If the meter name exactly matches.\n * If the meter name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nProperty is required and must be non-null.\n"
},
"config": {
"$ref": "#/$defs/ExperimentalMeterConfig",
"description": "The meter config.\nProperty is required and must be non-null.\n"
}
},
"required": [
"name",
"config"
]
}
ExperimentalOtlpFileExporter
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
output_stream | one of: * string* null | false | If omitted or null, stdout is used. | No constraints. | Configure output stream. Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
output_stream | supported | not_implemented | not_implemented | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"output_stream": {
"type": [
"string",
"null"
],
"description": "Configure output stream. \nValues include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.\nIf omitted or null, stdout is used.\n"
}
}
}
ExperimentalOtlpFileMetricExporter
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
default_histogram_aggregation | ExporterDefaultHistogramAggregation | false | If omitted, explicit_bucket_histogram is used. | No constraints. | Configure default histogram aggregation. |
output_stream | one of: * string* null | false | If omitted or null, stdout is used. | No constraints. | Configure output stream. Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. |
temporality_preference | ExporterTemporalityPreference | false | If omitted, cumulative is used. | No constraints. | Configure temporality preference. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
default_histogram_aggregation | supported | not_implemented | supported | unknown | not_implemented |
output_stream | supported | not_implemented | not_implemented | unknown | supported |
temporality_preference | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Metrics File
output_stream: file:///var/log/metrics.jsonl
temporality_preference: cumulative
default_histogram_aggregation: explicit_bucket_histogram
Metrics Stdout
output_stream: stdout
temporality_preference: cumulative
default_histogram_aggregation: explicit_bucket_histogram
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"output_stream": {
"type": [
"string",
"null"
],
"description": "Configure output stream. \nValues include stdout, or scheme+destination. For example: file:///path/to/file.jsonl.\nIf omitted or null, stdout is used.\n"
},
"temporality_preference": {
"$ref": "#/$defs/ExporterTemporalityPreference",
"description": "Configure temporality preference.\nValues include:\n* cumulative: Use cumulative aggregation temporality for all instrument types.\n* delta: Use delta aggregation for all instrument types except up down counter and asynchronous up down counter.\n* low_memory: Use delta aggregation temporality for counter and histogram instrument types. Use cumulative aggregation temporality for all other instrument types.\nIf omitted, cumulative is used.\n"
},
"default_histogram_aggregation": {
"$ref": "#/$defs/ExporterDefaultHistogramAggregation",
"description": "Configure default histogram aggregation.\nValues include:\n* base2_exponential_bucket_histogram: Use base2 exponential histogram as the default aggregation for histogram instruments.\n* explicit_bucket_histogram: Use explicit bucket histogram as the default aggregation for histogram instruments.\nIf omitted, explicit_bucket_histogram is used.\n"
}
}
}
ExperimentalProbabilitySampler
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
ratio | one of: * number* null | false | If omitted or null, 1.0 is used. | * minimum: 0* maximum: 1 | Configure ratio. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
ratio | ignored | not_implemented | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"ratio": {
"type": [
"number",
"null"
],
"minimum": 0,
"maximum": 1,
"description": "Configure ratio.\nIf omitted or null, 1.0 is used.\n"
}
}
}
ExperimentalProcessResourceDetector
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalPrometheusMetricExporter
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
host | one of: * string* null | false | If omitted or null, localhost is used. | No constraints. | Configure host. |
port | one of: * integer* null | false | If omitted or null, 9464 is used. | No constraints. | Configure port. |
resource_constant_labels | IncludeExclude | false | If omitted, no resource attributes are added. | No constraints. | Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns. |
scope_info_enabled | one of: * boolean* null | false | If omitted or null, true is used. | No constraints. | Configure Prometheus Exporter to produce metrics with scope labels. |
translation_strategy | ExperimentalPrometheusTranslationStrategy | false | If omitted, underscore_escaping_with_suffixes is used. | No constraints. | Configure how metric names are translated to Prometheus metric names. |
target_info_enabled/developmentWARNING: This property is experimental. | one of: * boolean* null | false | If omitted or null, true is used. | No constraints. | Configure Prometheus Exporter to produce metrics with a target info metric for the resource. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
host | supported | supported | supported | unknown | not_implemented |
port | supported | supported | supported | unknown | not_implemented |
resource_constant_labels | supported | supported | supported | unknown | not_implemented |
scope_info_enabled | supported | supported | supported | unknown | not_implemented |
translation_strategy | supported | supported | not_implemented | unknown | not_implemented |
target_info_enabled/development | supported | supported | supported | unknown | not_implemented |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
host: localhost
port: 9464
scope_info_enabled: true
target_info_enabled/development: true
resource_constant_labels:
included:
- "service*"
excluded:
- "service.attr1"
translation_strategy: underscore_escaping_with_suffixes
JSON Schema
{
"type": [
"object",
"null"
],
"additionalProperties": false,
"properties": {
"host": {
"type": [
"string",
"null"
],
"description": "Configure host.\nIf omitted or null, localhost is used.\n"
},
"port": {
"type": [
"integer",
"null"
],
"description": "Configure port.\nIf omitted or null, 9464 is used.\n"
},
"scope_info_enabled": {
"type": [
"boolean",
"null"
],
"description": "Configure Prometheus Exporter to produce metrics with scope labels.\nIf omitted or null, true is used.\n"
},
"target_info_enabled/development": {
"type": [
"boolean",
"null"
],
"description": "Configure Prometheus Exporter to produce metrics with a target info metric for the resource.\nIf omitted or null, true is used.\n"
},
"resource_constant_labels": {
"$ref": "#/$defs/IncludeExclude",
"description": "Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns.\nIf omitted, no resource attributes are added.\n"
},
"translation_strategy": {
"$ref": "#/$defs/ExperimentalPrometheusTranslationStrategy",
"description": "Configure how metric names are translated to Prometheus metric names.\nValues include:\n* no_translation/development: Special character escaping is disabled. Type and unit suffixes are disabled. Metric names are unaltered.\n* no_utf8_escaping_with_suffixes/development: Special character escaping is disabled. Type and unit suffixes are enabled.\n* underscore_escaping_with_suffixes: Special character escaping is enabled. Type and unit suffixes are enabled.\n* underscore_escaping_without_suffixes/development: Special character escaping is enabled. Type and unit suffixes are disabled. This represents classic Prometheus metric name compatibility.\nIf omitted, underscore_escaping_with_suffixes is used.\n"
}
}
}
ExperimentalPrometheusTranslationStrategy
Warning
This type is experimental.
This is a enum type.
| Value | Description |
|---|---|
no_translation/development | Special character escaping is disabled. Type and unit suffixes are disabled. Metric names are unaltered. |
no_utf8_escaping_with_suffixes/development | Special character escaping is disabled. Type and unit suffixes are enabled. |
underscore_escaping_with_suffixes | Special character escaping is enabled. Type and unit suffixes are enabled. |
underscore_escaping_without_suffixes/development | Special character escaping is enabled. Type and unit suffixes are disabled. This represents classic Prometheus metric name compatibility. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
no_translation/development | not_implemented | supported | not_implemented | unknown | not_implemented |
no_utf8_escaping_with_suffixes/development | not_implemented | supported | not_implemented | unknown | not_implemented |
underscore_escaping_with_suffixes | supported | supported | not_implemented | unknown | not_implemented |
underscore_escaping_without_suffixes/development | supported | supported | not_implemented | unknown | not_implemented |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"underscore_escaping_with_suffixes",
"underscore_escaping_without_suffixes/development",
"no_utf8_escaping_with_suffixes/development",
"no_translation/development"
]
}
ExperimentalResourceDetection
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
attributes | IncludeExclude | false | If omitted, all attributes from resource detectors are added. | No constraints. | Configure attributes provided by resource detectors. |
detectors | array of ExperimentalResourceDetector | false | If omitted, no resource detectors are enabled. | * minItems: 1 | Configure resource detectors. Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
attributes | not_implemented | supported | supported | unknown | supported |
detectors | not_implemented | supported | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"attributes": {
"$ref": "#/$defs/IncludeExclude",
"description": "Configure attributes provided by resource detectors.\nIf omitted, all attributes from resource detectors are added.\n"
},
"detectors": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ExperimentalResourceDetector"
},
"description": "Configure resource detectors.\nResource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. \nIf omitted, no resource detectors are enabled.\n"
}
}
}
ExperimentalResourceDetector
Warning
This type is experimental.
ExperimentalResourceDetector is an SDK extension plugin.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
container | ExperimentalContainerResourceDetector | false | If omitted, ignore. | No constraints. | Enable the container resource detector, which populates container.* attributes. |
host | ExperimentalHostResourceDetector | false | If omitted, ignore. | No constraints. | Enable the host resource detector, which populates host.* and os.* attributes. |
process | ExperimentalProcessResourceDetector | false | If omitted, ignore. | No constraints. | Enable the process resource detector, which populates process.* attributes. |
service | ExperimentalServiceResourceDetector | false | If omitted, ignore. | 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 | cpp | go | java | js | php |
|---|---|---|---|---|---|
container | not_implemented | supported | supported | unknown | ignored |
host | not_implemented | supported | supported | unknown | supported |
process | not_implemented | supported | supported | unknown | supported |
service | not_implemented | supported | supported | unknown | supported |
Constraints:
additionalProperties:{"type":["object","null"]}minProperties:1maxProperties:1
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": {
"type": [
"object",
"null"
]
},
"minProperties": 1,
"maxProperties": 1,
"properties": {
"container": {
"$ref": "#/$defs/ExperimentalContainerResourceDetector",
"description": "Enable the container resource detector, which populates container.* attributes.\nIf omitted, ignore.\n"
},
"host": {
"$ref": "#/$defs/ExperimentalHostResourceDetector",
"description": "Enable the host resource detector, which populates host.* and os.* attributes.\nIf omitted, ignore.\n"
},
"process": {
"$ref": "#/$defs/ExperimentalProcessResourceDetector",
"description": "Enable the process resource detector, which populates process.* attributes.\nIf omitted, ignore.\n"
},
"service": {
"$ref": "#/$defs/ExperimentalServiceResourceDetector",
"description": "Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id.\nIf omitted, ignore.\n"
}
}
}
ExperimentalRpcInstrumentation
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
semconv | ExperimentalSemconvConfig | false | If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. | No constraints. | Configure RPC semantic convention version and migration behavior. This property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting. See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/ |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"semconv": {
"$ref": "#/$defs/ExperimentalSemconvConfig",
"description": "Configure RPC semantic convention version and migration behavior.\n\nThis property takes precedence over the .instrumentation/development.general.stability_opt_in_list setting.\n\nSee RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/\nIf omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set.\n"
}
}
}
ExperimentalSanitization
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
url | ExperimentalUrlSanitization | false | If omitted, defaults as described in ExperimentalUrlSanitization are used. | No constraints. | Configure URL sanitization options. |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"url": {
"$ref": "#/$defs/ExperimentalUrlSanitization",
"description": "Configure URL sanitization options.\nIf omitted, defaults as described in ExperimentalUrlSanitization are used.\n"
}
}
}
ExperimentalSemconvConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
dual_emit | one of: * boolean* null | false | If omitted or null, false is used. | No constraints. | When true, also emit the previous major version alongside the target version. For version=1, the previous version refers to the pre-stable conventions that the instrumentation emitted before the first stable semantic convention version was defined. For version=2 and above, the previous version is the prior stable major version (e.g., version=2, dual_emit=true emits both v2 and v1). Enables dual-emit for phased migration between versions. |
experimental | one of: * boolean* null | false | If omitted or null, false is used. | No constraints. | Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions). |
version | one of: * integer* null | false | If omitted or null, the latest stable version is used, or if no stable version is available and .experimental is true then the latest experimental version is used. | * minimum: 0 | The target semantic convention version for this domain (e.g., 1). |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
dual_emit | unknown | unknown | unknown | unknown | unknown |
experimental | unknown | unknown | unknown | unknown | unknown |
version | unknown | unknown | unknown | unknown | unknown |
Constraints:
additionalProperties:false
Usages:
ExperimentalHttpInstrumentation.semconvExperimentalCodeInstrumentation.semconvExperimentalDbInstrumentation.semconvExperimentalGenAiInstrumentation.semconvExperimentalRpcInstrumentation.semconvExperimentalMessagingInstrumentation.semconv
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"version": {
"type": [
"integer",
"null"
],
"minimum": 0,
"description": "The target semantic convention version for this domain (e.g., 1).\nIf omitted or null, the latest stable version is used, or if no stable version is available and .experimental is true then the latest experimental version is used.\n"
},
"experimental": {
"type": [
"boolean",
"null"
],
"description": "Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions).\nIf omitted or null, false is used.\n"
},
"dual_emit": {
"type": [
"boolean",
"null"
],
"description": "When true, also emit the previous major version alongside the target version.\nFor version=1, the previous version refers to the pre-stable conventions that the instrumentation emitted before the first stable semantic convention version was defined.\nFor version=2 and above, the previous version is the prior stable major version (e.g., version=2, dual_emit=true emits both v2 and v1).\nEnables dual-emit for phased migration between versions.\nIf omitted or null, false is used.\n"
}
}
}
ExperimentalServiceResourceDetector
Warning
This type is experimental.
No properties.
Constraints:
additionalProperties:false
Usages:
No snippets.
ExperimentalSpanParent
Warning
This type is experimental.
This is a enum type.
| Value | Description |
|---|---|
local | local, a local parent. |
none | none, no parent, i.e., the trace root. |
remote | remote, a remote parent. |
Language support status
| Value | cpp | go | java | js | php |
|---|---|---|---|---|---|
local | not_implemented | unknown | supported | unknown | not_implemented |
none | not_implemented | unknown | supported | unknown | not_implemented |
remote | not_implemented | unknown | supported | unknown | not_implemented |
No constraints.
Usages:
No snippets.
JSON Schema
{
"type": [
"string",
"null"
],
"enum": [
"none",
"remote",
"local"
]
}
ExperimentalTracerConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
enabled | boolean | false | If omitted, true is used. | No constraints. | Configure if the tracer is enabled or not. |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"enabled": {
"type": [
"boolean"
],
"description": "Configure if the tracer is enabled or not.\nIf omitted, true is used.\n"
}
}
}
ExperimentalTracerConfigurator
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
default_config | ExperimentalTracerConfig | false | If omitted, unmatched .tracers use default values as described in ExperimentalTracerConfig. | No constraints. | Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers. |
tracers | array of ExperimentalTracerMatcherAndConfig | false | If omitted, all tracers use .default_config. | * minItems: 1 | Configure tracers. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
default_config | supported | not_implemented | supported | unknown | supported |
tracers | supported | not_implemented | supported | unknown | supported |
Constraints:
additionalProperties:false
Usages:
Snippets:
Kitchen Sink
default_config:
enabled: false
tracers:
- name: io.opentelemetry.contrib.*
config:
enabled: true
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"default_config": {
"$ref": "#/$defs/ExperimentalTracerConfig",
"description": "Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers.\nIf omitted, unmatched .tracers use default values as described in ExperimentalTracerConfig.\n"
},
"tracers": {
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ExperimentalTracerMatcherAndConfig"
},
"description": "Configure tracers.\nIf omitted, all tracers use .default_config.\n"
}
}
}
ExperimentalTracerMatcherAndConfig
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
config | ExperimentalTracerConfig | true | Property is required and must be non-null. | No constraints. | The tracer config. |
name | string | true | Property is required and must be non-null. | No constraints. | Configure tracer names to match. Matching is case-sensitive, 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. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
config | supported | unknown | supported | unknown | supported |
name | supported | unknown | supported | unknown | supported |
Constraints:
additionalProperties:falserequired:["name","config"]
Usages:
No snippets.
JSON Schema
{
"type": [
"object"
],
"additionalProperties": false,
"properties": {
"name": {
"type": [
"string"
],
"description": "Configure tracer names to match. Matching is case-sensitive, evaluated as follows:\n\n * If the tracer name exactly matches.\n * If the tracer name matches the wildcard pattern, where '?' matches any single character and '*' matches any number of characters including none.\nProperty is required and must be non-null.\n"
},
"config": {
"$ref": "#/$defs/ExperimentalTracerConfig",
"description": "The tracer config.\nProperty is required and must be non-null.\n"
}
},
"required": [
"name",
"config"
]
}
ExperimentalUrlSanitization
Warning
This type is experimental.
| Property | Type | Required? | Default and Null Behavior | Constraints | Description |
|---|---|---|---|---|---|
sensitive_query_parameters | array of string | false | If omitted, the default sensitive query parameter list as defined by the url semantic conventions (https://github.com/open-telemetry/semantic-conventions/blob/main/docs/registry/attributes/url.md) is used. | * minItems: 0 | List of query parameter names whose values should be redacted from URLs. Query parameter names are case-sensitive. This is a full override of the default sensitive query parameter keys, it is not a list of keys in addition to the defaults. Set to an empty array to disable query parameter redaction. |
Language support status
| Property | cpp | go | java | js | php |
|---|---|---|---|---|---|
sensitive_query_parameters | unknown | unknown | unknown | unknown | unknown |
Constraints:
additionalProperties:false
Usages:
No snippets.
JSON Schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"sensitive_query_parameters": {
"type": "array",
"minItems": 0,
"items": {
"type": "string"
},
"description": "List of query parameter names whose values should be redacted from URLs.\nQuery parameter names are case-sensitive.\nThis is a full override of the default sensitive query parameter keys, it is not a list of keys in addition to the defaults.\nSet to an empty array to disable query parameter redaction.\nIf omitted, the default sensitive query parameter list as defined by the url semantic conventions (https://github.com/open-telemetry/semantic-conventions/blob/main/docs/registry/attributes/url.md) is used.\n"
}
}
}
SDK Extension Plugins
SDK extension plugins are places where custom interface implementations can be referenced and configured.
For example, you could write a custom SpanExporter, and indicate that it should be paired with a BatchSpanProcessor.
Each of the following types support referencing custom interface implementations. Each type is an object type containing exactly one property whose value is type object or null. The property key refers to the name of the custom implementation, and must be the same as the name of a corresponding registered ComponentProvider. The value passed as configuration when the ComponentProvider.create is called.
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.