export type DefaultAggregation = Record | null; export type DropAggregation = Record | null; export interface ExplicitBucketHistogramAggregation { /** * Configure bucket boundaries. * If omitted, [0, 5, 10, 25, 50, 75, 100, 250, 500, 750, 1000, 2500, 5000, 7500, 10000] is used. */ boundaries?: number[]; /** * Configure record min and max. * If omitted or null, true is used. */ record_min_max?: boolean | null; } export interface Base2ExponentialBucketHistogramAggregation { /** * Configure the max scale factor. * If omitted or null, 20 is used. */ max_scale?: number | null; /** * Configure the maximum number of buckets in each of the positive and negative ranges, not counting the special zero bucket. * If omitted or null, 160 is used. */ max_size?: number | null; /** * Configure whether or not to record min and max. * If omitted or null, true is used. */ record_min_max?: boolean | null; } export type LastValueAggregation = Record | null; export type SumAggregation = Record | null; export interface Aggregation { /** * 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. * If omitted, ignore. */ default?: DefaultAggregation; /** * 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. * If omitted, ignore. */ drop?: DropAggregation; /** * 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 * If omitted, ignore. */ explicit_bucket_histogram?: ExplicitBucketHistogramAggregation; /** * 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. * If omitted, ignore. */ base2_exponential_bucket_histogram?: Base2ExponentialBucketHistogramAggregation; /** * 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. * If omitted, ignore. */ last_value?: LastValueAggregation; /** * 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. * If omitted, ignore. */ sum?: SumAggregation; } export type AlwaysOffSampler = Record | null; export type AlwaysOnSampler = Record | null; export interface AttributeLimits { /** * Configure max attribute value size. * Value must be non-negative. * If omitted or null, there is no limit. */ attribute_value_length_limit?: number | null; /** * Configure max attribute count. * Value must be non-negative. * If omitted or null, 128 is used. */ attribute_count_limit?: number | null; } export type AttributeType = ('string' | 'bool' | 'int' | 'double' | 'string_array' | 'bool_array' | 'int_array' | 'double_array') | null; export interface AttributeNameValue { /** * The attribute name. * Property is required and must be non-null. */ name: string; /** * The attribute value. * The type of value must match .type. * Property is required and must be non-null. */ value: unknown; /** * The attribute type. * Values include: * * 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. * If omitted, string is used. */ type?: AttributeType; } export type B3MultiPropagator = Record | null; export type B3Propagator = Record | null; export type BaggagePropagator = Record | null; export interface HttpTls { /** * 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. */ ca_file?: string | null; /** * 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. */ key_file?: string | null; /** * 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. */ cert_file?: string | null; } export interface NameStringValuePair { /** * The name of the pair. * Property is required and must be non-null. */ name: string; /** * The value of the pair. * Property must be present, but if null the behavior is dependent on usage context. */ value: string | null; } export type OtlpHttpEncoding = ('protobuf' | 'json') | null; export interface OtlpHttpExporter { /** * Configure endpoint, including the signal specific path. * If omitted or null, the http://localhost:4318/v1/{signal} (where signal is 'traces', 'logs', or 'metrics') is used. */ endpoint?: string | null; /** * Configure TLS settings for the exporter. * If omitted, system default TLS settings are used. */ tls?: HttpTls; /** * Configure headers. Entries have higher priority than entries from .headers_list. * If an entry's .value is null, the entry is ignored. * If omitted, no headers are added. */ headers?: [NameStringValuePair, ...NameStringValuePair[]]; /** * 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. * If omitted or null, no headers are added. */ headers_list?: string | null; /** * Configure compression. * Known values include: gzip, none. Implementations may support other compression algorithms. * If omitted or null, none is used. */ compression?: string | null; /** * 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?: number | null; /** * Configure the encoding used for messages. * Implementations may not support json. * Values include: * * json: Protobuf JSON encoding. * * protobuf: Protobuf binary encoding. * If omitted, protobuf is used. */ encoding?: OtlpHttpEncoding; } export interface GrpcTls { /** * 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. */ ca_file?: string | null; /** * 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. */ key_file?: string | null; /** * 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. */ cert_file?: string | null; /** * 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?: boolean | null; } export interface OtlpGrpcExporter { /** * Configure endpoint. * If omitted or null, http://localhost:4317 is used. */ endpoint?: string | null; /** * Configure TLS settings for the exporter. * If omitted, system default TLS settings are used. */ tls?: GrpcTls; /** * Configure headers. Entries have higher priority than entries from .headers_list. * If an entry's .value is null, the entry is ignored. * If omitted, no headers are added. */ headers?: [NameStringValuePair, ...NameStringValuePair[]]; /** * 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. * If omitted or null, no headers are added. */ headers_list?: string | null; /** * Configure compression. * Known values include: gzip, none. Implementations may support other compression algorithms. * If omitted or null, none is used. */ compression?: string | null; /** * 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?: number | null; } export interface ExperimentalOtlpFileExporter { /** * 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?: string | null; } export type ConsoleExporter = Record | null; export interface LogRecordExporter { /** * Configure exporter to be OTLP with HTTP transport. * If omitted, ignore. */ otlp_http?: OtlpHttpExporter; /** * Configure exporter to be OTLP with gRPC transport. * If omitted, ignore. */ otlp_grpc?: OtlpGrpcExporter; /** * Configure exporter to be OTLP with file transport. * If omitted, ignore. */ 'otlp_file/development'?: ExperimentalOtlpFileExporter; /** * Configure exporter to be console. * If omitted, ignore. */ console?: ConsoleExporter; [key: string]: object | null | undefined; } export interface BatchLogRecordProcessor { /** * Configure delay interval (in milliseconds) between two consecutive exports. * Value must be non-negative. * If omitted or null, 1000 is used. */ schedule_delay?: number | null; /** * 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?: number | null; /** * Configure maximum queue size. Value must be positive. * If omitted or null, 2048 is used. */ max_queue_size?: number | null; /** * Configure maximum batch size. Value must be positive. * If omitted or null, 512 is used. */ max_export_batch_size?: number | null; /** * Configure exporter. * Property is required and must be non-null. */ exporter: LogRecordExporter; } export interface SpanExporter { /** * Configure exporter to be OTLP with HTTP transport. * If omitted, ignore. */ otlp_http?: OtlpHttpExporter; /** * Configure exporter to be OTLP with gRPC transport. * If omitted, ignore. */ otlp_grpc?: OtlpGrpcExporter; /** * Configure exporter to be OTLP with file transport. * If omitted, ignore. */ 'otlp_file/development'?: ExperimentalOtlpFileExporter; /** * Configure exporter to be console. * If omitted, ignore. */ console?: ConsoleExporter; [key: string]: object | null | undefined; } export interface BatchSpanProcessor { /** * Configure delay interval (in milliseconds) between two consecutive exports. * Value must be non-negative. * If omitted or null, 5000 is used. */ schedule_delay?: number | null; /** * 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?: number | null; /** * Configure maximum queue size. Value must be positive. * If omitted or null, 2048 is used. */ max_queue_size?: number | null; /** * Configure maximum batch size. Value must be positive. * If omitted or null, 512 is used. */ max_export_batch_size?: number | null; /** * Configure exporter. * Property is required and must be non-null. */ exporter: SpanExporter; } export interface CardinalityLimits { /** * Configure default cardinality limit for all instrument types. * Instrument-specific cardinality limits take priority. * If omitted or null, 2000 is used. */ default?: number | null; /** * Configure default cardinality limit for counter instruments. * If omitted or null, the value from .default is used. */ counter?: number | null; /** * Configure default cardinality limit for gauge instruments. * If omitted or null, the value from .default is used. */ gauge?: number | null; /** * Configure default cardinality limit for histogram instruments. * If omitted or null, the value from .default is used. */ histogram?: number | null; /** * Configure default cardinality limit for observable_counter instruments. * If omitted or null, the value from .default is used. */ observable_counter?: number | null; /** * Configure default cardinality limit for observable_gauge instruments. * If omitted or null, the value from .default is used. */ observable_gauge?: number | null; /** * Configure default cardinality limit for observable_up_down_counter instruments. * If omitted or null, the value from .default is used. */ observable_up_down_counter?: number | null; /** * Configure default cardinality limit for up_down_counter instruments. * If omitted or null, the value from .default is used. */ up_down_counter?: number | null; } export type ExporterTemporalityPreference = ('cumulative' | 'delta' | 'low_memory') | null; export type ExporterDefaultHistogramAggregation = ('explicit_bucket_histogram' | 'base2_exponential_bucket_histogram') | null; export interface ConsoleMetricExporter { /** * Configure temporality preference. * Values include: * * 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. * If omitted, cumulative is used. */ temporality_preference?: ExporterTemporalityPreference; /** * Configure default histogram aggregation. * Values include: * * 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. * If omitted, explicit_bucket_histogram is used. */ default_histogram_aggregation?: ExporterDefaultHistogramAggregation; } export type Distribution = Record; export type ExemplarFilter = ('always_on' | 'always_off' | 'trace_based') | null; export interface ExperimentalSemconvConfig { /** * The target semantic convention version for this domain (e.g., 1). * 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. */ version?: number | null; /** * Use latest experimental semantic conventions (before stable is available or to enable experimental features on top of stable conventions). * If omitted or null, false is used. */ experimental?: boolean | null; /** * 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. * If omitted or null, false is used. */ dual_emit?: boolean | null; } export interface ExperimentalCodeInstrumentation { /** * 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/ * If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. */ semconv?: ExperimentalSemconvConfig; } export type ExperimentalComposableAlwaysOffSampler = Record | null; export type ExperimentalComposableAlwaysOnSampler = Record | null; export interface ExperimentalComposableProbabilitySampler { /** * Configure ratio. * If omitted or null, 1.0 is used. */ ratio?: number | null; } export interface ExperimentalComposableRuleBasedSamplerRuleAttributeValues { /** * The attribute key to match against. * Property is required and must be non-null. */ key: string; /** * The attribute values to match against. If the attribute's value matches any of these, it matches. * Property is required and must be non-null. */ values: [string, ...string[]]; } export interface ExperimentalComposableRuleBasedSamplerRuleAttributePatterns { /** * The attribute key to match against. * Property is required and must be non-null. */ key: string; /** * 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. * If omitted, all values are included. */ included?: [string, ...string[]]; /** * 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. * If omitted, .included attributes are included. */ excluded?: [string, ...string[]]; } export type SpanKind = ('internal' | 'server' | 'client' | 'producer' | 'consumer') | null; export type ExperimentalSpanParent = ('none' | 'remote' | 'local') | null; /** * A rule for ExperimentalComposableRuleBasedSampler. A 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. */ export interface ExperimentalComposableRuleBasedSamplerRule { /** * 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. * If omitted, ignore. */ attribute_values?: ExperimentalComposableRuleBasedSamplerRuleAttributeValues; /** * 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. * If omitted, ignore. */ attribute_patterns?: ExperimentalComposableRuleBasedSamplerRuleAttributePatterns; /** * The span kinds to match. If the span's kind matches any of these, it matches. * Values include: * * 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. * If omitted, ignore. */ span_kinds?: [SpanKind, ...SpanKind[]]; /** * The parent span types to match. * Values include: * * local: local, a local parent. * * none: none, no parent, i.e., the trace root. * * remote: remote, a remote parent. * If omitted, ignore. */ parent?: [ExperimentalSpanParent, ...ExperimentalSpanParent[]]; /** * The sampler to use for matching spans. * Property is required and must be non-null. */ sampler: ExperimentalComposableSampler; } export interface ExperimentalComposableRuleBasedSampler { /** * 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. * If omitted, no span is sampled. */ rules?: [ ExperimentalComposableRuleBasedSamplerRule, ...ExperimentalComposableRuleBasedSamplerRule[] ]; } export interface ExperimentalComposableSampler { /** * Configure sampler to be always_off. * If omitted, ignore. */ always_off?: ExperimentalComposableAlwaysOffSampler; /** * Configure sampler to be always_on. * If omitted, ignore. */ always_on?: ExperimentalComposableAlwaysOnSampler; /** * Configure sampler to be parent_threshold. * If omitted, ignore. */ parent_threshold?: ExperimentalComposableParentThresholdSampler; /** * Configure sampler to be probability. * If omitted, ignore. */ probability?: ExperimentalComposableProbabilitySampler; /** * Configure sampler to be rule_based. * If omitted, ignore. */ rule_based?: ExperimentalComposableRuleBasedSampler; [key: string]: object | null | undefined; } export interface ExperimentalComposableParentThresholdSampler { /** * Sampler to use when there is no parent. * Property is required and must be non-null. */ root: ExperimentalComposableSampler; } export type ExperimentalContainerResourceDetector = Record | null; export interface ExperimentalDbInstrumentation { /** * 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/ * If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. */ semconv?: ExperimentalSemconvConfig; } export type ExperimentalEventToSpanEventBridgeLogRecordProcessor = Record | null; export interface ExperimentalGenAiInstrumentation { /** * 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/ * If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. */ semconv?: ExperimentalSemconvConfig; } export interface ExperimentalHttpClientInstrumentation { /** * Configure headers to capture for outbound http requests. * If omitted, no outbound request headers are captured. */ request_captured_headers?: [string, ...string[]]; /** * Configure headers to capture for inbound http responses. * If omitted, no inbound response headers are captured. */ response_captured_headers?: [string, ...string[]]; /** * 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. * If omitted, HTTP methods GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are known. */ known_methods?: string[]; } export interface ExperimentalHttpServerInstrumentation { /** * Configure headers to capture for inbound http requests. * If omitted, no request headers are captured. */ request_captured_headers?: [string, ...string[]]; /** * Configure headers to capture for outbound http responses. * If omitted, no response headers are captures. */ response_captured_headers?: [string, ...string[]]; /** * 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. * If omitted, HTTP methods GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are known. */ known_methods?: string[]; } export interface ExperimentalHttpInstrumentation { /** * 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/ * If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. */ semconv?: ExperimentalSemconvConfig; /** * Configure instrumentations following the http client semantic conventions. * If omitted, defaults as described in ExperimentalHttpClientInstrumentation are used. */ client?: ExperimentalHttpClientInstrumentation; /** * Configure instrumentations following the http server semantic conventions. * If omitted, defaults as described in ExperimentalHttpServerInstrumentation are used. */ server?: ExperimentalHttpServerInstrumentation; } export interface ExperimentalMessagingInstrumentation { /** * 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/ * If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. */ semconv?: ExperimentalSemconvConfig; } export interface ExperimentalRpcInstrumentation { /** * 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/ * If omitted, uses the general stability_opt_in_list setting, or instrumentations continue emitting their default semantic convention version if not set. */ semconv?: ExperimentalSemconvConfig; } export interface ExperimentalUrlSanitization { /** * 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. * 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. */ sensitive_query_parameters?: string[]; } export interface ExperimentalSanitization { /** * Configure URL sanitization options. * If omitted, defaults as described in ExperimentalUrlSanitization are used. */ url?: ExperimentalUrlSanitization; } export interface ExperimentalGeneralInstrumentation { /** * Configure instrumentations following the http semantic conventions. * See http semantic conventions: https://opentelemetry.io/docs/specs/semconv/http/ * If omitted, defaults as described in ExperimentalHttpInstrumentation are used. */ http?: ExperimentalHttpInstrumentation; /** * Configure instrumentations following the code semantic conventions. * See code semantic conventions: https://opentelemetry.io/docs/specs/semconv/registry/attributes/code/ * If omitted, defaults as described in ExperimentalCodeInstrumentation are used. */ code?: ExperimentalCodeInstrumentation; /** * Configure instrumentations following the database semantic conventions. * See database semantic conventions: https://opentelemetry.io/docs/specs/semconv/database/ * If omitted, defaults as described in ExperimentalDbInstrumentation are used. */ db?: ExperimentalDbInstrumentation; /** * Configure instrumentations following the GenAI semantic conventions. * See GenAI semantic conventions: https://opentelemetry.io/docs/specs/semconv/gen-ai/ * If omitted, defaults as described in ExperimentalGenAiInstrumentation are used. */ gen_ai?: ExperimentalGenAiInstrumentation; /** * Configure instrumentations following the messaging semantic conventions. * See messaging semantic conventions: https://opentelemetry.io/docs/specs/semconv/messaging/ * If omitted, defaults as described in ExperimentalMessagingInstrumentation are used. */ messaging?: ExperimentalMessagingInstrumentation; /** * Configure instrumentations following the RPC semantic conventions. * See RPC semantic conventions: https://opentelemetry.io/docs/specs/semconv/rpc/ * If omitted, defaults as described in ExperimentalRpcInstrumentation are used. */ rpc?: ExperimentalRpcInstrumentation; /** * Configure general sanitization options. * If omitted, defaults as described in ExperimentalSanitization are used. */ sanitization?: ExperimentalSanitization; /** * 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/ * If omitted or null, no opt-in is configured and instrumentations continue emitting their default semantic convention version. */ stability_opt_in_list?: string | null; } export type ExperimentalHostResourceDetector = Record | null; export type ExperimentalLanguageSpecificInstrumentation = Record; export interface ExperimentalInstrumentation { /** * 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.. * If omitted, default values as described in ExperimentalGeneralInstrumentation are used. */ general?: ExperimentalGeneralInstrumentation; /** * Configure C++ language-specific instrumentation libraries. * If omitted, instrumentation defaults are used. */ cpp?: ExperimentalLanguageSpecificInstrumentation; /** * Configure .NET language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ dotnet?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Erlang language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ erlang?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Go language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ go?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Java language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ java?: ExperimentalLanguageSpecificInstrumentation; /** * Configure JavaScript language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ js?: ExperimentalLanguageSpecificInstrumentation; /** * Configure PHP language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ php?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Python language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ python?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Ruby language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ ruby?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Rust language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ rust?: ExperimentalLanguageSpecificInstrumentation; /** * Configure Swift language-specific instrumentation libraries. * Each entry's key identifies a particular instrumentation library. The corresponding value configures it. * If omitted, instrumentation defaults are used. */ swift?: ExperimentalLanguageSpecificInstrumentation; } export interface ParentBasedSampler { /** * Configure root sampler. * If omitted, always_on is used. */ root?: Sampler; /** * Configure remote_parent_sampled sampler. * If omitted, always_on is used. */ remote_parent_sampled?: Sampler; /** * Configure remote_parent_not_sampled sampler. * If omitted, always_off is used. */ remote_parent_not_sampled?: Sampler; /** * Configure local_parent_sampled sampler. * If omitted, always_on is used. */ local_parent_sampled?: Sampler; /** * Configure local_parent_not_sampled sampler. * If omitted, always_off is used. */ local_parent_not_sampled?: Sampler; } export interface ExperimentalProbabilitySampler { /** * Configure ratio. * If omitted or null, 1.0 is used. */ ratio?: number | null; } export interface TraceIdRatioBasedSampler { /** * Configure trace_id_ratio. * If omitted or null, 1.0 is used. */ ratio?: number | null; } export interface Sampler { /** * Configure sampler to be always_off. * If omitted, ignore. */ always_off?: AlwaysOffSampler; /** * Configure sampler to be always_on. * If omitted, ignore. */ always_on?: AlwaysOnSampler; /** * Configure sampler to be composite. * If omitted, ignore. */ 'composite/development'?: ExperimentalComposableSampler; /** * Configure sampler to be jaeger_remote. * If omitted, ignore. */ 'jaeger_remote/development'?: ExperimentalJaegerRemoteSampler; /** * Configure sampler to be parent_based. * If omitted, ignore. */ parent_based?: ParentBasedSampler; /** * Configure sampler to be probability. * If omitted, ignore. */ 'probability/development'?: ExperimentalProbabilitySampler; /** * Configure sampler to be trace_id_ratio_based. * If omitted, ignore. */ trace_id_ratio_based?: TraceIdRatioBasedSampler; [key: string]: object | null | undefined; } export interface ExperimentalJaegerRemoteSampler { /** * Configure the endpoint of the jaeger remote sampling service. * Property is required and must be non-null. */ endpoint: string; /** * Configure the polling interval (in milliseconds) to fetch from the remote sampling service. * If omitted or null, 60000 is used. */ interval?: number | null; /** * Configure the initial sampler used before first configuration is fetched. * Property is required and must be non-null. */ initial_sampler: Sampler; } export type SeverityNumber = ('trace' | 'trace2' | 'trace3' | 'trace4' | 'debug' | 'debug2' | 'debug3' | 'debug4' | 'info' | 'info2' | 'info3' | 'info4' | 'warn' | 'warn2' | 'warn3' | 'warn4' | 'error' | 'error2' | 'error3' | 'error4' | 'fatal' | 'fatal2' | 'fatal3' | 'fatal4') | null; export interface ExperimentalLoggerConfig { /** * Configure if the logger is enabled or not. * If omitted or null, true is used. */ enabled?: boolean | null; /** * Configure severity filtering. * Log records with an non-zero (i.e. unspecified) severity number which is less than minimum_severity are not processed. * Values include: * * 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. * If omitted, severity filtering is not applied. */ minimum_severity?: SeverityNumber; /** * 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. * If omitted or null, trace based filtering is not applied. */ trace_based?: boolean | null; } export interface ExperimentalLoggerMatcherAndConfig { /** * 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. * Property is required and must be non-null. */ name: string; /** * The logger config. * Property is required and must be non-null. */ config: ExperimentalLoggerConfig; } export interface ExperimentalLoggerConfigurator { /** * Configure the default logger config used there is no matching entry in .logger_configurator/development.loggers. * If omitted, unmatched .loggers use default values as described in ExperimentalLoggerConfig. */ default_config?: ExperimentalLoggerConfig; /** * Configure loggers. * If omitted, all loggers use .default_config. */ loggers?: [ ExperimentalLoggerMatcherAndConfig, ...ExperimentalLoggerMatcherAndConfig[] ]; } export interface ExperimentalMeterConfig { /** * Configure if the meter is enabled or not. * If omitted, true is used. */ enabled?: boolean; } export interface ExperimentalMeterMatcherAndConfig { /** * 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. * Property is required and must be non-null. */ name: string; /** * The meter config. * Property is required and must be non-null. */ config: ExperimentalMeterConfig; } export interface ExperimentalMeterConfigurator { /** * Configure the default meter config used there is no matching entry in .meter_configurator/development.meters. * If omitted, unmatched .meters use default values as described in ExperimentalMeterConfig. */ default_config?: ExperimentalMeterConfig; /** * Configure meters. * If omitted, all meters used .default_config. */ meters?: [ ExperimentalMeterMatcherAndConfig, ...ExperimentalMeterMatcherAndConfig[] ]; } export interface ExperimentalOtlpFileMetricExporter { /** * 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?: string | null; /** * Configure temporality preference. * Values include: * * 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. * If omitted, cumulative is used. */ temporality_preference?: ExporterTemporalityPreference; /** * Configure default histogram aggregation. * Values include: * * 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. * If omitted, explicit_bucket_histogram is used. */ default_histogram_aggregation?: ExporterDefaultHistogramAggregation; } export type ExperimentalProcessResourceDetector = Record | null; export interface IncludeExclude { /** * 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. * If omitted, all values are included. */ included?: [string, ...string[]]; /** * 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. * If omitted, .included attributes are included. */ excluded?: [string, ...string[]]; } export type ExperimentalPrometheusTranslationStrategy = ('underscore_escaping_with_suffixes' | 'underscore_escaping_without_suffixes/development' | 'no_utf8_escaping_with_suffixes/development' | 'no_translation/development') | null; export interface ExperimentalPrometheusMetricExporter { /** * Configure host. * If omitted or null, localhost is used. */ host?: string | null; /** * Configure port. * If omitted or null, 9464 is used. */ port?: number | null; /** * Configure Prometheus Exporter to produce metrics without scope labels. * If omitted or null, false is used. */ without_scope_info?: boolean | null; /** * Configure Prometheus Exporter to produce metrics without a target info metric for the resource. * If omitted or null, false is used. */ 'without_target_info/development'?: boolean | null; /** * Configure Prometheus Exporter to add resource attributes as metrics attributes, where the resource attribute keys match the patterns. * If omitted, no resource attributes are added. */ with_resource_constant_labels?: IncludeExclude; /** * Configure how metric names are translated to Prometheus metric names. * Values include: * * 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. * If omitted, underscore_escaping_with_suffixes is used. */ translation_strategy?: ExperimentalPrometheusTranslationStrategy; } export type ExperimentalServiceResourceDetector = Record | null; export interface ExperimentalResourceDetector { /** * Enable the container resource detector, which populates container.* attributes. * If omitted, ignore. */ container?: ExperimentalContainerResourceDetector; /** * Enable the host resource detector, which populates host.* and os.* attributes. * If omitted, ignore. */ host?: ExperimentalHostResourceDetector; /** * Enable the process resource detector, which populates process.* attributes. * If omitted, ignore. */ process?: ExperimentalProcessResourceDetector; /** * Enable the service detector, which populates service.name based on the OTEL_SERVICE_NAME environment variable and service.instance.id. * If omitted, ignore. */ service?: ExperimentalServiceResourceDetector; [key: string]: object | null | undefined; } export interface ExperimentalResourceDetection { /** * Configure attributes provided by resource detectors. * If omitted, all attributes from resource detectors are added. */ attributes?: IncludeExclude; /** * Configure resource detectors. * Resource detector names are dependent on the SDK language ecosystem. Please consult documentation for each respective language. * If omitted, no resource detectors are enabled. */ detectors?: [ExperimentalResourceDetector, ...ExperimentalResourceDetector[]]; } export interface ExperimentalTracerConfig { /** * Configure if the tracer is enabled or not. * If omitted, true is used. */ enabled?: boolean; } export interface ExperimentalTracerMatcherAndConfig { /** * 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. * Property is required and must be non-null. */ name: string; /** * The tracer config. * Property is required and must be non-null. */ config: ExperimentalTracerConfig; } export interface ExperimentalTracerConfigurator { /** * Configure the default tracer config used there is no matching entry in .tracer_configurator/development.tracers. * If omitted, unmatched .tracers use default values as described in ExperimentalTracerConfig. */ default_config?: ExperimentalTracerConfig; /** * Configure tracers. * If omitted, all tracers use .default_config. */ tracers?: [ ExperimentalTracerMatcherAndConfig, ...ExperimentalTracerMatcherAndConfig[] ]; } export type InstrumentType = ('counter' | 'gauge' | 'histogram' | 'observable_counter' | 'observable_gauge' | 'observable_up_down_counter' | 'up_down_counter') | null; export interface SimpleLogRecordProcessor { /** * Configure exporter. * Property is required and must be non-null. */ exporter: LogRecordExporter; } export interface LogRecordProcessor { /** * Configure a batch log record processor. * If omitted, ignore. */ batch?: BatchLogRecordProcessor; /** * Configure a simple log record processor. * If omitted, ignore. */ simple?: SimpleLogRecordProcessor; /** * Configure an event to span event bridge log record processor. * If omitted, ignore. */ 'event_to_span_event_bridge/development'?: ExperimentalEventToSpanEventBridgeLogRecordProcessor; [key: string]: object | null | undefined; } export interface LogRecordLimits { /** * 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?: number | null; /** * 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?: number | null; } export interface LoggerProvider { /** * Configure log record processors. * Property is required and must be non-null. */ processors: [LogRecordProcessor, ...LogRecordProcessor[]]; /** * Configure log record limits. See also attribute_limits. * If omitted, default values as described in LogRecordLimits are used. */ limits?: LogRecordLimits; /** * Configure loggers. * If omitted, all loggers use default values as described in ExperimentalLoggerConfig. */ 'logger_configurator/development'?: ExperimentalLoggerConfigurator; } export interface OtlpHttpMetricExporter { /** * Configure endpoint. * If omitted or null, http://localhost:4318/v1/metrics is used. */ endpoint?: string | null; /** * Configure TLS settings for the exporter. * If omitted, system default TLS settings are used. */ tls?: HttpTls; /** * Configure headers. Entries have higher priority than entries from .headers_list. * If an entry's .value is null, the entry is ignored. * If omitted, no headers are added. */ headers?: [NameStringValuePair, ...NameStringValuePair[]]; /** * 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. * If omitted or null, no headers are added. */ headers_list?: string | null; /** * Configure compression. * Known values include: gzip, none. Implementations may support other compression algorithms. * If omitted or null, none is used. */ compression?: string | null; /** * 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?: number | null; /** * Configure the encoding used for messages. * Implementations may not support json. * Values include: * * json: Protobuf JSON encoding. * * protobuf: Protobuf binary encoding. * If omitted, protobuf is used. */ encoding?: OtlpHttpEncoding; /** * Configure temporality preference. * Values include: * * 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. * If omitted, cumulative is used. */ temporality_preference?: ExporterTemporalityPreference; /** * Configure default histogram aggregation. * Values include: * * 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. * If omitted, explicit_bucket_histogram is used. */ default_histogram_aggregation?: ExporterDefaultHistogramAggregation; } export interface OtlpGrpcMetricExporter { /** * Configure endpoint. * If omitted or null, http://localhost:4317 is used. */ endpoint?: string | null; /** * Configure TLS settings for the exporter. * If omitted, system default TLS settings are used. */ tls?: GrpcTls; /** * Configure headers. Entries have higher priority than entries from .headers_list. * If an entry's .value is null, the entry is ignored. * If omitted, no headers are added. */ headers?: [NameStringValuePair, ...NameStringValuePair[]]; /** * 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. * If omitted or null, no headers are added. */ headers_list?: string | null; /** * Configure compression. * Known values include: gzip, none. Implementations may support other compression algorithms. * If omitted or null, none is used. */ compression?: string | null; /** * 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?: number | null; /** * Configure temporality preference. * Values include: * * 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. * If omitted, cumulative is used. */ temporality_preference?: ExporterTemporalityPreference; /** * Configure default histogram aggregation. * Values include: * * 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. * If omitted, explicit_bucket_histogram is used. */ default_histogram_aggregation?: ExporterDefaultHistogramAggregation; } export interface PushMetricExporter { /** * Configure exporter to be OTLP with HTTP transport. * If omitted, ignore. */ otlp_http?: OtlpHttpMetricExporter; /** * Configure exporter to be OTLP with gRPC transport. * If omitted, ignore. */ otlp_grpc?: OtlpGrpcMetricExporter; /** * Configure exporter to be OTLP with file transport. * If omitted, ignore. */ 'otlp_file/development'?: ExperimentalOtlpFileMetricExporter; /** * Configure exporter to be console. * If omitted, ignore. */ console?: ConsoleMetricExporter; [key: string]: object | null | undefined; } export type OpenCensusMetricProducer = Record | null; export interface MetricProducer { /** * Configure metric producer to be opencensus. * If omitted, ignore. */ opencensus?: OpenCensusMetricProducer; [key: string]: object | null | undefined; } export interface PeriodicMetricReader { /** * Configure delay interval (in milliseconds) between start of two consecutive exports. * Value must be non-negative. * If omitted or null, 60000 is used. */ interval?: number | null; /** * 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?: number | null; /** * Configure maximum export batch size. * If omitted or null, no limit is used. */ 'max_export_batch_size/development'?: number | null; /** * Configure exporter. * Property is required and must be non-null. */ exporter: PushMetricExporter; /** * Configure metric producers. * If omitted, no metric producers are added. */ producers?: [MetricProducer, ...MetricProducer[]]; /** * Configure cardinality limits. * If omitted, default values as described in CardinalityLimits are used. */ cardinality_limits?: CardinalityLimits; } export interface PullMetricExporter { /** * Configure exporter to be prometheus. * If omitted, ignore. */ 'prometheus/development'?: ExperimentalPrometheusMetricExporter; [key: string]: object | null | undefined; } export interface PullMetricReader { /** * Configure exporter. * Property is required and must be non-null. */ exporter: PullMetricExporter; /** * Configure metric producers. * If omitted, no metric producers are added. */ producers?: [MetricProducer, ...MetricProducer[]]; /** * Configure cardinality limits. * If omitted, default values as described in CardinalityLimits are used. */ cardinality_limits?: CardinalityLimits; } export interface MetricReader { /** * Configure a periodic metric reader. * If omitted, ignore. */ periodic?: PeriodicMetricReader; /** * Configure a pull based metric reader. * If omitted, ignore. */ pull?: PullMetricReader; } export interface ViewSelector { /** * Configure instrument name selection criteria. * If omitted or null, all instrument names match. */ instrument_name?: string | null; /** * Configure instrument type selection criteria. * Values include: * * 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. * If omitted, all instrument types match. */ instrument_type?: InstrumentType; /** * Configure the instrument unit selection criteria. * If omitted or null, all instrument units match. */ unit?: string | null; /** * Configure meter name selection criteria. * If omitted or null, all meter names match. */ meter_name?: string | null; /** * Configure meter version selection criteria. * If omitted or null, all meter versions match. */ meter_version?: string | null; /** * Configure meter schema url selection criteria. * If omitted or null, all meter schema URLs match. */ meter_schema_url?: string | null; } export interface ViewStream { /** * Configure metric name of the resulting stream(s). * If omitted or null, the instrument's original name is used. */ name?: string | null; /** * Configure metric description of the resulting stream(s). * If omitted or null, the instrument's origin description is used. */ description?: string | null; /** * Configure aggregation of the resulting stream(s). * If omitted, default is used. */ aggregation?: Aggregation; /** * Configure the aggregation cardinality limit. * If omitted or null, the metric reader's default cardinality limit is used. */ aggregation_cardinality_limit?: number | null; /** * Configure attribute keys retained in the resulting stream(s). * If omitted, all attribute keys are retained. */ attribute_keys?: IncludeExclude; } export interface View { /** * 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. * Property is required and must be non-null. */ selector: ViewSelector; /** * Configure view stream. * Property is required and must be non-null. */ stream: ViewStream; } export interface MeterProvider { /** * Configure metric readers. * Property is required and must be non-null. */ readers: [MetricReader, ...MetricReader[]]; /** * Configure views. * Each view has a selector which determines the instrument(s) it applies to, and a configuration for the resulting stream(s). * If omitted, no views are registered. */ views?: [View, ...View[]]; /** * Configure the exemplar filter. * Values include: * * 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. * If omitted, trace_based is used. */ exemplar_filter?: ExemplarFilter; /** * Configure meters. * If omitted, all meters use default values as described in ExperimentalMeterConfig. */ 'meter_configurator/development'?: ExperimentalMeterConfigurator; } export type TraceContextPropagator = Record | null; export interface TextMapPropagator { /** * Include the w3c trace context propagator. * If omitted, ignore. */ tracecontext?: TraceContextPropagator; /** * Include the w3c baggage propagator. * If omitted, ignore. */ baggage?: BaggagePropagator; /** * Include the zipkin b3 propagator. * If omitted, ignore. */ b3?: B3Propagator; /** * Include the zipkin b3 multi propagator. * If omitted, ignore. */ b3multi?: B3MultiPropagator; [key: string]: object | null | undefined; } export interface 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. Known third party keys include: xray. * If omitted, and .composite_list is omitted or null, a noop propagator is used. */ composite?: [TextMapPropagator, ...TextMapPropagator[]]; /** * 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. * If omitted or null, and .composite is omitted or null, a noop propagator is used. */ composite_list?: string | null; } export interface Resource { /** * Configure resource attributes. Entries have higher priority than entries from .resource.attributes_list. * If omitted, no resource attributes are added. */ attributes?: [AttributeNameValue, ...AttributeNameValue[]]; /** * Configure resource detection. * If omitted, resource detection is disabled. */ 'detection/development'?: ExperimentalResourceDetection; /** * Configure resource schema URL. * If omitted or null, no schema URL is used. */ schema_url?: string | null; /** * 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. * If omitted or null, no resource attributes are added. */ attributes_list?: string | null; } export interface SimpleSpanProcessor { /** * Configure exporter. * Property is required and must be non-null. */ exporter: SpanExporter; } export interface SpanLimits { /** * 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?: number | null; /** * 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?: number | null; /** * Configure max span event count. * Value must be non-negative. * If omitted or null, 128 is used. */ event_count_limit?: number | null; /** * Configure max span link count. * Value must be non-negative. * If omitted or null, 128 is used. */ link_count_limit?: number | null; /** * Configure max attributes per span event. * Value must be non-negative. * If omitted or null, 128 is used. */ event_attribute_count_limit?: number | null; /** * Configure max attributes per span link. * Value must be non-negative. * If omitted or null, 128 is used. */ link_attribute_count_limit?: number | null; } export interface SpanProcessor { /** * Configure a batch span processor. * If omitted, ignore. */ batch?: BatchSpanProcessor; /** * Configure a simple span processor. * If omitted, ignore. */ simple?: SimpleSpanProcessor; [key: string]: object | null | undefined; } export interface TracerProvider { /** * Configure span processors. * Property is required and must be non-null. */ processors: [SpanProcessor, ...SpanProcessor[]]; /** * Configure span limits. See also attribute_limits. * If omitted, default values as described in SpanLimits are used. */ limits?: SpanLimits; /** * Configure the sampler. * If omitted, parent based sampler with a root of always_on is used. */ sampler?: Sampler; /** * Configure tracers. * If omitted, all tracers use default values as described in ExperimentalTracerConfig. */ 'tracer_configurator/development'?: ExperimentalTracerConfigurator; } /** * OpenTelemetryConfiguration */ export interface OpenTelemetryConfiguration { /** * 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 * Property is required and must be non-null. */ file_format: string; /** * Configure if the SDK is disabled or not. * If omitted or null, false is used. */ disabled?: boolean | null; /** * Configure the log level of the internal logger used by the SDK. * Values include: * * 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. * If omitted, INFO is used. */ log_level?: SeverityNumber; /** * Configure general attribute limits. See also tracer_provider.limits, logger_provider.limits. * If omitted, default values as described in AttributeLimits are used. */ attribute_limits?: AttributeLimits; /** * Configure logger provider. * If omitted, a noop logger provider is used. */ logger_provider?: LoggerProvider; /** * Configure meter provider. * If omitted, a noop meter provider is used. */ meter_provider?: MeterProvider; /** * Configure text map context propagators. * If omitted, a noop propagator is used. */ propagator?: Propagator; /** * Configure tracer provider. * If omitted, a noop tracer provider is used. */ tracer_provider?: TracerProvider; /** * Configure resource for all signals. * If omitted, the default resource is used. */ resource?: Resource; /** * Configure instrumentation. * If omitted, instrumentation defaults are used. */ 'instrumentation/development'?: ExperimentalInstrumentation; /** * 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. * If omitted, distribution defaults are used. */ distribution?: Distribution; [key: string]: unknown; } //# sourceMappingURL=schema.d.ts.map