{{ define "agent.config.metricsService" }}
// Metrics Service
remote.kubernetes.secret "metrics_service" {
  name = {{ include "kubernetes_monitoring.metrics_service.secret.name" . | quote }}
  namespace = {{ .Values.externalServices.prometheus.secret.namespace | default .Release.Namespace | quote }}
}

otelcol.exporter.prometheus "otel_to_prom_converter" {
  forward_to = [prometheus.relabel.metrics_service.receiver]
}

prometheus.relabel "metrics_service" {
  rule {
    source_labels = ["cluster"]
    regex = ""
    replacement = {{ required ".Values.cluster.name is a required value. Please set it and try again." .Values.cluster.name | quote }}
    target_label = "cluster"
  }

{{- if eq .Values.externalServices.prometheus.protocol "remote_write" }}
  forward_to = [prometheus.remote_write.metrics_service.receiver]
}
{{ include "agent.config.metricsServiceRemoteWrite" . }}
{{- end }}

{{- if or (eq .Values.externalServices.prometheus.protocol "otlp") (eq .Values.externalServices.prometheus.protocol "otlphttp") }}
  forward_to = [otelcol.receiver.prometheus.metrics_service.receiver]
}
{{ include "agent.config.metricsServiceOTLP" . }}
{{ end }}
{{- end }}
