# OpenTelemetry Plugin Configuration
# This file configures the OpenTelemetry metrics and logs ingestion for Netdata

endpoint:
  # gRPC endpoint to listen on for OpenTelemetry data
  path: "127.0.0.1:4317"

  # Path to TLS certificate file (enables TLS when provided)
  tls_cert_path: null

  # Path to TLS private key file (required when TLS certificate is provided)
  tls_key_path: null

  # Path to TLS CA certificate file for client authentication (optional)
  tls_ca_cert_path: null

metrics:
  # Directory with configuration files for mapping OTEL metrics to Netdata charts
  chart_configs_dir: /etc/netdata/otel.d/v1/metrics

  # Collection interval in seconds (1–3600). Defines the Netdata chart update frequency.
  interval_secs: 10

  # Grace period in seconds. After the last data point, the plugin waits this long
  # before gap-filling. When interval_secs is overridden, this auto-derives as
  # 5 * interval_secs unless explicitly set.
  grace_period_secs: 60

  # Expiry duration in seconds. Charts with no data for this long are removed.
  expiry_duration_secs: 900

  # Maximum number of new charts that can be created per gRPC request.
  # Limits cardinality explosion from high-cardinality label combinations.
  max_new_charts_per_request: 100

logs:
  # Directory to store journal files for logs.
  journal_dir: /var/log/netdata/otel/v1

  # Maximum file size for individual journal files (e.g., "100MB", "1.5GB").
  size_of_journal_file: "100MB"

  # Maximum number of entries per journal file.
  entries_of_journal_file: 50000

  # Maximum time span that entries in a single journal file can cover (e.g., "2 hours", "1h", "30m").
  duration_of_journal_file: "2 hours"

  # Maximum number of journal files to keep.
  number_of_journal_files: 10

  # Maximum total size for all journal files combined (e.g., "1GB", "500MB")
  size_of_journal_files: "1GB"

  # Maximum age for journal entries (e.g., "7 days", "1 week", "168h").
  duration_of_journal_files: "7 days"

  # Store the complete OTLP JSON representation in the OTLP_JSON field.
  # When enabled, each log entry includes the full original JSON message for debugging and reprocessing.
  store_otlp_json: false
