API simples para envio de métricas no formato Prometheus via HTTP, com suporte a Gauge, Counter e Aggregate.
pip install --no-cache-dir -r requirements.txt
mkdir database/
uvicorn main:app --reload --host 0.0.0.0 --port 8001ou via Docker
docker-compose up -d --build- Métrica única
- Sobrescreve o valor anterior
- Representa estado atual
echo 'gauge_metrics{label1="job",label2="instance"} 17' \
| curl --data-binary @- http://localhost:8001/metrics/job/gauge/myjobgauge_metrics
- Gauge
- Stat
- Time series (Last value)
- Uso de CPU
- Memória atual
- Status numérico
- Valores instantâneos
- Sempre incrementa
- Nunca diminui
- Cada envio gera um novo ponto no tempo
echo 'simple_counter_total{label1="job",label2="instance"} 1' \
| curl --data-binary @- http://localhost:8001/metrics/job/counter/myjobincrease(simple_counter_total[5m])
ou
rate(simple_counter_total[5m])
- Time series
- Bar chart
- Stat (total acumulado)
- Número de requisições
- Erros
- Eventos
- Acessos
- Soma todos os valores enviados para o mesmo conjunto de labels
- Funciona como acumulador customizado
- Ideal para agregações via push
echo 'aggregate_total{type="counter",label1="job",label2="instance"} 1' \
| curl --data-binary @- http://localhost:8001/metrics/job/aggregate/myjobincrease(aggregate_total[1m])
ou (total acumulado)
aggregate_total
- Time series
- Bar chart
- Table (múltiplas labels)
- O
scrape_intervaldo Prometheus deve ser menor que o intervalo usado noincrease - Em janelas muito curtas, picos podem aparentar duplicação
| Tipo | PromQL principal | Gráfico recomendado |
|---|---|---|
| Gauge | gauge_metrics |
Gauge / Stat |
| Counter | increase(counter[5m]) |
Time series |
| Aggregate | increase(aggregate_total[1m]) |
Time series / Bar / Table |