Package Exports
- prometheus-remote-write
- prometheus-remote-write/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (prometheus-remote-write) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Push timeseries to Prometheus via remote_write
Using remote_write facility (see https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write) to send metrics to remote Prometheus from NodeJS app.
Pretty much anything from https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage should be supported, but tested only with grafana.com:
- AppOptics
- AWS Timestream
- Azure Data Explorer
- Azure Event Hubs
- Chronix
- Cortex
- CrateDB
- Elasticsearch
- Gnocchi
- Google BigQuery
- Google Cloud Spanner
- Graphite
- InfluxDB
- Instana
- IRONdb
- Kafka
- M3DB
- New Relic
- OpenTSDB
- PostgreSQL/TimescaleDB
- QuasarDB
- SignalFx
- Splunk
- Sysdig Monitor
- TiKV
- Thanos
- VictoriaMetrics
- Wavefront
(List copied from https://github.com/prometheus/docs/blob/main/content/docs/operating/integrations.md)
Usage:
import { pushTimeseries, pushMetrics } from "prometheus-remote-write";
// Just push some metrics metrics
await pushMetrics(
{
queue_depth_total: 100,
},
{
url: process.env.GRAFANA_PUSH_URL || "http://localhost:9201",
labels: { service: "queue-worker" },
}
);
// Full config - only url is required
const config = {
// Remote url
url: "http://localhost:9201",
// Auth settings
auth: {
username: "...",
password: "...",
},
// Optional prometheus protocol descripton .proto/.json
proto: undefined,
// Logging & debugging, disabled by default
console: undefined,
verbose: false,
timing: false,
// Override used node-fetch
fetch: undefined,
// Additional labels to apply to each timeseries, i.e. [{ service: "SQS" }]
labels: undefined
};
// Follows remote_write payload format (see https://github.com/prometheus/prometheus/blob/main/prompb/types.proto)
await pushTimeseries(
{
labels: {
__name__: "queue_depth_total",
instance: "dev.example.com",
service: "SQS",
},
samples: [
{
value: 150,
timestamp: Date.now(),
},
],
},
config
);
Links
- https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write
- https://grafana.com/docs/grafana-cloud/metrics-prometheus/
- https://docs.newrelic.com/docs/infrastructure/prometheus-integrations/install-configure-remote-write/set-your-prometheus-remote-write-integration/
- https://prometheus.io/docs/operating/integrations/#remote-endpoints-and-storage