{ "$schema": "https://json-schema.org/draft-06/schema", "$ref": "#/definitions/OpenTelemetryConfiguration", "definitions": { "OpenTelemetryConfiguration": { "type": "object", "additionalProperties": false, "properties": { "scheme_version": { "type": "number" }, "sdk": { "$ref": "#/definitions/SDK" } }, "required": [ "scheme_version", "sdk" ], "title": "OpenTelemetryConfiguration" }, "SDK": { "type": "object", "additionalProperties": false, "properties": { "disabled": { "type": "boolean" }, "resource": { "$ref": "#/definitions/Resource" }, "propagators": { "type": "array", "items": { "type": "string" } }, "attribute_limits": { "$ref": "#/definitions/Limits" }, "tracer_provider": { "$ref": "#/definitions/TracerProvider" }, "meter_provider": { "$ref": "#/definitions/MeterProvider" }, "logger_provider": { "$ref": "#/definitions/LoggerProvider" } }, "required": [ "disabled" ], "title": "SDK" }, "Limits": { "type": "object", "additionalProperties": false, "properties": { "attribute_value_length_limit": { "type": "integer" }, "attribute_count_limit": { "type": "integer" } }, "required": [ "attribute_count_limit", "attribute_value_length_limit" ], "title": "Limits" }, "LoggerProvider": { "type": "object", "additionalProperties": false, "properties": { "exporters": { "$ref": "#/definitions/LoggerProviderExporters" }, "log_record_processors": { "type": "array", "items": { "$ref": "#/definitions/Processor" } }, "log_record_limits": { "$ref": "#/definitions/Limits" } }, "required": [ "exporters", "log_record_limits", "log_record_processors" ], "title": "LoggerProvider" }, "LoggerProviderExporters": { "type": "object", "additionalProperties": false, "properties": { "otlp": { "$ref": "#/definitions/Otlp" } }, "required": [ "otlp" ], "title": "LoggerProviderExporters" }, "Otlp": { "type": "object", "additionalProperties": false, "properties": { "protocol": { "type": "string", "pattern": "^(http|grpc)\\/(protobuf|json)" }, "endpoint": { "type": "string", "format": "uri", "qt-uri-protocols": [ "http" ] }, "certificate": { "type": "string" }, "client_key": { "type": "string" }, "client_certificate": { "type": "string" }, "headers": { "$ref": "#/definitions/Headers" }, "compression": { "type": "string" }, "timeout": { "type": "integer" }, "temporality_preference": { "type": "string" }, "default_histogram_aggregation": { "type": "string" } }, "required": [ "endpoint", "protocol" ], "title": "Otlp" }, "Headers": { "type": "object", "additionalProperties": true, "title": "Headers" }, "Processor": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string" }, "args": { "$ref": "#/definitions/LogRecordProcessorArgs" } }, "required": [ "args", "type" ], "title": "Processor" }, "LogRecordProcessorArgs": { "type": "object", "additionalProperties": false, "properties": { "schedule_delay": { "type": "integer" }, "export_timeout": { "type": "integer" }, "max_queue_size": { "type": "integer" }, "max_export_batch_size": { "type": "integer" }, "exporter": { "type": "string" } }, "required": [ "exporter" ], "title": "LogRecordProcessorArgs" }, "MeterProvider": { "type": "object", "additionalProperties": false, "properties": { "exporters": { "$ref": "#/definitions/LoggerProviderExporters" }, "metric_readers": { "type": "array", "items": { "$ref": "#/definitions/MetricReader" } }, "views": { "type": "array", "items": { "$ref": "#/definitions/ViewElement" } } }, "required": [ "exporters", "metric_readers", "views" ], "title": "MeterProvider" }, "MetricReader": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string" }, "args": { "$ref": "#/definitions/MetricReaderArgs" } }, "required": [ "args", "type" ], "title": "MetricReader" }, "MetricReaderArgs": { "type": "object", "additionalProperties": false, "properties": { "interval": { "type": "integer" }, "timeout": { "type": "integer" }, "exporter": { "type": "string" }, "host": { "type": "string" }, "port": { "type": "integer" } }, "required": [], "title": "MetricReaderArgs" }, "ViewElement": { "type": "object", "additionalProperties": false, "properties": { "selector": { "$ref": "#/definitions/Selector" }, "view": { "$ref": "#/definitions/ViewView" } }, "required": [ "selector", "view" ], "title": "ViewElement" }, "Selector": { "type": "object", "additionalProperties": false, "properties": { "instrument_name": { "type": "string" }, "instrument_type": { "type": "string" }, "meter_name": { "type": "string" }, "meter_version": { "type": "string" }, "meter_schema_url": { "type": "string", "format": "uri", "qt-uri-protocols": [ "https" ], "qt-uri-extensions": [ ".0" ] } }, "required": [ "instrument_name", "instrument_type", "meter_name", "meter_schema_url", "meter_version" ], "title": "Selector" }, "ViewView": { "type": "object", "additionalProperties": false, "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "aggregation": { "$ref": "#/definitions/Aggregation" }, "attribute_keys": { "type": "array", "items": { "type": "string" } } }, "required": [ "aggregation", "attribute_keys", "description", "name" ], "title": "ViewView" }, "Aggregation": { "type": "object", "additionalProperties": false, "properties": { "type": { "type": "string" }, "args": { "$ref": "#/definitions/AggregationArgs" } }, "required": [ "args", "type" ], "title": "Aggregation" }, "AggregationArgs": { "type": "object", "additionalProperties": false, "properties": { "boundaries": { "type": "array", "items": { "type": "number" } }, "record_min_max": { "type": "boolean" }, "max_size": { "type": "integer" } }, "required": [ "boundaries", "max_size", "record_min_max" ], "title": "AggregationArgs" }, "Resource": { "type": "object", "additionalProperties": false, "properties": { "attributes": { "$ref": "#/definitions/Attributes" } }, "required": [ "attributes" ], "title": "Resource" }, "Attributes": { "type": "object", "additionalProperties": true, "properties": { "service.name": { "type": "string" } }, "required": [ "service.name" ], "title": "Attributes" }, "TracerProvider": { "type": "object", "additionalProperties": false, "properties": { "exporters": { "$ref": "#/definitions/TracerProviderExporters" }, "span_processors": { "type": "array", "items": { "$ref": "#/definitions/Processor" } }, "span_limits": { "$ref": "#/definitions/SpanLimits" }, "sampler_config": { "$ref": "#/definitions/SamplerConfig" }, "sampler": { "type": "string" } }, "required": [ "exporters", "span_processors" ], "title": "TracerProvider" }, "TracerProviderExporters": { "type": "object", "additionalProperties": true, "patternProperties": { "^otlp.*": { "$ref": "#/definitions/Otlp" }, "^zipkin.*": { "$ref": "#/definitions/Zipkin" }, "^jaeger.*": { "$ref": "#/definitions/Jaeger" } }, "title": "TracerProviderExporters" }, "Jaeger": { "type": "object", "additionalProperties": false, "properties": { "protocol": { "type": "string", "pattern": "^http/thrift.binary$" }, "endpoint": { "type": "string", "format": "uri", "qt-uri-protocols": [ "http" ] }, "timeout": { "type": "integer" }, "user": { "type": "string" }, "password": { "type": "string" }, "agent_host": { "type": "string" }, "agent_port": { "type": "integer" } }, "required": [ "agent_host", "agent_port", "endpoint", "password", "protocol", "timeout", "user" ], "title": "Jaeger" }, "Zipkin": { "type": "object", "additionalProperties": false, "properties": { "endpoint": { "type": "string", "format": "uri", "qt-uri-protocols": [ "http" ] }, "timeout": { "type": "integer" } }, "required": [ "endpoint", "timeout" ], "title": "Zipkin" }, "SamplerConfig": { "type": "object", "additionalProperties": false, "properties": { "always_on": { "type": "null" }, "always_off": { "type": "null" }, "trace_id_ratio_based": { "$ref": "#/definitions/TraceIDRatioBased" }, "parent_based": { "$ref": "#/definitions/ParentBased" }, "jaeger_remote": { "$ref": "#/definitions/JaegerRemote" } }, "required": [ "always_off", "always_on", "jaeger_remote", "parent_based", "trace_id_ratio_based" ], "title": "SamplerConfig" }, "JaegerRemote": { "type": "object", "additionalProperties": false, "properties": { "endpoint": { "type": "string", "format": "uri", "qt-uri-protocols": [ "http" ] }, "polling_interval": { "type": "integer" }, "initial_sampling_rate": { "type": "number" } }, "required": [ "endpoint", "initial_sampling_rate", "polling_interval" ], "title": "JaegerRemote" }, "ParentBased": { "type": "object", "additionalProperties": false, "properties": { "root": { "type": "string" }, "remote_parent_sampled": { "type": "string" }, "remote_parent_not_sampled": { "type": "string" }, "local_parent_sampled": { "type": "string" }, "local_parent_not_sampled": { "type": "string" } }, "required": [ "local_parent_not_sampled", "local_parent_sampled", "remote_parent_not_sampled", "remote_parent_sampled", "root" ], "title": "ParentBased" }, "TraceIDRatioBased": { "type": "object", "additionalProperties": false, "properties": { "ratio": { "type": "number" } }, "required": [ "ratio" ], "title": "TraceIDRatioBased" }, "SpanLimits": { "type": "object", "additionalProperties": false, "properties": { "attribute_value_length_limit": { "type": "integer" }, "attribute_count_limit": { "type": "integer" }, "event_count_limit": { "type": "integer" }, "link_count_limit": { "type": "integer" }, "event_attribute_count_limit": { "type": "integer" }, "link_attribute_count_limit": { "type": "integer" } }, "required": [ "attribute_count_limit", "attribute_value_length_limit", "event_attribute_count_limit", "event_count_limit", "link_attribute_count_limit", "link_count_limit" ], "title": "SpanLimits" } } }