Go to file
Nemo b8a94ed754
Update README.md
2023-09-27 09:50:27 +00:00
.github [ci] Auto merge dependabot PRs 2022-06-07 04:01:33 +00:00
e.github Create FUNDING.yml 2022-05-30 14:47:39 +05:30
hooks Update Dockerfile to include labels 2018-07-01 03:24:35 +05:30
.dockerignore Prepare for npm publish 2018-06-04 13:23:04 +05:30
.editorconfig [deps] Bumps puppeteer to 1.8 2019-03-14 08:07:19 +05:30
.gitignore Initial commit 2018-06-03 02:07:29 +05:30
.npmignore Update npm ignore 2021-12-19 15:36:54 +05:30
CHANGELOG.md Version Bump 2021-08-12 10:11:24 +05:30
COPYING New release 2021-12-19 15:36:03 +05:30
Dockerfile Bump schliflo/docker-puppeteer from 21.2.0 to 21.3.4 2023-09-25 23:26:38 +00:00
METRICS.md Adds documentation and drops `usage` from total_bytes metrics 2018-07-01 03:13:48 +05:30
README.md Update README.md 2023-09-27 09:50:27 +00:00
SECURITY.md Multiple changes for v3 2021-07-03 23:04:24 +05:30
index.js Multiple changes for v3 2021-07-03 23:04:24 +05:30
package-lock.json Bump puppeteer-core from 21.2.1 to 21.3.4 2023-09-25 23:10:54 +00:00
package.json Bump puppeteer-core from 20.9.0 to 21.0.1 2023-08-07 23:19:06 +00:00
prom.js New release 2021-12-19 15:36:03 +05:30
server.js New release 2021-12-19 15:36:03 +05:30

README.md

prometheus-act-exporter

Docker Image Version (latest semver) Docker Image Size (latest semver) npm version License: WTFPL PRs Welcome

Exposes your current ACT FUP usage as prometheus metrics. Scrapes the data from the ACT Portal website by using puppeteer. This only supports ACT Fibernet in India.

Note: Broken since the portal got redesigned and now requires authentication.

  • Supports flexibytes
  • Reports aggregate metrics as well
  • Only tested for ACT Bangalore connections.

Metrics

Sample:

# HELP act_fup_live_usage_bytes ACT live usage in bytes (precision GB)
# TYPE act_fup_live_usage_bytes gauge
act_fup_live_usage_bytes 0

# HELP act_fup_live_total_bytes ACT live usage in bytes (precision GB)
# TYPE act_fup_live_total_bytes gauge
act_fup_live_total_bytes 800000000

# HELP act_fup_flexibytes_usage_bytes ACT flexibytes usage in bytes (precision GB)
# TYPE act_fup_flexibytes_usage_bytes gauge
act_fup_flexibytes_usage_bytes 102580000

# HELP act_fup_flexibytes_total_bytes ACT flexibytes usage in bytes (precision GB)
# TYPE act_fup_flexibytes_total_bytes gauge
act_fup_flexibytes_total_bytes 100000000

# HELP act_fup_aggregate_usage_bytes ACT aggregate usage in bytes (precision GB)
# TYPE act_fup_aggregate_usage_bytes gauge
act_fup_aggregate_usage_bytes 102580000

# HELP act_fup_aggregate_total_bytes ACT aggregate usage in bytes (precision GB)
# TYPE act_fup_aggregate_total_bytes gauge
act_fup_aggregate_total_bytes 900000000

Using as a npm package

Install it with npm i prometheus-act-exporter.

const act = require("prometheus-act-exporter");
let m = await act.getUsage();
// Returns
// {
//   live: { usedBytes: 0, totalBytes: 800000000 },
//   flexibytes: { usedBytes: 102580000, totalBytes: 100000000 },
//   aggregate: { usedBytes: 102580000, totalBytes: 900000000 }
// }
// calculations made assuming ACT is using SI GB (exactly 1 billion bytes)

Configuration

You can pass the following environment variables:

  1. PROXY_SERVER: Use a proxy server to connect to ACT. Use a socks5 proxy, since ACT returns a 403 if you try to use a CONNECT proxy. export PROXY_SERVER="socks5://10.8.0.14:1080"
  2. CHROME_BIN: Set Chrome/Chromium executable path. Helpful if you have chromium already installed and don't want puppeteer to download it again. You can set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 before running npm install to disable puppeteer's chromium download.
  3. DISABLE_HEADLESS: If set, chrome will not launch in headless mode.

Usage

Docker

If running via Docker, here are some simple cookbook configurations:

docker run -it -p 3000:3000 -e captn3m0/prometheus-act-exporter

Run a simple test server locally in debug mode and test it on http://localhost:3000/metrics

Node

export DISABLE_HEADLESS=1
# Change to the correct invocation
export CHROME_BIN=$(which chromium)
npm install
node server.js
curl localhost:3000/metrics

LICENSE

This is licensed under WTFPL. See COPYING file for the full text.