Skip to content

Commit 7804bd2

Browse files
committed
add prom client metrics
1 parent ac006be commit 7804bd2

File tree

7 files changed

+70
-16
lines changed

7 files changed

+70
-16
lines changed

server/node-service/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
"openblocks-core": "^0.0.7",
6363
"openblocks-sdk": "0.0.38",
6464
"pino": "^8.11.0",
65+
"prom-client": "^14.2.0",
6566
"proxy-agent": "^5.0.0",
6667
"stylis": "^4.1.3",
6768
"swagger-client": "^3.18.5",
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { Request, Response } from "express";
2+
import { register } from "prom-client";
3+
import _ from "lodash";
4+
5+
export async function prometheus(req: Request, res: Response) {
6+
const metrics = await register.metrics();
7+
res.send(metrics);
8+
}
9+
10+
export async function status(req: Request, res: Response) {
11+
res.json({
12+
ok: true,
13+
});
14+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import express from "express";
2+
import * as pluginControllers from "../controllers/plugins";
3+
import jsControllers from "../controllers/runJavascript";
4+
5+
const apiRouter = express.Router();
6+
7+
apiRouter.post("/runJs", jsControllers.runJavascript);
8+
apiRouter.post("/batchRunJs", jsControllers.batchRunJavascript);
9+
10+
apiRouter.get("/plugins", pluginControllers.listPlugins);
11+
apiRouter.post("/runPluginQuery", pluginControllers.runPluginQuery);
12+
apiRouter.post("/getPluginDynamicConfig", pluginControllers.getDynamicDef);
13+
apiRouter.post("/validatePluginDataSourceConfig", pluginControllers.validatePluginDataSourceConfig);
14+
15+
export default apiRouter;

server/node-service/src/routes/index.ts

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import express from "express";
2+
import * as systemControllers from "../controllers/system";
3+
4+
const systemRouter = express.Router();
5+
6+
systemRouter.get("/prometheus", systemControllers.prometheus);
7+
8+
export default systemRouter;

server/node-service/src/server.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@ import http from "http";
22
import "./common/logger";
33
import "express-async-errors";
44
import express, { Response, Request, NextFunction } from "express";
5-
import routes from "./routes";
65
import { ServiceError } from "./common/error";
76
import path from "node:path";
87
import morgan from "morgan";
8+
import { collectDefaultMetrics } from "prom-client";
9+
import apiRouter from "./routes/apiRouter";
10+
import systemRouter from "./routes/systemRouter";
11+
collectDefaultMetrics();
912

1013
const prefix = "/node-service";
1114

@@ -45,7 +48,8 @@ router.use((req, res, next) => {
4548
});
4649

4750
/** Routes */
48-
router.use(`${prefix}/api`, routes);
51+
router.use(`${prefix}/api`, apiRouter);
52+
router.use(`${prefix}/system`, systemRouter);
4953

5054
// service err
5155
router.use((err: Error, _req: Request, res: Response, _next: NextFunction) => {

server/node-service/yarn.lock

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5508,6 +5508,13 @@ __metadata:
55085508
languageName: node
55095509
linkType: hard
55105510

5511+
"bintrees@npm:1.0.2":
5512+
version: 1.0.2
5513+
resolution: "bintrees@npm:1.0.2"
5514+
checksum: 56a52b7d3634e30002b1eda740d2517a22fa8e9e2eb088e919f37c030a0ed86e364ab59e472fc770fc8751308054bb1c892979d150e11d9e11ac33bcc1b5d16e
5515+
languageName: node
5516+
linkType: hard
5517+
55115518
"bluebird@npm:^3.7.2":
55125519
version: 3.7.2
55135520
resolution: "bluebird@npm:3.7.2::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fbluebird%2F-%2Fbluebird-3.7.2.tgz"
@@ -9484,6 +9491,15 @@ __metadata:
94849491
languageName: node
94859492
linkType: hard
94869493

9494+
"prom-client@npm:^14.2.0":
9495+
version: 14.2.0
9496+
resolution: "prom-client@npm:14.2.0"
9497+
dependencies:
9498+
tdigest: ^0.1.1
9499+
checksum: d4c04e57616c72643dd02862d0d4bde09cf8869a19d0aef5e7b785e6e27d02439b66cdc165e3492f62d579fa91579183820870cc757a09b99399d2d02f46b9f1
9500+
languageName: node
9501+
linkType: hard
9502+
94879503
"promise-inflight@npm:^1.0.1":
94889504
version: 1.0.1
94899505
resolution: "promise-inflight@npm:1.0.1::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fpromise-inflight%2F-%2Fpromise-inflight-1.0.1.tgz"
@@ -10420,6 +10436,7 @@ __metadata:
1042010436
openblocks-sdk: 0.0.38
1042110437
pino: ^8.11.0
1042210438
postman-to-openapi: ^3.0.1
10439+
prom-client: ^14.2.0
1042310440
proxy-agent: ^5.0.0
1042410441
stylis: ^4.1.3
1042510442
svgo: ^3.0.2
@@ -10445,6 +10462,15 @@ __metadata:
1044510462
languageName: node
1044610463
linkType: hard
1044710464

10465+
"tdigest@npm:^0.1.1":
10466+
version: 0.1.2
10467+
resolution: "tdigest@npm:0.1.2"
10468+
dependencies:
10469+
bintrees: 1.0.2
10470+
checksum: 44de8246752b6f8c2924685f969fd3d94c36949f22b0907e99bef2b2220726dd8467f4730ea96b06040b9aa2587c0866049640039d1b956952dfa962bc2075a3
10471+
languageName: node
10472+
linkType: hard
10473+
1044810474
"teeny-request@npm:^8.0.0":
1044910475
version: 8.0.2
1045010476
resolution: "teeny-request@npm:8.0.2::__archiveUrl=https%3A%2F%2Fregistry.npmjs.org%2Fteeny-request%2F-%2Fteeny-request-8.0.2.tgz"

0 commit comments

Comments
 (0)