1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 | Object.defineProperty(exports, "__esModule", {
|
5 | value: true
|
6 | });
|
7 | exports["default"] = exports.collectMetrics = void 0;
|
8 | var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
9 | var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
10 | var _promClient = require("prom-client");
|
11 | var collectMetrics = function () {
|
12 | var _ref = (0, _asyncToGenerator2["default"])( _regenerator["default"].mark(function _callee() {
|
13 | var _this = this;
|
14 | var _ref2,
|
15 | _ref2$prefix,
|
16 | prefix,
|
17 | proxyList,
|
18 | proxyTestsResults,
|
19 | _args = arguments;
|
20 | return _regenerator["default"].wrap(function _callee$(_context) {
|
21 | while (1) switch (_context.prev = _context.next) {
|
22 | case 0:
|
23 | _ref2 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, _ref2$prefix = _ref2.prefix, prefix = _ref2$prefix === void 0 ? 'bg' : _ref2$prefix;
|
24 | if (!this.__metrics) this.__metrics = {};
|
25 | if (!this.__metrics.gauge) {
|
26 | this.__metrics.gauge = new _promClient.Gauge({
|
27 | name: [prefix, 'proxy'].filter(Boolean).join('_'),
|
28 | help: 'Информация по проксям',
|
29 | labelNames: ['provider', 'type', 'country', 'ipv', 'worker']
|
30 | });
|
31 | }
|
32 | if (!this.__metrics.gaugeTargetCount) {
|
33 | this.__metrics.gaugeTargetCount = new _promClient.Gauge({
|
34 | name: [prefix, 'proxy_count'].filter(Boolean).join('_'),
|
35 | help: 'Информация по статусам проксям',
|
36 | labelNames: ['target', 'provider', 'status', 'worker']
|
37 | });
|
38 | }
|
39 | _context.prev = 4;
|
40 | _context.next = 7;
|
41 | return this.getAllProxyList();
|
42 | case 7:
|
43 | proxyList = _context.sent;
|
44 |
|
45 | proxyList.forEach(function (proxy) {
|
46 |
|
47 | var _ref3 = proxy || {},
|
48 | provider = _ref3.provider,
|
49 | type = _ref3.type,
|
50 | tags = _ref3.tags;
|
51 |
|
52 | var _ref4 = tags || {},
|
53 | country = _ref4.country,
|
54 | ipv = _ref4.ipv,
|
55 | worker = _ref4.worker;
|
56 |
|
57 | _this.__metrics.gauge.inc({
|
58 | provider: provider,
|
59 | type: type,
|
60 | country: country,
|
61 | ipv: ipv,
|
62 | worker: worker
|
63 | });
|
64 | });
|
65 | _context.next = 14;
|
66 | break;
|
67 | case 11:
|
68 | _context.prev = 11;
|
69 | _context.t0 = _context["catch"](4);
|
70 | this.log.error('[collectMetrics] getProxyList', _context.t0);
|
71 | case 14:
|
72 | _context.prev = 14;
|
73 | _context.next = 17;
|
74 | return this.getProxyTestsResults();
|
75 | case 17:
|
76 | proxyTestsResults = _context.sent;
|
77 | Object.values(proxyTestsResults).forEach(function () {
|
78 | var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
79 | test = _ref5.test,
|
80 | proxy = _ref5.proxy,
|
81 | time = _ref5.time,
|
82 | status = _ref5.status;
|
83 | var _ref6 = proxy || {},
|
84 | provider = _ref6.provider;
|
85 | var _ref7 = test || {},
|
86 | _ref7$tags = _ref7.tags,
|
87 | tags = _ref7$tags === void 0 ? [] : _ref7$tags;
|
88 | var _ref8 = proxy.tags || {},
|
89 | worker = _ref8.worker;
|
90 | tags.forEach(function (target) {
|
91 | if (!target) return;
|
92 | _this.__metrics.gaugeTargetCount.inc({
|
93 | target: target,
|
94 | provider: provider,
|
95 | status: status,
|
96 | worker: worker
|
97 | });
|
98 | });
|
99 | });
|
100 | _context.next = 24;
|
101 | break;
|
102 | case 21:
|
103 | _context.prev = 21;
|
104 | _context.t1 = _context["catch"](14);
|
105 | this.log.error('[collectMetrics] getProxyTests', _context.t1);
|
106 | case 24:
|
107 | return _context.abrupt("return", this.__metrics);
|
108 | case 25:
|
109 | case "end":
|
110 | return _context.stop();
|
111 | }
|
112 | }, _callee, this, [[4, 11], [14, 21]]);
|
113 | }));
|
114 | return function collectMetrics() {
|
115 | return _ref.apply(this, arguments);
|
116 | };
|
117 | }();
|
118 | exports.collectMetrics = collectMetrics;
|
119 | var _default = collectMetrics;
|
120 | exports["default"] = _default;
|
121 |
|
\ | No newline at end of file |