---
# -- The name for this OTLP destination.
# @section -- General
name: ""

# -- The protocol for the OTLP destination.
# Options are "grpc" (default), "http".
# @section -- General
protocol: "grpc"

metrics:
  # -- Whether to send metrics to the OTLP destination.
  # @default -- `true`
  # @section -- Telemetry
  enabled:

logs:
  # -- Whether to send logs to the OTLP destination.
  # @default -- `true`
  # @section -- Telemetry
  enabled:

traces:
  # -- Whether to send traces to the OTLP destination.
  # @default -- `true`
  # @section -- Telemetry
  enabled:

# -- The URL for the OTLP destination.
# @section -- General
url: ""

# -- Raw config for accessing the URL.
# @section -- General
urlFrom: ""

# -- The tenant ID for the OTLP destination.
# @section -- General
tenantId: ""
# -- The key for storing the tenant ID in the secret.
# @section -- General
tenantIdKey: "tenantId"
# -- Raw config for accessing the tenant ID.
# @section -- General
tenantIdFrom: ""

# -- Extra headers to be set when sending data.
# All values are treated as strings and automatically quoted.
# @section -- General
extraHeaders: {}
# -- Extra headers to be set when sending data through a dynamic reference.
# All values are treated as raw strings and not quoted.
# @section -- General
extraHeadersFrom: {}

auth:
  # -- The type of authentication to do.
  # Options are "none" (default), "basic", "bearerToken", "oauth2".
  # @section -- Authentication
  type: none

  # -- The username for basic authentication.
  # @section -- Authentication - Basic
  username: ""
  # -- The key for storing the username in the secret.
  # @section -- Authentication - Basic
  usernameKey: username
  # -- Raw config for accessing the username.
  # @section -- Authentication - Basic
  usernameFrom: ""

  # -- The password for basic authentication.
  # @section -- Authentication - Basic
  password: ""
  # -- The key for storing the password in the secret.
  # @section -- Authentication - Basic
  passwordKey: password
  # -- Raw config for accessing the password.
  # @section -- Authentication - Basic
  passwordFrom: ""

  # -- The bearer token for bearer token authentication.
  # @section -- Authentication - Bearer Token
  bearerToken: ""
  # -- The key for storing the bearer token in the secret.
  # @section -- Authentication - Bearer Token
  bearerTokenKey: bearerToken
  # -- Raw config for accessing the bearer token.
  # @section -- Authentication - Bearer Token
  bearerTokenFrom: ""
  # -- Path to a file that containers the bearer token.
  # @section -- Authentication - Bearer Token
  bearerTokenFile: ""

  # Authenticate to Prometheus using OAuth2
  # @section -- Authentication - OAuth2
  oauth2:
    # -- OAuth2 client ID
    # @section -- Authentication - OAuth2
    clientId: ""
    # -- The key for the client ID property in the secret
    # @section -- Authentication - OAuth2
    clientIdKey: clientId
    # -- Raw config for accessing the client ID
    # @section -- Authentication - OAuth2
    clientIdFrom: ""
    # -- OAuth2 client secret
    # @section -- Authentication - OAuth2
    clientSecret: ""
    # -- The key for the client secret property in the secret
    # @section -- Authentication - OAuth2
    clientSecretKey: clientSecret
    # -- Raw config for accessing the client secret
    # @section -- Authentication - OAuth2
    clientSecretFrom: ""
    # -- File containing the OAuth2 client secret.
    # @section -- Authentication - OAuth2
    clientSecretFile: ""
    # -- OAuth2 endpoint parameters
    # @section -- Authentication - OAuth2
    endpointParams: {}
    # -- HTTP proxy to send requests through.
    # @section -- Authentication - OAuth2
    proxyURL: ""
    # -- Comma-separated list of IP addresses, CIDR notations, and domain names to exclude from proxying.
    # @section -- Authentication - OAuth2
    noProxy: ""
    # -- Use the proxy URL indicated by environment variables.
    # @section -- Authentication - OAuth2
    proxyFromEnvironment: false
    # -- Specifies headers to send to proxies during CONNECT requests.
    # @section -- Authentication - OAuth2
    proxyConnectHeader: {}
    # -- List of scopes to authenticate with.
    # @section -- Authentication - OAuth2
    scopes: []
    # -- URL to fetch the token from.
    # @section -- Authentication - OAuth2
    tokenURL: ""

