Я учусь контролировать приложение Fastify с помощью Prometheus и Grafana. Сначала я установил пакет fastify-metrics
и зарегистрировался в приложении Fastify.
// app.ts
import metrics from 'fastify-metrics'
...
app.register(metrics, {
endpoint: '/metrics',
})
Затем я настроил Прометей и Графану в docker-compose.yml
:
version: "3.7"
services:
prometheus:
image: prom/prometheus:latest
volumes:
- prometheus_data:/prometheus
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
network_mode: host
ports:
- '9090:9090'
grafana:
image: grafana/grafana:latest
volumes:
- grafana_data:/var/lib/grafana
# - ./grafana/provisioning:/etc/grafana/provisioning
# - ./grafana/config.ini:/etc/grafana/config.ini
# - ./grafana/dashboards:/var/lib/grafana/dashboards
environment:
- GF_SECURITY_ADMIN_PASSWORD=ohno
depends_on:
- prometheus
network_mode: host
ports:
- '3000:3000'
volumes:
prometheus_data: {}
grafana_data: {}
Я добавил network_mode=host
, потому что Fastfy приложение будет работать на localhost:8081
.
Вот конфигурация Prometheus:
# prometheus.yml
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 1m
scrape_configs:
- job_name: 'prometheus'
# metrics_path: /metrics
static_configs:
- targets: [
'app:8081',
]
- job_name: 'node_exporter'
static_configs:
- targets: [
'localhost:8081',
]
После docker-compose up
и npm run dev
приложение Fastify запущено и работает, а цель localhost:8081
- UP
в инструментальной панели Prometheus, localhost:9090
, я попытался выполнить некоторые метрики.
Я импортировал Node Exporter Full и Node Exporter Server Metrics инструментальные панели. И добавленный источник данных Prometheus localhost:9090
с именем Fastify
, успешно сохраненный, показал Data source is working
.
Однако, когда я go на панели инструментов Noder Exporter Full , он показывает нет данных. Я выбрал Fastify
в источнике данных, но он показывает None в других выборках в верхнем левом углу.
Пожалуйста, помогите, что я делаю не так?