UNPKG

4.86 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/collectMetrics.js"],"names":["collectMetrics","prefix","__metrics","gauge","Gauge","name","filter","Boolean","join","help","labelNames","gaugeTargetCount","getAllProxyList","proxyList","forEach","proxy","provider","type","tags","country","ipv","worker","inc","log","error","getProxyTestsResults","proxyTestsResults","Object","values","test","time","status","target"],"mappings":"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","sourcesContent":["import { Gauge } from 'prom-client';\n\nexport const collectMetrics = async function ({ prefix = 'bg' } = {}) {\n if (!this.__metrics) this.__metrics = {};\n if (!this.__metrics.gauge) {\n this.__metrics.gauge = new Gauge({\n name: [prefix, 'proxy'].filter(Boolean).join('_'),\n help: 'Информация по проксям',\n labelNames: ['provider', 'type', 'country', 'ipv', 'worker'],\n });\n }\n if (!this.__metrics.gaugeTargetCount) {\n this.__metrics.gaugeTargetCount = new Gauge({\n name: [prefix, 'proxy_count'].filter(Boolean).join('_'),\n help: 'Информация по статусам проксям',\n labelNames: ['target', 'provider', 'status', 'worker'],\n });\n }\n try {\n const proxyList = await this.getAllProxyList();\n // console.log({ proxyList });\n proxyList.forEach((proxy) => {\n // console.log({ proxy });\n const { provider, type, tags } = proxy || {};\n // console.log({provider})\n const { country, ipv, worker } = tags || {};\n // console.log({country})\n this.__metrics.gauge.inc({ provider, type, country, ipv, worker });\n });\n } catch (err) {\n this.log.error('[collectMetrics] getProxyList', err);\n }\n try {\n const proxyTestsResults = await this.getProxyTestsResults();\n Object.values(proxyTestsResults).forEach(({ test, proxy, time, status } = {}) => {\n const { provider } = proxy || {};\n const { tags = [] } = test || {};\n const { worker } = proxy.tags || {};\n tags.forEach((target) => {\n if (!target) return;\n this.__metrics.gaugeTargetCount.inc({ target, provider, status, worker });\n });\n });\n } catch (err) {\n this.log.error('[collectMetrics] getProxyTests', err);\n }\n\n return this.__metrics;\n};\n\nexport default collectMetrics;\n"],"file":"collectMetrics.js"}
\No newline at end of file