realm-object-server
Version:
85 lines • 3.54 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const chai_1 = require("chai");
const express = require("express");
const http = require("http");
const _1 = require(".");
describe("Prometheus Stats Storage", () => {
let mockedPrometheusApp;
let server;
let serverUrl;
let storage;
beforeEach(() => __awaiter(this, void 0, void 0, function* () {
mockedPrometheusApp = express();
server = http.createServer(mockedPrometheusApp).listen();
serverUrl = `http://localhost:${server.address().port}`;
storage = new _1.PrometheusStatsStorage({ url: serverUrl });
}));
afterEach(() => {
if (server) {
server.close();
}
});
const metrics = [{
"metric": {
"__name__": "test-metric",
"job": "prometheus",
"instance": "localhost:9090"
},
"value": [1435781451.781, "1"],
}, {
"metric": {
"__name__": "test-metric",
"job": "node",
"instance": "localhost:9100"
},
"value": [1435781451.781, "0"],
}];
it("can query for stats", () => __awaiter(this, void 0, void 0, function* () {
mockedPrometheusApp.get("/api/v1/query", (req, res) => {
chai_1.expect(req.query).to.deep.equal({ query: "test-metric" });
res.json({
status: "success",
data: {
resultType: "vector",
result: metrics,
},
});
});
const instantValues = yield storage.getInstantValues("test-metric");
chai_1.expect(instantValues).to.deep.equal([
{ value: 1, labels: { "__name__": "test-metric", job: "prometheus", instance: "localhost:9090" } },
{ value: 0, labels: { "__name__": "test-metric", job: "node", instance: "localhost:9100" } },
]);
}));
it("can query for stats (filtered by labels)", () => __awaiter(this, void 0, void 0, function* () {
mockedPrometheusApp.get("/api/v1/query", (req, res) => {
chai_1.expect(req.query).to.deep.equal({
query: 'test-metric{job="prometheus",instance="localhost:9090"}',
});
res.json({
status: "success",
data: {
resultType: "vector",
result: [metrics[0]],
},
});
});
const instantValues = yield storage.getInstantValues("test-metric", {
job: "prometheus",
instance: "localhost:9090",
});
chai_1.expect(instantValues).to.deep.equal([
{ value: 1, labels: { "__name__": "test-metric", job: "prometheus", instance: "localhost:9090" } },
]);
}));
});
//# sourceMappingURL=PrometheusStatsStorage.spec.js.map