{{ define "agent.config.pod_monitors" }}
// Prometheus Operator PodMonitor objects
prometheus.operator.podmonitors "pod_monitors" {
  namespaces = {{ .Values.metrics.podMonitors.namespaces | toStrings }}
  forward_to = [prometheus.relabel.podmonitors.receiver]
{{- if (index .Values "grafana-agent").agent.clustering.enabled }}
  clustering {
    enabled = true
  }
{{- end }}
}

prometheus.relabel "podmonitors" {
{{- if .Values.metrics.extraMetricRelabelingRules }}
{{ .Values.metrics.extraMetricRelabelingRules | indent 2 }}
{{- end }}
  forward_to = [prometheus.remote_write.grafana_cloud_prometheus.receiver]
}
{{ end }}

{{ define "agent.config.probes" }}
// Prometheus Operator Probe objects
prometheus.operator.probes "probes" {
  namespaces = {{ .Values.metrics.probes.namespaces | toStrings }}
  forward_to = [prometheus.relabel.probes.receiver]
{{- if (index .Values "grafana-agent").agent.clustering.enabled }}
  clustering {
    enabled = true
  }
{{- end }}
}

prometheus.relabel "probes" {
{{- if .Values.metrics.extraMetricRelabelingRules }}
{{ .Values.metrics.extraMetricRelabelingRules | indent 2 }}
{{- end }}
  forward_to = [prometheus.remote_write.grafana_cloud_prometheus.receiver]
}
{{ end }}


{{ define "agent.config.service_monitors" }}
// Prometheus Operator ServiceMonitor objects
prometheus.operator.servicemonitors "service_monitors" {
  namespaces = {{ .Values.metrics.serviceMonitors.namespaces | toStrings }}
  forward_to = [prometheus.relabel.servicemonitors.receiver]
{{- if (index .Values "grafana-agent").agent.clustering.enabled }}
  clustering {
    enabled = true
  }
{{- end }}
}

prometheus.relabel "servicemonitors" {
{{- if .Values.metrics.extraMetricRelabelingRules }}
{{ .Values.metrics.extraMetricRelabelingRules | indent 2 }}
{{- end }}
  forward_to = [prometheus.remote_write.grafana_cloud_prometheus.receiver]
}
{{ end }}
