Scrape Prometheus metrics into Osuite
Many services already expose a Prometheus /metrics endpoint — application libraries with a Prometheus client, and standalone exporters like node_exporter, postgres_exporter, or redis_exporter. To bring those metrics into Osuite, run the OpenTelemetry Collector with the prometheus receiver: it scrapes the endpoints on a schedule and forwards the samples to Osuite over OTLP. You do not point the exporters at Osuite directly — the Collector does the scraping and the forwarding.
Prerequisites
Section titled “Prerequisites”- One or more targets that expose a Prometheus
/metricsendpoint the Collector can reach on the network. - An OpenTelemetry Collector running where it can scrape those targets.
- Your Osuite ingest endpoint and token.
Collector configuration
Section titled “Collector configuration”The prometheus receiver takes a standard Prometheus scrape_configs block. Scrape the targets, batch, and export over OTLP:
receivers: prometheus: config: scrape_configs: - job_name: 'payment-service' scrape_interval: 30s static_configs: - targets: ['payment-service:9100'] - job_name: 'node-exporter' scrape_interval: 30s static_configs: - targets: ['host-a:9100', 'host-b:9100']
processors: batch: {}
exporters: otlp/osuite: endpoint: ingest.<region>.osuite.io:443 headers: x-osuite-ingest-token: <your-ingest-token>
service: pipelines: metrics: receivers: [prometheus] processors: [batch] exporters: [otlp/osuite]The receiver defaults to the /metrics path over HTTP; set metrics_path and scheme: https on a job if a target differs. Each job_name becomes the service.name of the metrics from that job, and each target’s address becomes its service.instance.id, so choose job names you will recognize in the Explore metrics view.
Relabeling
Section titled “Relabeling”Prometheus relabeling runs inside the receiver, before the samples are forwarded, so you can shape targets and drop noise at the source.
relabel_configsrewrites target labels before a scrape — for example, copying a meaningful label onto every series from a job.metric_relabel_configsruns after the scrape and filters individual metrics — the cheapest place to drop high-cardinality or unused series you do not want to ingest.
- job_name: 'payment-service' static_configs: - targets: ['payment-service:9100'] labels: team: 'payments' metric_relabel_configs: - source_labels: [__name__] regex: 'go_gc_.*' action: dropHere every series from the job carries a team="payments" label, and the Go garbage-collector metrics are dropped before they leave the Collector.
Verify in Osuite
Section titled “Verify in Osuite”Give the Collector one scrape interval, then open the Explore metrics view and search for a metric name you expect from the target — for a node_exporter job, node_cpu_seconds_total. It should list the scraped metrics with the job and instance labels attached.
Troubleshooting
Section titled “Troubleshooting”- No metrics from a target — confirm the Collector can reach the target’s address and port, and that the endpoint returns Prometheus text at
/metrics. A scrape failure is recorded in the Collector’s own logs. - Wrong service name — the metrics are grouped by
job_name; rename the job, not the metrics.
No data in Osuite after a few minutes? Work through these checks.
- Endpoint — confirm the exporter targets exactly
ingest.<region>.osuite.io:443for your region, over TLS. - Token — confirm the ingest header carries a valid
<your-ingest-token>and has not been rotated. - Pipeline — confirm the signal you expect (traces, logs, or metrics) is wired into an active pipeline with the
otlp/osuiteexporter attached. - Export errors — check the application or Collector logs for OTLP export failures (auth, DNS, TLS, connection refused).
- Network — confirm the host has outbound access to the ingest endpoint on port
443. - Timing — allow up to a minute for the first data to appear before assuming a failure.
Still stuck? Ask the Investigation Agent or contact support.
Next steps
Section titled “Next steps”- Querying with PromQL — query the metrics you just scraped
- Infrastructure integrations — purpose-built receivers for hosts, databases, and queues
- Alerts — alert on a scraped metric