The recommended approach is to use the OpenTelemetry Collector to scrape and forward Prometheus metrics to the exporter. This method preserves metric type information better than Prometheus Remote Write due to the more sophisticated type system in OpenTelemetry.Here’s an example configuration for the OpenTelemetry Collector:
Copy
Ask AI
apiVersion: v1kind: ConfigMapmetadata: name: otel-collector-configdata: collector-config.yaml: | receivers: prometheus: config: scrape_configs: - job_name: 'prometheus-federate' scrape_interval: 60s metrics_path: /federate params: match[]: - '{job=~".+"}' static_configs: - targets: ['PROMETHEUS_TO_SCRAPE_URL:9090']# Uncomment this to rename the metrics to include the company name so it's easier to identify in Metoro vs the inbuilt metrics# processors:# metricstransform:# transforms:# - include: '(.*)'# match_type: regexp# action: update# new_name: 'COMPANY_NAME_$1'# batch: {} exporters: otlphttp: endpoint: "http://metoro-exporter.metoro.svc.cluster.local/api/v1/custom/otel" tls: # Disable TLS for in-cluster communication, this is safe because the endpoint is internal to the cluster, when data is sent from the exporter out, it is encrypted insecure: true encoding: json service: pipelines: metrics: receivers: [prometheus] processors: [metricstransform, batch] exporters: [otlphttp]
This configuration:
Sets up a Prometheus receiver to scrape metrics from your Prometheus instance
Processes the metrics through a transformation pipeline
If you are unable to use the OpenTelemetry Collector, you can configure Prometheus to directly send metrics to Metoro using Remote Write. While this method is simpler to set up, it may not preserve all metric type information due to limitations in the Prometheus Remote Write protocol.Add the following to your Prometheus configuration:
Copy
Ask AI
# The rest of your configuration hereremote_write: - url: "http://metoro-exporter.metoro.svc.cluster.local/api/v1/send/prometheus/remote_write"
This configuration will send all scraped metrics directly to the exporter from your Prometheus instance using Prometheus Remote Write.A full example can be seen here