# Kurulumu izleme

> Proxus'u dışarıdan ve içeriden izleyin: çalışma durumu denetimleri, Prometheus ve OpenTelemetry metrikleri, günlükler, veritabanı ve kapasite.

Kaynak: https://proxus.io/tr/docs/operate/monitoring

Bu kılavuzu tamamladığınızda izleme sisteminiz, merkez sunucu ya da bir Edge Gateway yanıt vermediğinde bunu fark eder.
Disk alanı, veri hacmi ve lisanslı kapasite sorun yaratmadan önce nereye bakacağınızı da öğrenirsiniz.

## Başlamadan önce

- Merkez sunucu çalışıyor olmalıdır (bkz. [Docker](https://proxus.io/tr/docs/operate/docker) ya da
  [Kubernetes](https://proxus.io/tr/docs/operate/kubernetes)).
- Metrikler için merkez sunucuya ve Edge Gateway'e erişebilen bir Prometheus sunucusu ya da OpenTelemetry toplayıcısı
  (collector) gerekir.

## Neler izlenmeli

| Soru | Nereye bakılır |
| --- | --- |
| Merkez sunucu ya da bir Edge Gateway yanıt veriyor mu? | `/healthz` çalışma durumu denetimi |
| Cihazlar veri gönderiyor mu? Alarm var mı? | **İzleme > Anlık durum** |
| Bir Edge Gateway lisanslı kapasitesine yaklaştı mı? Değer attı mı? | **Yönetim > Lisans bilgisi**, **Anlık kapasite** |
| Disk doluyor mu? Geçmiş veri ne kadar yer kaplıyor? | **Yönetim > Veritabanı durumu** |
| Sorun nerede? | **Yönetim > Sistem günlükleri** |
| İstek sayıları, yanıt süreleri, çalışma zamanı değerleri | Prometheus ya da OpenTelemetry metrikleri |

## Çalışma durumu denetimleri

Merkez sunucu ve her Edge Gateway, `GET /healthz` isteğine yanıt verir. Hizmet çalışıyorsa yanıt düz metin olarak
`Healthy` (HTTP 200) olur. İç çalışma ortamında bir sorun varsa yanıt `Unhealthy` (HTTP 503) olur.

| Bileşen | Adres |
| --- | --- |
| Merkez sunucu | `http://<hub>:8080/healthz` |
| Edge Gateway (SYSTEM ve uzak Edge Gateway'ler) | `http://<gateway host>:8083/healthz` |

```bash
curl -s http://proxus.lyonfoods.local:8080/healthz
Healthy
```

Hazır compose dosyası, konteynerlerin çalışma durumunu bu denetimlerle belirler. Kubernetes manifestleri de aynı
adresleri başlatma (startup), hazır olma (readiness) ve canlılık (liveness) yoklamaları için kullanır. Erişilebilirlik
izleme aracınızı ya da yük dengeleyicinizi bu adreslere yönlendirin. `Healthy` yanıtı yalnızca hizmetin
çalıştığını gösterir; tüm cihazların bağlı olduğunu göstermez. Cihazların bağlantısı için **Anlık durum** ekranına ya da
**Anlık kapasite** tablosuna bakın.

## Kapasite ve atılan değerler

**Yönetim > Lisans bilgisi** ekranı, çalışan her Edge Gateway'in saniyede kaç değer ilettiğini ve lisanslı hızın ne
kadarını kullandığını gösterir. Edge Gateway'ler bu bilgiyi birkaç saniyede bir gönderir.

*Ekran görüntüsü: İki Edge Gateway için Çalışma durumu, Ölçülen dp/s ve Toplam reddedilen sütunları işaretlenmiş Anlık kapasite tablosu*

1. **Çalışma durumu**: **Normal**, **Uyarı** (lisanslı hızın %70'i ya da üstü), **Kritik** (%90 ya da üstü),
   **Sınır aşıldı** (değerler atıldı) ya da **Güncel değil** (Edge Gateway'den bilgi gelmiyor).
2. **Ölçülen dp/s**: Şu anda saniyede iletilen değer sayısı ve bunun lisanslı hıza oranı.
3. **Toplam reddedilen**: Edge Gateway lisanslı hızını aştığı için atılan değerler. `0`'dan büyük her değer, eksik veri
   olduğunu gösterir. Ayrıntılar için [Lisans](https://proxus.io/tr/docs/administer/license#sınırlarda-ne-olur) sayfasına bakın.

## Disk ve veritabanı boyutu

**Yönetim > Veritabanı durumu** ekranı, açıldığı anda telemetri veritabanının durumunu raporlar.

*Ekran görüntüsü: Database Summary ve Disk Volume tabloları işaretlenmiş Veritabanı durumu raporu*

1. **Database Summary**: Saklanan değerlerin diskte kapladığı alan, sıkıştırmadan önceki boyutu ve sıkıştırmayla
   kazanılan alan.
2. **Disk Volume**: Telemetri veritabanının yazdığı disk, diskteki boş alan ve **Disk Usage** değeri.

Raporun alt kısmında **Table Storage** en büyük tabloları listeler. **Retention Policy** ise her veri türünün ne
kadar süre saklandığını gösterir. Boş alanı düzenli olarak kontrol edin. Disk dolduğunda yeni değerler saklanamaz.

Proxus, `config` birimindeki günlük dosyalarını silmez. Disk kontrollerinize bu birimi de ekleyin. Ayrıntılar için
[Sistem günlükleri](https://proxus.io/tr/docs/administer/system-logs#günlükler-ne-kadar-süre-saklanır) sayfasına bakın.

## Prometheus ve OpenTelemetry metrikleri

Metrikler varsayılan olarak kapalıdır. Açmak için [yapılandırma dosyasına](https://proxus.io/tr/docs/administer/configuration) şu
ayarları ekleyin:

```toml
[Metrics]
Enable = true

[Otlp]
Endpoint = "http://otel-collector:4317"
MetricsIntervalMilliseconds = 10_000
SkipWhenEndpointUnresolvable = true
```

Yığını yeniden başlatın. Bundan sonra:

- Merkez sunucu ve Edge Gateway, Prometheus metriklerini kendi HTTP portlarında `/metrics` adresinden sunar
  (`http://<hub>:8080/metrics`, `http://<gateway host>:8083/metrics`). Bu iki adresi de Prometheus'a hedef
  (scrape target) olarak ekleyin.
- `[Otlp]` `Endpoint` ayarı, adı çözümlenebilen bir OpenTelemetry toplayıcısını gösteriyorsa aynı metrikler
  `MetricsIntervalMilliseconds` aralığıyla bu toplayıcıya da gönderilir. Başlangıçta adres çözümlenemezse Proxus bu
  adrese veri göndermez (`SkipWhenEndpointUnresolvable = true`). Böylece erişilemeyen bir toplayıcı Edge Gateway'i
  yavaşlatmaz.

Metrikler, gelen ve giden HTTP isteklerini ve merkez sunucu ile Edge Gateway'in iç işleyişini kapsar. Cihaz bazındaki
değerler ve kapasite bilgisi metriklerde yer almaz. Bunlar için yukarıdaki ekranları kullanın.

`[Tracing]` `Enable = true` ayarı, izleme kayıtlarını (trace) da OTLP uç noktasına gönderir. Bu ayarı yalnızca bir
sorunu incelerken açın.

> **Not:**
`/metrics` adresine oturum açmadan erişilebilir. `8080`, `8443` ve `8083` portlarına yalnızca izleme sisteminizin
ulaşabildiğinden emin olun ya da metrikleri kapalı tutun. Ayrıntılar için [Güvenlik](https://proxus.io/tr/docs/operate/security)
sayfasına bakın.

## NATS sunucusu

NATS sunucusunun (`hub-server`) kendi izleme portu vardır: `8222`. Bu port, sunucunun standart durum
sayfalarını sunar. Örneğin `http://<hub>:8222/varz` sunucu bilgilerini, `http://<hub>:8222/jsz` saklanan akışları
gösterir. Kubernetes HA çeşidinde her NATS podu, `hub-server-metrics` hizmeti üzerinden `7777`
portunda Prometheus metrikleri de sunar.

## Günlükler

- **Yönetim > Sistem günlükleri** ekranı, merkez sunucudan ve tüm Edge Gateway'lerden gelen uyarıları ve hataları bir
  arada gösterir. Ayrıntılar için [Sistem günlükleri](https://proxus.io/tr/docs/administer/system-logs) sayfasına bakın.
- Konteyner çıktısını görmek için `docker compose -p proxus logs -f proxus-ui` komutunu kullanın. `proxus-ui`
  yerine `proxus-server`, `hub-server`, `postgresql` ya da `clickhouse` da yazabilirsiniz.

## Sonraki adımlar

- [Sorun giderme](https://proxus.io/tr/docs/troubleshoot): sık karşılaşılan belirtiler, nedenleri ve çözümleri.
- [Güvenlik](https://proxus.io/tr/docs/operate/security): metrik ve izleme portlarına erişimi sınırlama.
