UNPKG

5.03 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4Object.defineProperty(exports, "__esModule", {
5 value: true
6});
7exports["default"] = exports.MetricsApi = void 0;
8var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16var _env = require("@lskjs/env");
17var _serverApi = _interopRequireDefault(require("@lskjs/server-api"));
18var _promClient = require("prom-client");
19function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
20function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
21var MetricsApi = /*#__PURE__*/function (_Api) {
22 (0, _inherits2["default"])(MetricsApi, _Api);
23 var _super = _createSuper(MetricsApi);
24 function MetricsApi() {
25 (0, _classCallCheck2["default"])(this, MetricsApi);
26 return _super.apply(this, arguments);
27 }
28 (0, _createClass2["default"])(MetricsApi, [{
29 key: "getRoutes",
30 value: function getRoutes() {
31 return {
32 '/': this.metrics.bind(this)
33 };
34 }
35 }, {
36 key: "init",
37 value: function () {
38 var _init = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
39 var _this = this;
40 var proxy;
41 return _regenerator["default"].wrap(function _callee$(_context) {
42 while (1) switch (_context.prev = _context.next) {
43 case 0:
44 _context.next = 2;
45 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(MetricsApi.prototype), "init", this).call(this);
46 case 2:
47 this.registry = new _promClient.Registry();
48 this.registry.setDefaultLabels({
49 stage: _env.stage
50 });
51 _context.next = 6;
52 return this.app.module('proxy');
53 case 6:
54 proxy = _context.sent;
55 _context.t0 = Object;
56 _context.next = 10;
57 return proxy.metrics();
58 case 10:
59 _context.t1 = _context.sent;
60 _context.t0.values.call(_context.t0, _context.t1).map(function (m) {
61 return _this.registry.registerMetric(m);
62 });
63 case 12:
64 case "end":
65 return _context.stop();
66 }
67 }, _callee, this);
68 }));
69 function init() {
70 return _init.apply(this, arguments);
71 }
72 return init;
73 }()
74 }, {
75 key: "metrics",
76 value: function () {
77 var _metrics = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(req, res) {
78 var proxy, raw;
79 return _regenerator["default"].wrap(function _callee2$(_context2) {
80 while (1) switch (_context2.prev = _context2.next) {
81 case 0:
82 this.registry.resetMetrics();
83 _context2.next = 3;
84 return this.app.module('proxy');
85 case 3:
86 proxy = _context2.sent;
87 _context2.next = 6;
88 return proxy.metrics();
89 case 6:
90 _context2.next = 8;
91 return this.registry.metrics();
92 case 8:
93 raw = _context2.sent;
94 return _context2.abrupt("return", res.send(raw));
95 case 10:
96 case "end":
97 return _context2.stop();
98 }
99 }, _callee2, this);
100 }));
101 function metrics(_x, _x2) {
102 return _metrics.apply(this, arguments);
103 }
104 return metrics;
105 }()
106 }]);
107 return MetricsApi;
108}(_serverApi["default"]);
109exports.MetricsApi = MetricsApi;
110var _default = MetricsApi;
111exports["default"] = _default;
112//# sourceMappingURL=MetricsApi.js.map
\No newline at end of file