Prometheus
Learn about Prometheus in Parseable, including core concepts, configuration steps, and practical guidance for building an effective observability workflow.
Prometheus is commonly used to collect metrics from applications, exporters, and infrastructure components that expose a /metrics endpoint. It scrapes those targets on a schedule and keeps the collected samples ready for querying, alerting, and forwarding.
Parseable can ingest metrics from Prometheus and Prometheus-compatible sources. In this setup, Prometheus forwards the collected samples to Parseable through Remote Write. Those samples are stored in a metrics dataset, where they can be queried alongside the rest of your telemetry.
The setup can start from an existing Prometheus server, or from a telemetry agent such as Fluent Bit or the OpenTelemetry Collector when you need to scrape Prometheus-compatible targets first.
Remote Write
The direct path is Prometheus Remote Write. Prometheus continues to scrape your targets, then forwards the collected samples to the Parseable ingestor endpoint.
remote_write:
- url: "http://<parseable-ingestor-endpoint>:8000/v1/prometheus/write"
headers:
X-API-Key: <parseable-api-key>
X-P-Stream: prometheus-metrics
X-P-Log-Source: otel-metricsX-API-Key authorizes the write to Parseable. X-P-Stream decides the target metrics dataset, and X-P-Log-Source: otel-metrics tells Parseable to treat the incoming payload as metrics data.
Fluent Bit with OpenTelemetry Output
Fluent Bit is useful when you already run it as a telemetry agent and want it to scrape Prometheus metrics from a target endpoint. The example below scrapes my-app:9090/metrics and forwards the data to Parseable's OTLP metrics endpoint.
[SERVICE]
Flush 5
Log_Level info
[INPUT]
Name prometheus_scrape
Host my-app # Target host exposing Prometheus metrics
Port 9090 # Prometheus metrics port
Metrics_Path /metrics # Standard Prometheus metrics endpoint
Scrape_Interval 2s # Scrape metrics every 2 seconds
[OUTPUT]
Name opentelemetry
Match *
Host <parseable-ingestor-endpoint>
Port 8000
Metrics_uri /v1/metrics
Log_response_payload True
Tls Off
Header X-API-Key <parseable-api-key>
Header X-P-Stream prometheus-metrics
Header X-P-Log-Source otel-metrics
Add_label app fluent-bitExample Targets
Adjust Host and Port to scrape different sources:
| Target | Host | Port |
|---|---|---|
| Node Exporter | node-exporter | 9100 |
| Kubernetes API | kube-apiserver | 6443 |
| Custom App | my-app | 8080 |
OpenTelemetry Collector with Prometheus Receiver
Use the OpenTelemetry Collector when you want one pipeline for scraping, batching, retrying, and exporting Prometheus metrics. The Prometheus receiver scrapes the target, and the OTLP HTTP exporter sends the converted metrics to Parseable.
receivers:
prometheus:
config:
scrape_configs:
- job_name: 'my-app'
scrape_interval: 15s
static_configs:
- targets: ['my-app:9090']
exporters:
otlphttp/parseable:
endpoint: "http://<parseable-ingestor-endpoint>:8000"
headers:
X-API-Key: <parseable-api-key>
X-P-Stream: prometheus-metrics
X-P-Log-Source: otel-metrics
encoding: proto
tls:
insecure: true
service:
pipelines:
metrics:
receivers: [prometheus]
exporters: [otlphttp/parseable]View Metrics in Parseable
Once data starts arriving, open the prometheus-metrics dataset from the Metrics page. You can inspect metric names, filter by labels, query with PromQL, and build dashboards for the targets you scrape.
Keep the dataset name clear enough for the team that owns it. For example, use separate datasets for node-metrics, kubernetes-metrics, or payments-metrics when those streams have different owners, retention needs, or dashboard workflows.
Things to Check
- Use the ingestor endpoint, not a query-only endpoint, for writes.
- Keep
X-P-Log-Sourceset tootel-metrics. - Use an API key that can write to the target dataset.
- Start with a short
scrape_interval, then tune it based on the metric volume you expect.
Was this page helpful?