secret:
  # -- (bool) Whether to create a secret for this Prometheus destination.
  # @default -- `true`
  # @section -- Secret
  create:
  # -- If true, skip secret creation and embed the credentials directly into the configuration.
  # @section -- Secret
  embed: false
  # -- The name of the secret to create.
  # @section -- Secret
  name: ""
  # -- The namespace for the secret.
  # @section -- Secret
  namespace: ""

tls:
  # -- Whether to use TLS for the OTLP destination.
  # @section -- TLS
  insecure: false

  # -- Disables validation of the server certificate.
  # @section -- TLS
  insecureSkipVerify: false

  # -- The CA certificate for the server (as a string).
  # @section -- TLS
  ca: ""
  # -- The CA certificate for the server (as a path to a file).
  # @section -- TLS
  caFile: ""
  # -- Raw config for accessing the server CA certificate.
  # @section -- TLS
  caFrom: ""

  # -- The client certificate for the server (as a string).
  # @section -- TLS
  cert: ""
  # -- The client certificate for the server (as a path to a file).
  # @section -- TLS
  certFile: ""
  # -- Raw config for accessing the client certificate.
  # @section -- TLS
  certFrom: ""

  # -- The client key for the server (as a string).
  # @section -- TLS
  key: ""
  # -- The client key for the server (as a path to a file).
  # @section -- TLS
  keyFile: ""
  # -- Raw config for accessing the client key.
  # @section -- TLS
  keyFrom: ""

# -- Size of the read buffer the gRPC client to use for reading server responses.
# @section -- General
readBufferSize: ""

# -- Size of the write buffer the gRPC client to use for writing requests.
# @section -- General
writeBufferSize: ""

# Processors to apply to the data before sending it.
processors:
  attributes:
    # -- Attribute processor actions
    # Format: { key: "", value: "", action: "", pattern: "", fromAttribute: "", fromContext: "", convertedType: "" }
    # Can also use `valueFrom` instead of value to use a raw reference.
    # @section -- Attributes Processor
    actions: []

  transform:
    # -- Metric transforms
    # @section -- Transform Processor
    metrics:
      resource: []
      metric: []
      datapoint: []

    # -- Log transforms
    # @section -- Transform Processor
    logs:
      resource: []
      log: []

    # -- Trace transforms
    # @section -- Transform Processor
    traces:
      resource: []
      span: []
      spanevent: []

  filters:
    # -- Enable the filter processor. Any rules that evaluate to true will drop the matching telemetry data.
    # @section -- Filter Processor
    enabled: false

    # -- Metric filters
    # @section -- Filter Processor
    metrics:
      metric: []
      datapoint: []

    # -- Log filters
    # @section -- Filter Processor
    logs:
      logRecord: []

    # -- Trace filters
    # @section -- Filter Processor
    traces:
      span: []
      spanevent: []

  batch:
    # -- Whether to use a batch processor.
    # @section -- Batch Processor
    enabled: true
    # -- Amount of data to buffer before flushing the batch.
    # @section -- Batch Processor
    size: 8192
    # -- Upper limit of a batch size. When set to 0, there is no upper limit.
    # @section -- Batch Processor
    maxSize: 0
    # -- How long to wait before flushing the batch.
    # @section -- Batch Processor
    timeout: 2s
  memoryLimiter:
    # -- Whether to use a memory limiter.
    # @section -- Memory Limiter
    enabled: false
    # -- How often to check memory usage.
    # @section -- Memory Limiter
    checkInterval: 1s
    # -- Maximum amount of memory targeted to be allocated by the process heap.
    # @section -- Memory Limiter
    limit: 0MiB