prometheus-remote-write
Version:
Send samples to prometheus via remote_write from NodeJS
77 lines (70 loc) • 1.35 kB
JavaScript
const push = require("./index");
push.pushMetrics({ users_total: 22 }, { timeout: 1 });
const config = {
url: process.env.GRAFANA_PUSH_URL,
auth: {
username: process.env.GRAFANA_INSTANCE_ID,
password: process.env.GRAFANA_API_KEY,
},
verbose: true,
timing: true,
labels: {
service: "bar",
},
};
push
.pushTimeseries(
{
labels: {
__name__: "test_exemplar_metric_total",
instance: "localhost:8090",
job: "prometheus",
},
samples: [
{
value: Math.random() * 10,
timestamp: Date.now(),
},
],
},
config
)
.then((r) => {
console.info("Result", r);
});
for (let i = 0; i < 100; i++) {
push
.pushTimeseries(
{
labels: {
__name__: "test_exemplar_metric_total",
instance: "localhost:8090",
job: "prometheus",
},
samples: [
{
value: Math.random() * 10,
timestamp: Date.now() + i,
},
],
},
config
)
.then((r) => {
console.info("Result", r);
});
}
push.pushMetrics({ users_total: 11 });
setTimeout(
() =>
push.pushMetrics(
{ max_users_total: 31 },
{
headers: {
"X-extra-key": "test2",
},
verbose: true,
}
),
1000
);