Exposes your current ACT FUP usage as prometheus metrics. Scrapes the data from the ACT Portal website by using puppeteer.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Nemo 23603f1ec1 release/2.0.13 1 day ago
hooks Update Dockerfile to include labels 2 years ago
.dockerignore Prepare for npm publish 2 years ago
.editorconfig [deps] Bumps puppeteer to 1.8 2 years ago
.gitignore Initial commit 2 years ago
.npmignore Prepare for npm publish 2 years ago
CHANGELOG.md release/2.0.13 1 day ago
COPYING Updates LICENSE date 1 year ago
Dockerfile [deps] Dependency Updates 5 months ago
METRICS.md Adds documentation and drops `usage` from total_bytes metrics 2 years ago
README.md release/2.0.13 1 day ago
SECURITY.md Create SECURITY.md 1 year ago
index.js Update dependencies and version bump 1 year ago
package-lock.json Bump puppeteer-core from 7.1.0 to 8.0.0 1 day ago
package.json release/2.0.13 1 day ago
prom.js Adds documentation and drops `usage` from total_bytes metrics 2 years ago
server.js Switches to new prometheus formatter 2 years ago

README.md

prometheus-act-exporter

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.

  • 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.
  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

LICENSE

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

The canonical URL for this project is https://git.captnemo.in/nemo/prometheus-act-exporter.