$schema: https://json-schema.org/draft/2020-12/schema
title: OtelConfig
description: OpenTelemetry configuration
type: object
properties:
exporter:
description: Configurations for exporting traces, metrics and logs
anyOf:
- $ref: '#/$defs/ExporterConfig'
- type: 'null'
stdout:
description: Enables logs on stdout
anyOf:
- $ref: '#/$defs/StdoutLogsConfig'
- type: 'null'
$defs:
ExporterConfig:
description: Configuration for exporting OpenTelemetry data
type: object
properties:
endpoint:
description: gRPC endpoint for exporting using OTELP
$ref: '#/$defs/OtelUrl'
logs:
description: Logs exporting config
anyOf:
- $ref: '#/$defs/ProviderConfig'
- type: 'null'
metrics:
description: Metrics exporting config
anyOf:
- $ref: '#/$defs/ProviderConfig'
- type: 'null'
resource_metadata:
description: |-
Key value mapping of the OTEL resource. See [Resource semantic conventions](https://opentelemetry.io/docs/specs/semconv/resource/) for what can be set here.
Only string values are supported now.
This crate sets `service.name` and `service.version` by default.
type: object
additionalProperties:
type: string
default: {}
traces:
description: Traces exporting config
anyOf:
- $ref: '#/$defs/ProviderConfig'
- type: 'null'
LevelFilter:
type: string
enum:
- off
- error
- warn
- info
- debug
- trace
OtelUrl:
description: Wrapper over [`Url`] with [`Default`] implementation `http://localhost:4317`
type: string
format: uri
ProviderConfig:
description: Provider configuration for OpenTelemetry export
type: object
properties:
dependencies_levels:
description: Levels for the dependencies
type: object
additionalProperties:
$ref: '#/$defs/LevelFilter'
default: {}
enabled:
description: Enables provider
type: boolean
default: false
general_level:
description: General level
$ref: '#/$defs/LevelFilter'
default: info
level:
description: Level for the crate
$ref: '#/$defs/LevelFilter'
default: info
StdoutLogsConfig:
description: Stdout logs configuration
type: object
properties:
dependencies_levels:
description: Level for the dependencies
type: object
additionalProperties:
$ref: '#/$defs/LevelFilter'
default: {}
enabled:
description: Enables the stdout logs
type: boolean
default: true
general_level:
description: General level
$ref: '#/$defs/LevelFilter'
default: info
json_output:
description: Output structured JSON logs
type: boolean
default: false
level:
description: Level for the crate
$ref: '#/$defs/LevelFilter'
default: info