Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/captn3m0/prometheus-act-exporter
Exposes your current ACT Fibernet Internet usage as prometheus metrics. Scrapes the data from the ACT Portal website by using puppeteer.
https://github.com/captn3m0/prometheus-act-exporter
act act-fibernet bandwidth-monitor exporter fibernet indian-isp isp metrics prometheus prometheus-exporter puppeteer
Last synced: about 1 month ago
JSON representation
Exposes your current ACT Fibernet Internet usage as prometheus metrics. Scrapes the data from the ACT Portal website by using puppeteer.
- Host: GitHub
- URL: https://github.com/captn3m0/prometheus-act-exporter
- Owner: captn3m0
- License: wtfpl
- Created: 2018-06-04T08:12:17.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-09-18T23:07:33.000Z (about 1 year ago)
- Last Synced: 2023-09-19T04:13:05.234Z (about 1 year ago)
- Topics: act, act-fibernet, bandwidth-monitor, exporter, fibernet, indian-isp, isp, metrics, prometheus, prometheus-exporter, puppeteer
- Language: JavaScript
- Homepage: https://git.captnemo.in/nemo/prometheus-act-exporter
- Size: 186 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: COPYING
- Security: SECURITY.md
Awesome Lists containing this project
README
# prometheus-act-exporter
![Docker Image Version (latest semver)](https://img.shields.io/docker/v/captn3m0/prometheus-act-exporter) ![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/captn3m0/prometheus-act-exporter) [![npm version](https://badge.fury.io/js/prometheus-act-exporter.svg)](https://badge.fury.io/js/prometheus-act-exporter) [![License: WTFPL](https://img.shields.io/badge/License-WTFPL-blue.svg)](http://www.wtfpl.net/) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
Exposes your current ACT FUP usage as prometheus metrics. Scrapes the data from the ACT Portal website by using [puppeteer](https://developers.google.com/web/tools/puppeteer/). This only supports [ACT Fibernet](https://www.actcorp.in/) 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`.
```js
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
```sh
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.