{{ define "agent.config.traces" }}
// Traces
{{- with .Values.traces }}
otelcol.processor.batch "trace_batch_processor" {
  send_batch_size = {{ .processors.batch.size | int }}
  send_batch_max_size = {{ .processors.batch.maxSize | int }}
  timeout = {{ .processors.batch.timeout | quote}}
  output {
    traces = [otelcol.processor.attributes.trace_attributes_processor.input]
  }
}
{{- end }}

otelcol.processor.attributes "trace_attributes_processor" {
  action {
    key = "cluster"
    value = {{ required ".Values.cluster.name is a required value. Please set it and try again." .Values.cluster.name | quote }}
    action = "insert"
  }
  action {
    key = "k8s.cluster.name"
    value = {{ required ".Values.cluster.name is a required value. Please set it and try again." .Values.cluster.name | quote }}
    action = "upsert"
  }
  output {
    {{- if eq .Values.externalServices.tempo.protocol "otlp" }}
    traces = [otelcol.exporter.otlp.traces_service.input]
    {{- else if eq .Values.externalServices.tempo.protocol "otlphttp" }}
    traces = [otelcol.exporter.otlphttp.traces_service.input]
    {{- end }}
  }
}
{{- end }}
