From 8bfa8282f2529b98e632b16e1bed2382e030c740 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 21 Aug 2025 10:19:23 +0200 Subject: [PATCH 1/4] add authenticator --- schema/common.json | 19 ++++++++++++++++++- schema/meter_provider.json | 6 ++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/schema/common.json b/schema/common.json index 5a943d53..16dc0fec 100644 --- a/schema/common.json +++ b/schema/common.json @@ -60,6 +60,9 @@ "headers_list": { "type": ["string", "null"] }, + "authenticator": { + "$ref": "#/$defs/Authenticator" + }, "compression": { "type": ["string", "null"] }, @@ -104,6 +107,9 @@ "headers_list": { "type": ["string", "null"] }, + "authenticator": { + "$ref": "#/$defs/Authenticator" + }, "compression": { "type": ["string", "null"] }, @@ -128,6 +134,17 @@ "ConsoleExporter": { "type": ["object", "null"], "additionalProperties": false + }, + "Authenticator": { + "type": "object", + "additionalProperties": true, + "minProperties": 1, + "maxProperties": 1, + "patternProperties": { + ".*": { + "type": ["object"] + } + } } } -} \ No newline at end of file +} diff --git a/schema/meter_provider.json b/schema/meter_provider.json index bc1e9210..f71552b0 100644 --- a/schema/meter_provider.json +++ b/schema/meter_provider.json @@ -263,6 +263,9 @@ "headers_list": { "type": ["string", "null"] }, + "authenticator": { + "$ref": "common.json#/$defs/Authenticator" + }, "compression": { "type": ["string", "null"] }, @@ -306,6 +309,9 @@ "headers_list": { "type": ["string", "null"] }, + "authenticator": { + "$ref": "common.json#/$defs/Authenticator" + }, "compression": { "type": ["string", "null"] }, From e23ad371326c6b471f5c64ef079a0f576765b42c Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 21 Aug 2025 10:28:07 +0200 Subject: [PATCH 2/4] add to kitchen sink --- examples/kitchen-sink.yaml | 182 +++++++++++++++++++++++-------------- 1 file changed, 115 insertions(+), 67 deletions(-) diff --git a/examples/kitchen-sink.yaml b/examples/kitchen-sink.yaml index 3bb08f20..66201cea 100644 --- a/examples/kitchen-sink.yaml +++ b/examples/kitchen-sink.yaml @@ -17,11 +17,11 @@ disabled: false log_level: info # Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits. attribute_limits: - # Configure max attribute value size. + # Configure max attribute value size. # Value must be non-negative. # If omitted or null, there is no limit. attribute_value_length_limit: 4096 - # Configure max attribute count. + # Configure max attribute count. # Value must be non-negative. # If omitted or null, 128 is used. attribute_count_limit: 128 @@ -32,11 +32,11 @@ logger_provider: processors: - # Configure a batch log record processor. batch: - # Configure delay interval (in milliseconds) between two consecutive exports. + # Configure delay interval (in milliseconds) between two consecutive exports. # Value must be non-negative. # If omitted or null, 1000 is used. schedule_delay: 5000 - # Configure maximum allowed time (in milliseconds) to export data. + # Configure maximum allowed time (in milliseconds) to export data. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 30000 is used. export_timeout: 30000 @@ -51,15 +51,15 @@ logger_provider: # Configure exporter to be OTLP with HTTP transport. otlp_http: endpoint: http://localhost:4318/v1/logs - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -72,15 +72,23 @@ logger_provider: # 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. # If omitted or null, no headers are added. headers_list: "api-key=1234" + # Configure a user provided authenticator. + # The authenticator is a component that is loaded like any other components, e.g. custom exporter. + # The authenticator is asked to provide authentication headers for each export, so it can be used for + # rotating credentials. + authenticator: + rainy_cloud: + tenant: foo + region: bar # Configure compression. # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure the encoding used for messages. + # Configure the encoding used for messages. # Values include: protobuf, json. Implementations may not support json. # If omitted or null, protobuf is used. encoding: protobuf @@ -93,15 +101,15 @@ logger_provider: # Configure endpoint. # If omitted or null, http://localhost:4317 is used. endpoint: http://localhost:4317 - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -114,15 +122,23 @@ logger_provider: # 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. # If omitted or null, no headers are added. headers_list: "api-key=1234" + # Configure a user provided authenticator. + # The authenticator is a component that is loaded like any other components, e.g. custom exporter. + # The authenticator is asked to provide authentication headers for each export, so it can be used for + # rotating credentials. + authenticator: + rainy_cloud: + tenant: foo + region: bar # Configure compression. # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure client transport security for the exporter's connection. + # 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. # If omitted or null, false is used. insecure: false @@ -133,7 +149,7 @@ logger_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: file:///var/log/logs.jsonl @@ -144,7 +160,7 @@ logger_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: stdout @@ -156,11 +172,11 @@ logger_provider: console: # Configure log record limits. See also attribute_limits. limits: - # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. + # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. # Value must be non-negative. # If omitted or null, there is no limit. attribute_value_length_limit: 4096 - # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. + # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. # Value must be non-negative. # If omitted or null, 128 is used. attribute_count_limit: 128 @@ -232,7 +248,7 @@ meter_provider: # Configure cardinality limits. cardinality_limits: # Configure default cardinality limit for all instrument types. - # Instrument-specific cardinality limits take priority. + # Instrument-specific cardinality limits take priority. # If omitted or null, 2000 is used. default: 2000 # Configure default cardinality limit for counter instruments. @@ -258,11 +274,11 @@ meter_provider: up_down_counter: 2000 - # Configure a periodic metric reader. periodic: - # Configure delay interval (in milliseconds) between start of two consecutive exports. + # Configure delay interval (in milliseconds) between start of two consecutive exports. # Value must be non-negative. # If omitted or null, 60000 is used. interval: 60000 - # Configure maximum allowed time (in milliseconds) to export data. + # Configure maximum allowed time (in milliseconds) to export data. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 30000 is used. timeout: 30000 @@ -273,15 +289,15 @@ meter_provider: # Configure endpoint, including the metric specific path. # If omitted or null, http://localhost:4318/v1/metrics is used. endpoint: http://localhost:4318/v1/metrics - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -294,23 +310,31 @@ meter_provider: # 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. # If omitted or null, no headers are added. headers_list: "api-key=1234" + # Configure a user provided authenticator. + # The authenticator is a component that is loaded like any other components, e.g. custom exporter. + # The authenticator is asked to provide authentication headers for each export, so it can be used for + # rotating credentials. + authenticator: + rainy_cloud: + tenant: foo + region: bar # Configure compression. # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure the encoding used for messages. + # Configure the encoding used for messages. # Values include: protobuf, json. Implementations may not support json. # If omitted or null, protobuf is used. encoding: protobuf - # Configure temporality preference. + # Configure temporality preference. # Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, cumulative is used. temporality_preference: delta - # Configure default histogram aggregation. + # Configure default histogram aggregation. # Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, explicit_bucket_histogram is used. default_histogram_aggregation: base2_exponential_bucket_histogram @@ -321,7 +345,7 @@ meter_provider: # Configure cardinality limits. cardinality_limits: # Configure default cardinality limit for all instrument types. - # Instrument-specific cardinality limits take priority. + # Instrument-specific cardinality limits take priority. # If omitted or null, 2000 is used. default: 2000 # Configure default cardinality limit for counter instruments. @@ -354,15 +378,15 @@ meter_provider: # Configure endpoint. # If omitted or null, http://localhost:4317 is used. endpoint: http://localhost:4317 - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -375,23 +399,31 @@ meter_provider: # 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. # If omitted or null, no headers are added. headers_list: "api-key=1234" + # Configure a user provided authenticator. + # The authenticator is a component that is loaded like any other components, e.g. custom exporter. + # The authenticator is asked to provide authentication headers for each export, so it can be used for + # rotating credentials. + authenticator: + rainy_cloud: + tenant: foo + region: bar # Configure compression. # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure client transport security for the exporter's connection. + # 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. # If omitted or null, false is used. insecure: false - # Configure temporality preference. + # Configure temporality preference. # Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, cumulative is used. temporality_preference: delta - # Configure default histogram aggregation. + # Configure default histogram aggregation. # Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, explicit_bucket_histogram is used. default_histogram_aggregation: base2_exponential_bucket_histogram @@ -402,7 +434,7 @@ meter_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: file:///var/log/metrics.jsonl @@ -419,7 +451,7 @@ meter_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: stdout @@ -435,10 +467,10 @@ meter_provider: exporter: # Configure exporter to be console. console: - # Configure views. + # Configure views. # Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s). views: - - # Configure view selector. + - # 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. selector: # Configure instrument name selection criteria. @@ -468,7 +500,7 @@ meter_provider: # Configure metric description of the resulting stream(s). # If omitted or null, the instrument's origin description is used. description: new_description - # Configure aggregation of the resulting stream(s). + # Configure aggregation of the resulting stream(s). # Values include: default, drop, explicit_bucket_histogram, base2_exponential_bucket_histogram, last_value, sum. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#aggregation. # If omitted, default is used. aggregation: @@ -502,7 +534,7 @@ meter_provider: aggregation_cardinality_limit: 2000 # Configure attribute keys retained in the resulting stream(s). attribute_keys: - # Configure list of attribute keys to include in the resulting stream(s). All other attributes are dropped. + # Configure list of attribute keys to include in the resulting stream(s). All other attributes are dropped. # If omitted, all attributes are included. included: - key1 @@ -511,7 +543,7 @@ meter_provider: # If omitted, .attribute_keys.included are included. excluded: - key3 - # Configure the exemplar filter. + # Configure the exemplar filter. # Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration. # If omitted or null, trace_based is used. exemplar_filter: trace_based @@ -537,7 +569,7 @@ meter_provider: # If omitted, a noop propagator is used. propagator: # 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, jaeger, ottrace. Known third party keys include: xray. + # Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray. # If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used. composite: - # Include the w3c trace context propagator. @@ -554,7 +586,7 @@ propagator: ottrace: # 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, jaeger, ottrace. Known third party identifiers include: xray. + # Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray. # If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used. composite_list: "tracecontext,baggage,b3,b3multi,jaeger,ottrace,xray" # Configure tracer provider. @@ -564,11 +596,11 @@ tracer_provider: processors: - # Configure a batch span processor. batch: - # Configure delay interval (in milliseconds) between two consecutive exports. + # Configure delay interval (in milliseconds) between two consecutive exports. # Value must be non-negative. # If omitted or null, 5000 is used. schedule_delay: 5000 - # Configure maximum allowed time (in milliseconds) to export data. + # Configure maximum allowed time (in milliseconds) to export data. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 30000 is used. export_timeout: 30000 @@ -585,15 +617,15 @@ tracer_provider: # Configure endpoint, including the trace specific path. # If omitted or null, http://localhost:4318/v1/traces is used. endpoint: http://localhost:4318/v1/traces - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -606,15 +638,23 @@ tracer_provider: # 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. # If omitted or null, no headers are added. headers_list: "api-key=1234" + # Configure a user provided authenticator. + # The authenticator is a component that is loaded like any other components, e.g. custom exporter. + # The authenticator is asked to provide authentication headers for each export, so it can be used for + # rotating credentials. + authenticator: + rainy_cloud: + tenant: foo + region: bar # Configure compression. # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure the encoding used for messages. + # Configure the encoding used for messages. # Values include: protobuf, json. Implementations may not support json. # If omitted or null, protobuf is used. encoding: protobuf @@ -627,15 +667,15 @@ tracer_provider: # Configure endpoint. # If omitted or null, http://localhost:4317 is used. endpoint: http://localhost:4317 - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -648,15 +688,23 @@ tracer_provider: # 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. # If omitted or null, no headers are added. headers_list: "api-key=1234" + # Configure a user provided authenticator. + # The authenticator is a component that is loaded like any other components, e.g. custom exporter. + # The authenticator is asked to provide authentication headers for each export, so it can be used for + # rotating credentials. + authenticator: + rainy_cloud: + tenant: foo + region: bar # Configure compression. # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure client transport security for the exporter's connection. + # 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. # If omitted or null, false is used. insecure: false @@ -667,7 +715,7 @@ tracer_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: file:///var/log/traces.jsonl @@ -678,7 +726,7 @@ tracer_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: stdout @@ -691,7 +739,7 @@ tracer_provider: # Configure endpoint. # If omitted or null, http://localhost:9411/api/v2/spans is used. endpoint: http://localhost:9411/api/v2/spans - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates indefinite. # If omitted or null, 10000 is used. timeout: 10000 @@ -703,27 +751,27 @@ tracer_provider: console: # Configure span limits. See also attribute_limits. limits: - # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. + # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. # Value must be non-negative. # If omitted or null, there is no limit. attribute_value_length_limit: 4096 - # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. + # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. # Value must be non-negative. # If omitted or null, 128 is used. attribute_count_limit: 128 - # Configure max span event count. + # Configure max span event count. # Value must be non-negative. # If omitted or null, 128 is used. event_count_limit: 128 - # Configure max span link count. + # Configure max span link count. # Value must be non-negative. # If omitted or null, 128 is used. link_count_limit: 128 - # Configure max attributes per span event. + # Configure max attributes per span event. # Value must be non-negative. # If omitted or null, 128 is used. event_attribute_count_limit: 128 - # Configure max attributes per span link. + # Configure max attributes per span link. # Value must be non-negative. # If omitted or null, 128 is used. link_attribute_count_limit: 128 @@ -836,7 +884,7 @@ resource: excluded: - process.command_args # Configure resource detectors. - # Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. + # Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. # If omitted or null, no resource detectors are enabled. detectors: - # Enable the container resource detector, which populates container.* attributes. From 81d5704225ae425e345d6c186511348c508e0a4c Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Thu, 21 Aug 2025 10:40:53 +0200 Subject: [PATCH 3/4] add to kitchen sink --- examples/kitchen-sink.yaml | 134 ++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/examples/kitchen-sink.yaml b/examples/kitchen-sink.yaml index 66201cea..6bf7ef9c 100644 --- a/examples/kitchen-sink.yaml +++ b/examples/kitchen-sink.yaml @@ -17,11 +17,11 @@ disabled: false log_level: info # Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits. attribute_limits: - # Configure max attribute value size. + # Configure max attribute value size. # Value must be non-negative. # If omitted or null, there is no limit. attribute_value_length_limit: 4096 - # Configure max attribute count. + # Configure max attribute count. # Value must be non-negative. # If omitted or null, 128 is used. attribute_count_limit: 128 @@ -32,11 +32,11 @@ logger_provider: processors: - # Configure a batch log record processor. batch: - # Configure delay interval (in milliseconds) between two consecutive exports. + # Configure delay interval (in milliseconds) between two consecutive exports. # Value must be non-negative. # If omitted or null, 1000 is used. schedule_delay: 5000 - # Configure maximum allowed time (in milliseconds) to export data. + # Configure maximum allowed time (in milliseconds) to export data. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 30000 is used. export_timeout: 30000 @@ -51,15 +51,15 @@ logger_provider: # Configure exporter to be OTLP with HTTP transport. otlp_http: endpoint: http://localhost:4318/v1/logs - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -84,11 +84,11 @@ logger_provider: # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure the encoding used for messages. + # Configure the encoding used for messages. # Values include: protobuf, json. Implementations may not support json. # If omitted or null, protobuf is used. encoding: protobuf @@ -101,15 +101,15 @@ logger_provider: # Configure endpoint. # If omitted or null, http://localhost:4317 is used. endpoint: http://localhost:4317 - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -134,11 +134,11 @@ logger_provider: # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure client transport security for the exporter's connection. + # 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. # If omitted or null, false is used. insecure: false @@ -149,7 +149,7 @@ logger_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: file:///var/log/logs.jsonl @@ -160,7 +160,7 @@ logger_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: stdout @@ -172,11 +172,11 @@ logger_provider: console: # Configure log record limits. See also attribute_limits. limits: - # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. + # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. # Value must be non-negative. # If omitted or null, there is no limit. attribute_value_length_limit: 4096 - # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. + # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. # Value must be non-negative. # If omitted or null, 128 is used. attribute_count_limit: 128 @@ -248,7 +248,7 @@ meter_provider: # Configure cardinality limits. cardinality_limits: # Configure default cardinality limit for all instrument types. - # Instrument-specific cardinality limits take priority. + # Instrument-specific cardinality limits take priority. # If omitted or null, 2000 is used. default: 2000 # Configure default cardinality limit for counter instruments. @@ -274,11 +274,11 @@ meter_provider: up_down_counter: 2000 - # Configure a periodic metric reader. periodic: - # Configure delay interval (in milliseconds) between start of two consecutive exports. + # Configure delay interval (in milliseconds) between start of two consecutive exports. # Value must be non-negative. # If omitted or null, 60000 is used. interval: 60000 - # Configure maximum allowed time (in milliseconds) to export data. + # Configure maximum allowed time (in milliseconds) to export data. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 30000 is used. timeout: 30000 @@ -289,15 +289,15 @@ meter_provider: # Configure endpoint, including the metric specific path. # If omitted or null, http://localhost:4318/v1/metrics is used. endpoint: http://localhost:4318/v1/metrics - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -322,19 +322,19 @@ meter_provider: # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure the encoding used for messages. + # Configure the encoding used for messages. # Values include: protobuf, json. Implementations may not support json. # If omitted or null, protobuf is used. encoding: protobuf - # Configure temporality preference. + # Configure temporality preference. # Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, cumulative is used. temporality_preference: delta - # Configure default histogram aggregation. + # Configure default histogram aggregation. # Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, explicit_bucket_histogram is used. default_histogram_aggregation: base2_exponential_bucket_histogram @@ -345,7 +345,7 @@ meter_provider: # Configure cardinality limits. cardinality_limits: # Configure default cardinality limit for all instrument types. - # Instrument-specific cardinality limits take priority. + # Instrument-specific cardinality limits take priority. # If omitted or null, 2000 is used. default: 2000 # Configure default cardinality limit for counter instruments. @@ -378,15 +378,15 @@ meter_provider: # Configure endpoint. # If omitted or null, http://localhost:4317 is used. endpoint: http://localhost:4317 - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -411,19 +411,19 @@ meter_provider: # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure client transport security for the exporter's connection. + # 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. # If omitted or null, false is used. insecure: false - # Configure temporality preference. + # Configure temporality preference. # Values include: cumulative, delta, low_memory. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, cumulative is used. temporality_preference: delta - # Configure default histogram aggregation. + # Configure default histogram aggregation. # Values include: explicit_bucket_histogram, base2_exponential_bucket_histogram. For behavior of values, see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk_exporters/otlp.md. # If omitted or null, explicit_bucket_histogram is used. default_histogram_aggregation: base2_exponential_bucket_histogram @@ -434,7 +434,7 @@ meter_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: file:///var/log/metrics.jsonl @@ -451,7 +451,7 @@ meter_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: stdout @@ -467,10 +467,10 @@ meter_provider: exporter: # Configure exporter to be console. console: - # Configure views. + # Configure views. # Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s). views: - - # Configure view selector. + - # 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. selector: # Configure instrument name selection criteria. @@ -500,7 +500,7 @@ meter_provider: # Configure metric description of the resulting stream(s). # If omitted or null, the instrument's origin description is used. description: new_description - # Configure aggregation of the resulting stream(s). + # Configure aggregation of the resulting stream(s). # Values include: default, drop, explicit_bucket_histogram, base2_exponential_bucket_histogram, last_value, sum. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#aggregation. # If omitted, default is used. aggregation: @@ -534,7 +534,7 @@ meter_provider: aggregation_cardinality_limit: 2000 # Configure attribute keys retained in the resulting stream(s). attribute_keys: - # Configure list of attribute keys to include in the resulting stream(s). All other attributes are dropped. + # Configure list of attribute keys to include in the resulting stream(s). All other attributes are dropped. # If omitted, all attributes are included. included: - key1 @@ -543,7 +543,7 @@ meter_provider: # If omitted, .attribute_keys.included are included. excluded: - key3 - # Configure the exemplar filter. + # Configure the exemplar filter. # Values include: trace_based, always_on, always_off. For behavior of values see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#metrics-sdk-configuration. # If omitted or null, trace_based is used. exemplar_filter: trace_based @@ -569,7 +569,7 @@ meter_provider: # If omitted, a noop propagator is used. propagator: # 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, jaeger, ottrace. Known third party keys include: xray. + # Built-in propagator keys include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party keys include: xray. # If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used. composite: - # Include the w3c trace context propagator. @@ -586,7 +586,7 @@ propagator: ottrace: # 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, jaeger, ottrace. Known third party identifiers include: xray. + # Built-in propagator identifiers include: tracecontext, baggage, b3, b3multi, jaeger, ottrace. Known third party identifiers include: xray. # If the resolved list of propagators (from .composite and .composite_list) is empty, a noop propagator is used. composite_list: "tracecontext,baggage,b3,b3multi,jaeger,ottrace,xray" # Configure tracer provider. @@ -596,11 +596,11 @@ tracer_provider: processors: - # Configure a batch span processor. batch: - # Configure delay interval (in milliseconds) between two consecutive exports. + # Configure delay interval (in milliseconds) between two consecutive exports. # Value must be non-negative. # If omitted or null, 5000 is used. schedule_delay: 5000 - # Configure maximum allowed time (in milliseconds) to export data. + # Configure maximum allowed time (in milliseconds) to export data. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 30000 is used. export_timeout: 30000 @@ -617,15 +617,15 @@ tracer_provider: # Configure endpoint, including the trace specific path. # If omitted or null, http://localhost:4318/v1/traces is used. endpoint: http://localhost:4318/v1/traces - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -650,11 +650,11 @@ tracer_provider: # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure the encoding used for messages. + # Configure the encoding used for messages. # Values include: protobuf, json. Implementations may not support json. # If omitted or null, protobuf is used. encoding: protobuf @@ -667,15 +667,15 @@ tracer_provider: # Configure endpoint. # If omitted or null, http://localhost:4317 is used. endpoint: http://localhost:4317 - # Configure certificate used to verify a server's TLS credentials. + # Configure certificate used to verify a server's TLS credentials. # Absolute path to certificate file in PEM format. # If omitted or null, system default certificate verification is used for secure connections. certificate_file: /app/cert.pem - # Configure mTLS private client key. + # Configure mTLS private client key. # Absolute path to client key file in PEM format. If set, .client_certificate must also be set. # If omitted or null, mTLS is not used. client_key_file: /app/cert.pem - # Configure mTLS client certificate. + # Configure mTLS client certificate. # Absolute path to client certificate file in PEM format. If set, .client_key must also be set. # If omitted or null, mTLS is not used. client_certificate_file: /app/cert.pem @@ -700,11 +700,11 @@ tracer_provider: # Values include: gzip, none. Implementations may support other compression algorithms. # If omitted or null, none is used. compression: gzip - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates no limit (infinity). # If omitted or null, 10000 is used. timeout: 10000 - # Configure client transport security for the exporter's connection. + # 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. # If omitted or null, false is used. insecure: false @@ -715,7 +715,7 @@ tracer_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: file:///var/log/traces.jsonl @@ -726,7 +726,7 @@ tracer_provider: # Configure exporter to be OTLP with file transport. # This type is in development and subject to breaking changes in minor versions. otlp_file/development: - # Configure output stream. + # Configure output stream. # Values include stdout, or scheme+destination. For example: file:///path/to/file.jsonl. # If omitted or null, stdout is used. output_stream: stdout @@ -739,7 +739,7 @@ tracer_provider: # Configure endpoint. # If omitted or null, http://localhost:9411/api/v2/spans is used. endpoint: http://localhost:9411/api/v2/spans - # Configure max time (in milliseconds) to wait for each export. + # Configure max time (in milliseconds) to wait for each export. # Value must be non-negative. A value of 0 indicates indefinite. # If omitted or null, 10000 is used. timeout: 10000 @@ -751,27 +751,27 @@ tracer_provider: console: # Configure span limits. See also attribute_limits. limits: - # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. + # Configure max attribute value size. Overrides .attribute_limits.attribute_value_length_limit. # Value must be non-negative. # If omitted or null, there is no limit. attribute_value_length_limit: 4096 - # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. + # Configure max attribute count. Overrides .attribute_limits.attribute_count_limit. # Value must be non-negative. # If omitted or null, 128 is used. attribute_count_limit: 128 - # Configure max span event count. + # Configure max span event count. # Value must be non-negative. # If omitted or null, 128 is used. event_count_limit: 128 - # Configure max span link count. + # Configure max span link count. # Value must be non-negative. # If omitted or null, 128 is used. link_count_limit: 128 - # Configure max attributes per span event. + # Configure max attributes per span event. # Value must be non-negative. # If omitted or null, 128 is used. event_attribute_count_limit: 128 - # Configure max attributes per span link. + # Configure max attributes per span link. # Value must be non-negative. # If omitted or null, 128 is used. link_attribute_count_limit: 128 @@ -884,7 +884,7 @@ resource: excluded: - process.command_args # Configure resource detectors. - # Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. + # Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. # If omitted or null, no resource detectors are enabled. detectors: - # Enable the container resource detector, which populates container.* attributes. From 773cbd9047818f564cb0a508d9ded0586f675604 Mon Sep 17 00:00:00 2001 From: Gregor Zeitlinger Date: Wed, 27 Aug 2025 13:38:52 +0200 Subject: [PATCH 4/4] Revert "Move known resource detectors to properties (#220)" This reverts commit 906dcd78df0e4e1833eda78c8f7072ea0a61526a. --- schema/resource.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/schema/resource.json b/schema/resource.json index ca8add58..6bf09ac8 100644 --- a/schema/resource.json +++ b/schema/resource.json @@ -81,7 +81,7 @@ "additionalProperties": true, "minProperties": 1, "maxProperties": 1, - "properties": { + "patternProperties": { "container": { "$ref": "#/$defs/ExperimentalContainerResourceDetector" }, @@ -93,9 +93,7 @@ }, "service": { "$ref": "#/$defs/ExperimentalServiceResourceDetector" - } - }, - "patternProperties": { + }, ".*": { "type": ["object", "null"] }