{{ define "alloy.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" "alloy" .Values.alloy.alloy }}
{{- include "checkforAlloyPort" $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" "alloy" .Values.alloy.alloy }}
{{- include "checkforAlloyPort" $data }}
  http {
    endpoint = "0.0.0.0:{{ $data.port | int }}"
  }
{{- end }}
  output {
{{- if .Values.metrics.enabled }}
    metrics = [otelcol.processor.resourcedetection.default.input]
{{- end }}
{{- if .Values.logs.enabled }}
    logs = [otelcol.processor.resourcedetection.default.input]
{{- end }}
{{- if .Values.traces.enabled }}
    traces = [otelcol.processor.resourcedetection.default.input]
{{- end }}
  }
}
{{- end }}
{{ end }}
