Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions docs/MONITORING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# Monitoring — Prometheus + Grafana

Cluster, node ve **GPU (L40S)** metriklerini toplar (Prometheus), gösterir (Grafana).
**Sunucuda elle kuruldu** (`kubectl apply`) — Argo CD/GitOps'a bağlı değil.
Namespace: `deephorizon-monitor`.

## Erişim

| | |
|:---|:---|
| **Grafana (LAN)** | `http://10.10.1.132:30030` |
| **Kullanıcı** | `admin` — parola DevOps'ta (parola kasası) |
| **Prometheus** | ClusterIP (dışarı açılmaz); Grafana'ya datasource olarak önceden bağlı |

## Ne izler

| Kaynak | Ne verir |
|:---|:---|
| **node-exporter** | node CPU / RAM / disk / ağ |
| **kube-state-metrics** | pod/deployment/PVC/job durumları (restart, hazır replika…) |
| **cAdvisor** (kubelet) | konteyner kaynak kullanımı |
| **dcgm-exporter** (GPU operator) | L40S kullanım / VRAM / sıcaklık / güç |
| **anotasyon keşfi** | `prometheus.io/scrape: "true"` taşıyan her pod (api, inference) |

> dcgm-exporter anotasyon taşımadığı için Prometheus config'inde özel bir scrape
> job'ı ile toplanır (`gpu-operator-resources/nvidia-dcgm-exporter`). api/inference
> deploy olunca anotasyonla otomatik girer.

## Dashboard'lar

- **DeepHorizon - Cluster** — ConfigMap ile provision edilir (Grafana açılışta otomatik
yükler). Pod/CPU/RAM/restart + deployment durumu, bizim etiket şemamıza göre yazıldı.
- **GPU + Node** — topluluk panoları, elle import: Grafana → New → Import → ID gir →
datasource `Prometheus`:
- **12239** — NVIDIA DCGM (GPU: kullanım, VRAM, sıcaklık, güç)
- **1860** — Node Exporter Full (CPU / RAM / disk / ağ)

## Grafana admin parolası (SealedSecret)

Grafana pod'u `grafana-admin` Secret'ı olmadan başlamaz. Parola repoda değil; güçlü
bir parolayla bir kez uygulanır:

```bash
PW=$(openssl rand -base64 24); echo "$PW" # <- parola kasasına kaydet
kubectl create secret generic grafana-admin -n deephorizon-monitor \
--from-literal=admin-password="$PW" --dry-run=client -o yaml \
| kubeseal -n deephorizon-monitor -o yaml | kubectl apply -f -
```
> Secret gelene kadar Grafana `CreateContainerConfigError`'da bekler, gelince kendi
> düzelir (takılırsa `kubectl delete pod -n deephorizon-monitor -l app=grafana`).

## Kurulum ve işletim

- **Deploy:** Manifest'ler **sunucuda elle** uygulanır (`kubectl apply -k <klasör>`).
**Argo CD yönetmiyor**, GitOps repo'suna girmez — manifest'ler DevOps'ta tutulur.
- **UFW:** Grafana NodePort 30030 yalnızca yerel subnet'e açık:
`sudo ufw allow from 10.10.1.0/24 to any port 30030 proto tcp`
- **Yeni scrape hedefi:** pod'a `prometheus.io/scrape: "true"` + `prometheus.io/port:
"<port>"` anotasyonu koy → otomatik toplanır. Anotasyon konamıyorsa (üçüncü parti)
Prometheus config'ine özel bir job eklenir (dcgm örneği gibi).
- **Güncelleme:** manifest değişince sunucuda tekrar `kubectl apply` + gerekiyorsa
`kubectl rollout restart deployment/<ad> -n deephorizon-monitor`.

## Durum

Sunucuda kurulu ve doğrulandı: 5 scrape hedefi de `up` (GPU/dcgm dahil), Grafana +
provision edilen cluster panosu canlı.
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Project documentation that does not belong in source-level READMEs.
| [`DVC.md`](DVC.md) | **DVC rehberi (TR)** — veri versiyonlama: `dvc-cache` remote'unun kurulumu (`dvc init` + `remote add`), push/pull kullanımı, eski sürüme dönme. **DVC kullanacak kişinin adresi.** |
| [`AIRFLOW.md`](AIRFLOW.md) | **Airflow rehberi (TR)** — veri pipeline orkestrasyonu: erişim, DAG teslimi (git-sync), çalışma ortamı kontratı (env, workspace, imaj), Data squad'dan kalanlar. **DAG yazacak kişinin adresi.** |
| [`DEVOPS.md`](DEVOPS.md) | **DevOps kurulum günlüğü (TR)** — GPU sunucu bootstrap'ının tamamı: NVIDIA sürücü, MicroK8s + GPU addon, Sealed Secrets, Argo CD, NPM, UFW; karşılaşılan hatalar, sebepleri ve çözümleri. |
| [`MONITORING.md`](MONITORING.md) | **Monitoring rehberi (TR)** — Prometheus + Grafana + exporter'lar + GPU (dcgm): erişim, ne izlenir, dashboard'lar, `grafana-admin` SealedSecret akışı, yeni scrape/dashboard ekleme. |
| `adr/` | Architecture Decision Records — one file per non-trivial decision |
| `runbooks/` | On-call / incident playbooks (one per failure mode) |

Expand Down
Loading