UNPKG

5.2 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = exports.MetricsApi = void 0;
9
10var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
12var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
14var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
16var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
18var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
19
20var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
22var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
24var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
26var _env = require("@lskjs/env");
27
28var _serverApi = _interopRequireDefault(require("@lskjs/server-api"));
29
30var _promClient = require("prom-client");
31
32function _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); }; }
33
34function _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; } }
35
36var MetricsApi = /*#__PURE__*/function (_Api) {
37 (0, _inherits2["default"])(MetricsApi, _Api);
38
39 var _super = _createSuper(MetricsApi);
40
41 function MetricsApi() {
42 (0, _classCallCheck2["default"])(this, MetricsApi);
43 return _super.apply(this, arguments);
44 }
45
46 (0, _createClass2["default"])(MetricsApi, [{
47 key: "getRoutes",
48 value: function getRoutes() {
49 return {
50 '/': this.metrics.bind(this)
51 };
52 }
53 }, {
54 key: "init",
55 value: function () {
56 var _init = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
57 var _this = this;
58
59 var proxy;
60 return _regenerator["default"].wrap(function _callee$(_context) {
61 while (1) {
62 switch (_context.prev = _context.next) {
63 case 0:
64 _context.next = 2;
65 return (0, _get2["default"])((0, _getPrototypeOf2["default"])(MetricsApi.prototype), "init", this).call(this);
66
67 case 2:
68 this.registry = new _promClient.Registry();
69 this.registry.setDefaultLabels({
70 stage: _env.stage
71 });
72 _context.next = 6;
73 return this.app.module('proxy');
74
75 case 6:
76 proxy = _context.sent;
77 _context.t0 = Object;
78 _context.next = 10;
79 return proxy.metrics();
80
81 case 10:
82 _context.t1 = _context.sent;
83
84 _context.t0.values.call(_context.t0, _context.t1).map(function (m) {
85 return _this.registry.registerMetric(m);
86 });
87
88 case 12:
89 case "end":
90 return _context.stop();
91 }
92 }
93 }, _callee, this);
94 }));
95
96 function init() {
97 return _init.apply(this, arguments);
98 }
99
100 return init;
101 }()
102 }, {
103 key: "metrics",
104 value: function () {
105 var _metrics = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(req, res) {
106 var proxy, raw;
107 return _regenerator["default"].wrap(function _callee2$(_context2) {
108 while (1) {
109 switch (_context2.prev = _context2.next) {
110 case 0:
111 this.registry.resetMetrics();
112 _context2.next = 3;
113 return this.app.module('proxy');
114
115 case 3:
116 proxy = _context2.sent;
117 _context2.next = 6;
118 return proxy.metrics();
119
120 case 6:
121 _context2.next = 8;
122 return this.registry.metrics();
123
124 case 8:
125 raw = _context2.sent;
126 return _context2.abrupt("return", res.send(raw));
127
128 case 10:
129 case "end":
130 return _context2.stop();
131 }
132 }
133 }, _callee2, this);
134 }));
135
136 function metrics(_x, _x2) {
137 return _metrics.apply(this, arguments);
138 }
139
140 return metrics;
141 }()
142 }]);
143 return MetricsApi;
144}(_serverApi["default"]);
145
146exports.MetricsApi = MetricsApi;
147var _default = MetricsApi;
148exports["default"] = _default;
149//# sourceMappingURL=MetricsApi.js.map
\No newline at end of file