Преминете към основното съдържание

Мониторинг VM — dictaro-vm

Обща информация

ПараметърСтойност
Имеdictaro-vm
РегионNorth Europe
Resource Groupdictaro-rg
РоляLicensing API + Grafana/Prometheus/Loki мониторинг стек
ДостъпCloudflare Tunnels + az vm run-command

Услуги

VM-ът хоства два стека чрез един docker-compose.yml в licensing-go/:

Деплоймент

VM-ът не се деплойва чрез отделен CI/CD pipeline за мониторинга. Мониторинг стекът се деплойва заедно с Licensing API:

  1. deploy-licensing.yml се тригва при промени в licensing-go/
  2. az vm run-command invoke записва .env и JWT ключове
  3. docker compose up -d --build --force-recreate рестартира всичко
  4. Health check на API (/health) и Grafana (/api/health)

Ръчен деплой на мониторинга

Ако трябва да се промени само мониторинг конфигурацията:

az vm run-command invoke \
--resource-group dictaro-rg \
--name dictaro-vm \
--command-id RunShellScript \
--scripts "
cd /home/rosen/whisper-keyboard/licensing-go
docker compose restart grafana prometheus loki
"

Конфигурационни файлове

ФайлОписание
licensing-go/docker-compose.ymlДефиниция на всички услуги
licensing-go/monitoring/prometheus/prometheus.ymlPrometheus scrape config
licensing-go/monitoring/loki/loki-config.ymlLoki storage и retention
licensing-go/monitoring/grafana/provisioning/datasources/Prometheus + Loki datasources
licensing-go/monitoring/grafana/provisioning/dashboards/Auto-provisioned dashboards
licensing-go/monitoring/grafana/dashboards/JSON dashboard файлове

Cloudflare Tunnels

Два tunnel-а работят като Docker контейнери:

# monitoring.dictaro.ai → Grafana
tunnel-monitoring:
image: cloudflare/cloudflared:latest
command: tunnel --no-autoupdate run --token ${CLOUDFLARE_TUNNEL_TOKEN_MONITORING}

# loki.dictaro.ai → Loki (за remote promtail)
tunnel-loki:
image: cloudflare/cloudflared:latest
command: tunnel --no-autoupdate run --token ${CLOUDFLARE_TUNNEL_TOKEN_LOKI}

Grafana Azure AD автентикация

Grafana е конфигуриран с Microsoft 365 логин:

ПараметърСтойност
Tenant ID9348f3ce-96ad-48a8-87bd-7825eb7ea7e6
Scopesopenid email profile
Auto-logintrue
Anonymous accessfalse
Root URLhttps://monitoring.dictaro.ai/