{{ define "agent.config.receivers.otlp" }}
{{- if (or .Values.receivers.grpc.enabled .Values.receivers.http.enabled) }}
// OTLP Receivers
otelcol.receiver.otlp "receiver" {
  debug_metrics {
    {{- if or .Values.receivers.grpc.disable_debug_metrics .Values.receivers.http.disable_debug_metrics }}
    disable_high_cardinality_metrics = true
    {{- else }}
    disable_high_cardinality_metrics = false
    {{- end }}
  }

{{- if or .Values.receivers.port .Values.receivers.grpc.enabled }}
{{$data := dict "port" (.Values.receivers.port | default .Values.receivers.grpc.port) "type" "OTLP gRPC" "agent" (index .Values "grafana-agent").agent }}
{{- include "checkforAgentPort" $data }}
  grpc {
    endpoint = "0.0.0.0:{{ $data.port | int }}"
  }
{{- end }}
{{- if .Values.receivers.http.enabled }}
{{$data := dict "port" .Values.receivers.http.port "type" "OTLP HTTP" "agent" (index .Values "grafana-agent").agent }}
{{- include "checkforAgentPort" $data }}
  http {
    endpoint = "0.0.0.0:{{ $data.port | int }}"
  }
{{- end }}
  output {
{{- if .Values.metrics.enabled }}
    metrics = [otelcol.processor.transform.add_metric_datapoint_attributes.input]
{{- end }}
{{- if .Values.logs.enabled }}
    logs = [otelcol.processor.k8sattributes.default.input]
{{- end }}
{{- if .Values.traces.enabled }}
    traces = [otelcol.processor.k8sattributes.default.input]
{{- end }}
  }
}
{{- end }}
{{ end }}
