docs: visual guides with platform screenshots (Gitea, ArgoCD, Grafana, Prometheus)
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
# Grafana, Prometheus и Loki
|
||||
|
||||
В test-контуре мониторинг разделён:
|
||||
|
||||
| Инструмент | URL | Задача |
|
||||
|------------|-----|--------|
|
||||
| **Prometheus** | http://prometheus.sova.local | метрики, targets, PromQL |
|
||||
| **Grafana** | http://grafana.sova.local | дашборды + **логи через Loki** |
|
||||
| **Loki** | только через Grafana Explore | агрегация логов pod'ов |
|
||||
|
||||
Prometheus **не хранит логи** — для логов используйте Grafana → Explore → datasource **Loki**.
|
||||
|
||||
Установка Loki/Promtail: `./scripts/deploy-monitoring-logs.sh`
|
||||
|
||||
## Grafana
|
||||
|
||||
### Вход
|
||||
|
||||
http://grafana.sova.local — **admin** / пароль:
|
||||
|
||||
```bash
|
||||
kubectl -n monitoring get secret kube-prometheus-grafana \
|
||||
-o jsonpath='{.data.admin-password}' | base64 -d && echo
|
||||
```
|
||||
|
||||

|
||||
|
||||
### Главная
|
||||
|
||||
Дашборды kube-prometheus (CPU, memory, pod restarts). Полезно для общего health кластера:
|
||||
|
||||

|
||||
|
||||
### Loki — логи приложений
|
||||
|
||||
**Explore** (иконка компаса) → datasource **Loki** → LogQL:
|
||||
|
||||
```logql
|
||||
{namespace="sova-test"}
|
||||
```
|
||||
|
||||
Уточнение по pod:
|
||||
|
||||
```logql
|
||||
{namespace="sova-test", pod=~"backend.*"} |= "error"
|
||||
```
|
||||
|
||||

|
||||
|
||||
::: tip Нет логов?
|
||||
1. `./scripts/deploy-monitoring-logs.sh`
|
||||
2. Проверьте Promtail: `kubectl get pods -n monitoring -l app.kubernetes.io/name=promtail`
|
||||
3. В Grafana: Configuration → Data sources → Loki должен быть **green**
|
||||
:::
|
||||
|
||||
### Типовые сценарии
|
||||
|
||||
| Задача | Действие |
|
||||
|--------|----------|
|
||||
| 500 от API | Loki `{namespace="sova-test", pod=~"backend.*"}` |
|
||||
| CronJob упал | `{namespace="sova-test"} \|= "backend-sync-doctors"` |
|
||||
| Ingress 502 | `{namespace="ingress-nginx"}` |
|
||||
|
||||
## Prometheus
|
||||
|
||||
Отдельный UI без логина (test-контур).
|
||||
|
||||
### Graph — PromQL запросы
|
||||
|
||||
http://prometheus.sova.local/graph
|
||||
|
||||
Примеры:
|
||||
|
||||
```promql
|
||||
up # живые targets
|
||||
rate(http_requests_total[5m]) # RPS (если есть метрика)
|
||||
container_memory_working_set_bytes{namespace="sova-test"}
|
||||
```
|
||||
|
||||

|
||||
|
||||
### Targets — кто отдаёт метрики
|
||||
|
||||
http://prometheus.sova.local/targets
|
||||
|
||||
**UP** (зелёный) — scrape OK. **DOWN** — проверьте ServiceMonitor / pod.
|
||||
|
||||

|
||||
|
||||
### Быстрая проверка «всё живо»
|
||||
|
||||
Запрос `up` за последний час:
|
||||
|
||||

|
||||
|
||||
Значение **1** — target доступен, **0** — проблема.
|
||||
|
||||
## Сводка: куда смотреть
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
subgraph metrics["Метрики"]
|
||||
prom["Prometheus<br/>prometheus.sova.local"]
|
||||
graf_m["Grafana dashboards"]
|
||||
end
|
||||
subgraph logs["Логи"]
|
||||
loki["Loki"]
|
||||
graf_l["Grafana Explore"]
|
||||
promtail["Promtail"]
|
||||
end
|
||||
pods["Pod logs"] --> promtail --> loki --> graf_l
|
||||
pods --> prom
|
||||
prom --> graf_m
|
||||
```
|
||||
|
||||
| Симптом | Куда |
|
||||
|---------|------|
|
||||
| Медленный API, restarts | Grafana dashboards / Prometheus `container_*` |
|
||||
| Ошибка в коде, stack trace | Grafana → Loki |
|
||||
| ServiceMonitor не работает | Prometheus → Targets |
|
||||
| Нет datasource Loki | `./scripts/deploy-monitoring-logs.sh` |
|
||||
|
||||
Назад: [Gitea CI/CD](./gitea-ci) · [ArgoCD](./argocd)
|
||||
Reference in New Issue
Block a user