- Counter
- Gauge
- Histogram
- Summary
Taken from: https://prometheus.io/docs/concepts/metric_types/
Prepare (or go) to your application folder:
virtualenv my-coolest-app-python
cd my-coolest-app-python
source bin/activate
Install dependencies:
pip install prometheus_client
Create your metrics exporter:
# metrics.py
from prometheus_client import start_http_server, Gauge
import time
# define my custom metric
req_num = Gauge('req_num', 'Just a random gauge')
# calculate metric value
def process_request():
req_num.set(42)
if __name__ == '__main__':
# expose metrics in a web server
start_http_server(8000)
# generate metrics forever
while True:
process_request()
Run it:
python metrics.py
Your metrics will be available at http://localhost:8000/metrics
Reference: https://github.com/prometheus/client_python
Prepare (or go) to your application folder:
mkdir -p my-coolest-app-node
cd my-coolest-app-node
Install dependencies:
npm install prom-client express
Create your metrics exporter:
// metrics.js
const Prometheus = require('prom-client')
const server = require('express')()
const PrometheusMetrics = {
// define my custom metric
reqNum: new Prometheus.Gauge('req_num', 'Just a random gauge')
}
server.use((req, res, next) => {
// calculate metric value
PrometheusMetrics.reqNum.set(42)
next()
})
server.get('/metrics', (req, res) => {
// register metrics
res.end(Prometheus.register.metrics())
})
// expose metrics in a web server
server.listen(3000)
Run it:
node metrics.js
Your metrics will be available at http://localhost:3000/metrics
Reference: https://github.com/siimon/prom-client
- number of requests
- endpoint healthchecks
- endpoint response time
- ...