Update dependencies and version bump

This commit is contained in:
Nemo 2019-05-12 12:11:57 +05:30
parent 0f336b287b
commit 6c4741d846
4 changed files with 91 additions and 69 deletions

View File

@ -1,4 +1,4 @@
FROM alekzonder/puppeteer:1 FROM schliflo/docker-puppeteer:1.15.0
LABEL maintainer "Nemo <docker@captnemo.in>" LABEL maintainer "Nemo <docker@captnemo.in>"
@ -22,4 +22,4 @@ COPY index.js server.js prom.js *.md /app/
ENTRYPOINT ["/usr/local/bin/node", "server.js"] ENTRYPOINT ["/usr/local/bin/node", "server.js"]
EXPOSE 3000 EXPOSE 3000

View File

@ -1,27 +1,30 @@
const puppeteer = require('puppeteer-core'); const puppeteer = require("puppeteer-core");
const containerized = require('containerized'); const containerized = require("containerized");
const MY_PACKAGE_SELECTOR_ID = const MY_PACKAGE_SELECTOR_ID =
'table[style="margin-top:-10px;"] tr:first-child+tr'; 'table[style="margin-top:-10px;"] tr:first-child+tr';
const DATA_SELECTOR = 'packagecol3'; const DATA_SELECTOR = "packagecol3";
const MY_ACCOUNT_URL = 'https://selfcare.actcorp.in/group/blr/myaccount'; const MY_ACCOUNT_URL = "https://selfcare.actcorp.in/group/blr/myaccount";
const DATA_USAGE_REGEX = /\d+\.\d{0,2}/g; const DATA_USAGE_REGEX = /\d+\.\d{0,2}/g;
const KEYS = ['live', 'flexibytes']; const KEYS = ["live", "flexibytes"];
var browser; var browser;
async function getUsage() { async function getUsage() {
if (!browser) {
throw new Error("Browser not launched yet");
}
const page = await browser.newPage(); const page = await browser.newPage();
let defaultMetric = { let defaultMetric = {
usedBytes: null, usedBytes: null,
totalBytes: null, totalBytes: null
}; };
let metrics = { let metrics = {
live: defaultMetric, live: defaultMetric,
flexibytes: defaultMetric, flexibytes: defaultMetric,
aggregate: defaultMetric, aggregate: defaultMetric
}; };
try { try {
@ -36,14 +39,14 @@ async function getUsage() {
let elements = document.getElementsByClassName(sel); let elements = document.getElementsByClassName(sel);
if (!elements || elements.length < 4) { if (!elements || elements.length < 4) {
return '0.00 0.00'; return "0.00 0.00";
} }
let usage = { let usage = {
live: elements[3].innerText, live: elements[3].innerText,
aggregate: '0.00 GB (Quota 800.00 GB)', aggregate: "0.00 GB (Quota 800.00 GB)"
}; };
if (elements.length >= 6) { if (elements.length >= 6) {
usage['flexibytes'] = elements[5].innerText; usage["flexibytes"] = elements[5].innerText;
} }
return usage; return usage;
}, DATA_SELECTOR); }, DATA_SELECTOR);
@ -59,7 +62,7 @@ async function getUsage() {
KEYS.map(key => { KEYS.map(key => {
dataUsage[key] = { dataUsage[key] = {
usedBytes: dataUsage[key][0], usedBytes: dataUsage[key][0],
totalBytes: dataUsage[key][1], totalBytes: dataUsage[key][1]
}; };
dataUsage.aggregate.usedBytes += dataUsage[key].usedBytes; dataUsage.aggregate.usedBytes += dataUsage[key].usedBytes;
dataUsage.aggregate.totalBytes += dataUsage[key].totalBytes; dataUsage.aggregate.totalBytes += dataUsage[key].totalBytes;
@ -79,27 +82,27 @@ async function getUsage() {
function chromeLaunchConfig() { function chromeLaunchConfig() {
let defaultArgs = []; let defaultArgs = [];
if (containerized()) { if (containerized()) {
defaultArgs = ['--no-sandbox', '--disable-setuid-sandbox']; defaultArgs = ["--no-sandbox", "--disable-setuid-sandbox"];
} }
var options = { var options = {
// These are set for Docker usage // These are set for Docker usage
// https://github.com/alekzonder/docker-puppeteer#before-usage // https://github.com/alekzonder/docker-puppeteer#before-usage
args: defaultArgs.concat( args: defaultArgs.concat(
process.env.hasOwnProperty('PROXY_SERVER') process.env.hasOwnProperty("PROXY_SERVER")
? [`--proxy-server=${process.env['PROXY_SERVER']}`] ? [`--proxy-server=${process.env["PROXY_SERVER"]}`]
: [] : []
), )
}; };
if (process.env.hasOwnProperty('DISABLE_HEADLESS')) { if (process.env.hasOwnProperty("DISABLE_HEADLESS")) {
options.headless = false; options.headless = false;
} }
if (process.env.hasOwnProperty('CHROME_BIN')) { if (process.env.hasOwnProperty("CHROME_BIN")) {
options.executablePath = process.env['CHROME_BIN']; options.executablePath = process.env["CHROME_BIN"];
} }
console.log('Launching Chrome with args:'); console.log("Launching Chrome with args:");
console.log(options); console.log(options);
return options; return options;
@ -108,9 +111,9 @@ function chromeLaunchConfig() {
// Async IIFE FTW // Async IIFE FTW
(async () => { (async () => {
browser = await puppeteer.launch(chromeLaunchConfig()); browser = await puppeteer.launch(chromeLaunchConfig());
console.log('Browser Initialized'); console.log("Browser Initialized");
})(); })();
module.exports = { module.exports = {
getUsage: getUsage, getUsage: getUsage
}; };

99
package-lock.json generated
View File

@ -1,13 +1,13 @@
{ {
"name": "prometheus-act-exporter", "name": "prometheus-act-exporter",
"version": "2.0.0", "version": "2.0.3",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"agent-base": { "agent-base": {
"version": "4.2.0", "version": "4.2.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
"integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
"requires": { "requires": {
"es6-promisify": "^5.0.0" "es6-promisify": "^5.0.0"
} }
@ -37,9 +37,9 @@
} }
}, },
"buffer-from": { "buffer-from": {
"version": "1.1.0", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
@ -68,17 +68,17 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
}, },
"debug": { "debug": {
"version": "3.1.0", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"requires": { "requires": {
"ms": "2.0.0" "ms": "^2.1.1"
} }
}, },
"es6-promise": { "es6-promise": {
"version": "4.2.4", "version": "4.2.6",
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==" "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q=="
}, },
"es6-promisify": { "es6-promisify": {
"version": "5.0.0", "version": "5.0.0",
@ -106,6 +106,11 @@
"requires": { "requires": {
"ms": "2.0.0" "ms": "2.0.0"
} }
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
} }
} }
}, },
@ -123,9 +128,9 @@
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
}, },
"glob": { "glob": {
"version": "7.1.2", "version": "7.1.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
@ -142,6 +147,16 @@
"requires": { "requires": {
"agent-base": "^4.1.0", "agent-base": "^4.1.0",
"debug": "^3.1.0" "debug": "^3.1.0"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
}
} }
}, },
"inflight": { "inflight": {
@ -164,9 +179,9 @@
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
}, },
"mime": { "mime": {
"version": "2.3.1", "version": "2.4.2",
"resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.2.tgz",
"integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==" "integrity": "sha512-zJBfZDkwRu+j3Pdd2aHsR5GfH2jIWhmL1ZzBoc+X+3JEti2hbArWcyJ+1laC1D2/U/W1a/+Cegj0/OnEU2ybjg=="
}, },
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
@ -190,9 +205,9 @@
} }
}, },
"ms": { "ms": {
"version": "2.0.0", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}, },
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
@ -218,14 +233,14 @@
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
}, },
"progress": { "progress": {
"version": "2.0.0", "version": "2.0.3",
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.0.tgz", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
"integrity": "sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8=" "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
}, },
"prom-client": { "prom-client": {
"version": "11.1.1", "version": "11.3.0",
"resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.1.1.tgz", "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.3.0.tgz",
"integrity": "sha512-itUicyrq3Rko56v3ovQAMYwxEouK7lIylp26bjnlt1b/3fzn783riZnZn432I4udYmPsRgNx1F/u9RFvLyH7zA==", "integrity": "sha512-OqSf5WOvpGZXkfqPXUHNHpjrbEE/q8jxjktO0i7zg1cnULAtf0ET67/J5R4e4iA4MZx2260tzTzSFSWgMdTZmQ==",
"requires": { "requires": {
"tdigest": "^0.1.1" "tdigest": "^0.1.1"
} }
@ -236,18 +251,18 @@
"integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=" "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
}, },
"puppeteer-core": { "puppeteer-core": {
"version": "1.7.0", "version": "1.15.0",
"resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-1.7.0.tgz", "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-1.15.0.tgz",
"integrity": "sha512-SpUOJL8gTPEuABGcZxKM3jg5s0rIwmRC6P9Jw/JTG3XFCVtUcYQru4Uwlz7jAXe6JEeeLOm6hApgGCmRyALiig==", "integrity": "sha512-AH82x8Tx0/JkubeF6U12y8SuVB5vFgsw8lt/Ox5MhXaAktREFiotCTq324U2nPtJUnh2A8yJciDnzAmhbHidqQ==",
"requires": { "requires": {
"debug": "^3.1.0", "debug": "^4.1.0",
"extract-zip": "^1.6.6", "extract-zip": "^1.6.6",
"https-proxy-agent": "^2.2.1", "https-proxy-agent": "^2.2.1",
"mime": "^2.0.3", "mime": "^2.0.3",
"progress": "^2.0.0", "progress": "^2.0.1",
"proxy-from-env": "^1.0.0", "proxy-from-env": "^1.0.0",
"rimraf": "^2.6.1", "rimraf": "^2.6.1",
"ws": "^5.1.1" "ws": "^6.1.0"
} }
}, },
"readable-stream": { "readable-stream": {
@ -265,11 +280,11 @@
} }
}, },
"rimraf": { "rimraf": {
"version": "2.6.2", "version": "2.6.3",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"requires": { "requires": {
"glob": "^7.0.5" "glob": "^7.1.3"
} }
}, },
"safe-buffer": { "safe-buffer": {
@ -309,9 +324,9 @@
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
}, },
"ws": { "ws": {
"version": "5.2.1", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-5.2.1.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
"integrity": "sha512-2NkHdPKjDBj3CHdnAGNpmlliryKqF+n9MYXX7/wsVC4yqYocKreKNjydPDvT3wShAZnndlM0RytEfTALCDvz7A==", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
"requires": { "requires": {
"async-limiter": "~1.0.0" "async-limiter": "~1.0.0"
} }

View File

@ -1,12 +1,16 @@
{ {
"name": "prometheus-act-exporter", "name": "prometheus-act-exporter",
"version": "2.0.2", "version": "2.0.3",
"description": "Exports ACT Fibernet data usage as prometheus metrics", "description": "Exports ACT Fibernet data usage as prometheus metrics",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": ["actcorp", "balance", "flexibyte"], "keywords": [
"actcorp",
"balance",
"flexibyte"
],
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+ssh://git@git.captnemo.in/nemo/prometheus-act-exporter.git" "url": "git+ssh://git@git.captnemo.in/nemo/prometheus-act-exporter.git"
@ -18,7 +22,7 @@
"license": "WTFPL", "license": "WTFPL",
"dependencies": { "dependencies": {
"containerized": "^1.0.2", "containerized": "^1.0.2",
"prom-client": "^11.1.0", "prom-client": "^11.3.0",
"puppeteer-core": "^1.8.0" "puppeteer-core": "^1.15.0"
} }
} }