Spitfirev0.62.0 · Yenilikler

Sürüm: 0.62.0Bu dokümantasyon Spitfire 0.62.0 içindir.

Tower ve sürekli metrikler

Tower, ağınızdaki bir makinede çalışan küçük bir ağ geçididir. Sunucu ve veritabanı Collector'ları (ya da kendi OpenTelemetry Collector'ınız) metriklerini Tower'a OTLP/HTTP ile gönderir; Tower bunları tek bir giden bağlantıyla kontrolcüye iletir. Kontrolcü metrikleri kendi PostgreSQL'inde tutar, koşu sonuçlarının yanında görebilirsiniz.

  • Tower yalnız kontrolcüye bağlanır. Ağınıza dışarıdan bağlantı açılmaz, internet çıkışı gerekmez.
  • Kontrolcüye ulaşamazsa gelen metrikleri diskte tutar (varsayılan 1 GB / 24 saat) ve bağlantı gelince sırayla iletir. Tampon dolarsa en eskisi atılır ve sayılır.
  • Her ağ bölgesine (veri merkezi, DMZ, bulut VPC) bir Tower yeterlidir.

Sayfa: Tower'lar ve metrikler Spitfire'da: /towers (yalnız kurulum yöneticisi).

Metrikleri açmak

  1. Tower'lar ve metrikler sayfasında Metrikleri topla ve sakla anahtarını açın.
  2. Metriklerin veritabanında yer kaplayacağını onaylayan kutuyu işaretleyin. Kim, ne zaman açtı kaydedilir.
  3. Saklama süresi girin. Lisansınızın tavanını aşamazsınız:
Plan En fazla
Ücretsiz 7 gün
Starter 30 gün
Growth 90 gün
Scale 180 gün
Enterprise 365 gün
  1. Depolama bütçesi (GB) girin. %80 dolunca uyarılırsınız, %90 dolunca yeni metrik yazılmaz.
  2. Kaydet.
Not

Metrikler kapalıyken Tower'lar metrikleri alır ama atar.

Tower kurulumu

  1. Tower ekle → ad (ör. istanbul-dc) ve isteğe bağlı bölge girin.
  2. İki token yalnız bir kez gösterilir, ikisini de saklayın:
    • sftower_…: Tower'ın kendi token'ı (SPITFIRE_TOWER_TOKEN).
    • sfcol_…: Tower'a gönderen Collector'ların token'ı (Authorization: Bearer sfcol_…).
  3. Tower makinesinde verilen Docker komutunu çalıştırın:
bash
docker run -d --name spitfire-tower --restart unless-stopped -p 4318:4318 \
  -v spitfire-tower:/var/lib/spitfire-tower \
  -e SPITFIRE_TOWER_CONTROLLER=https://<kontrolcü> \
  -e SPITFIRE_TOWER_TOKEN=sftower_... \
  <spitfire imajı> spitfire-tower
  1. Listede durum Bağlı olur (ilk bağlantı birkaç saniye sürer).

Tower ayarları (ortam değişkeni):

Değişken Varsayılan Anlamı
SPITFIRE_TOWER_CONTROLLER – Kontrolcünün adresi (zorunlu)
SPITFIRE_TOWER_TOKEN – sftower_… token'ı (zorunlu)
SPITFIRE_TOWER_LISTEN :4318 Collector'ların gönderdiği adres
SPITFIRE_TOWER_TLS_CERT / SPITFIRE_TOWER_TLS_KEY – OTLP'yi HTTPS ile sunmak için
SPITFIRE_TOWER_CA – Kontrolcünün sertifikası özel bir CA'dan ise CA dosyası
SPITFIRE_TOWER_BUFFER_MB 1024 Disk tamponu
SPITFIRE_TOWER_BUFFER_HOURS 24 Bundan eski metrikler atılır
SPITFIRE_TOWER_RATE 20 Bir kaynağın saniyede gönderebileceği export sayısı

Sunucu ve PostgreSQL metrikleri (Collector)

Spitfire, resmi OpenTelemetry Collector Contrib (otel/opentelemetry-collector-contrib:0.164.0) için hazır bir config üretir. Collector'ı izlenecek sunucuya kurun; PostgreSQL'e ağdan bağlanabildiği sürece veritabanını da aynı Collector okur.

  1. Tower'lar ve metrikler → Collector config.
  2. Tower adresi: Tower aynı makinedeyse http://localhost:4318, değilse http://<tower-makinesi>:4318.
  3. Bu sunucunun metrikleri kutusu: CPU, bellek, disk, ağ, yük, dosya sistemi.
  4. PostgreSQL ekle: adres (db.corp:5432), kullanıcı (varsayılan spitfire_monitor), veritabanları (boş: hepsi), TLS.
  5. Docker ya da otelcol-contrib binary seçin → Config üret.
  6. collector.yaml dosyasını Collector makinesine kaydedin.
  7. İzleme kullanıcısını PostgreSQL'de bir yönetici ile oluşturun:
sql
CREATE ROLE spitfire_monitor WITH LOGIN PASSWORD '<password>';
GRANT pg_monitor TO spitfire_monitor;
  1. Verilen komutu env'leri doldurarak çalıştırın:
bash
docker run -d --name spitfire-collector --restart unless-stopped --network host --pid host \
  -v /:/hostfs:ro -v "$PWD/collector.yaml:/etc/otelcol-contrib/config.yaml:ro" \
  -e SPITFIRE_COLLECTOR_TOKEN=<sfcol_…> \
  -e SPITFIRE_PG_PASSWORD=<password> \
  otel/opentelemetry-collector-contrib:0.164.0
  1. Bir dakika içinde sunucu ve veritabanı Kaynaklar listesinde görünür.
Değer Nereden Nereye
Tower adresi Tower makinesi, port 4318 config: exporters.otlphttp/spitfire.endpoint
sfcol_… token'ı Tower oluşturulurken bir kez gösterilir env SPITFIRE_COLLECTOR_TOKEN
PostgreSQL parolası 7. adımda verdiğiniz parola env SPITFIRE_PG_PASSWORD
PostgreSQL adresi/kullanıcı formda config: receivers.postgresql.endpoint / username
Not

Token ve parola config'e yazılmaz; config güvenle paylaşılabilir. pg_monitor yetkisi tablolarınızdaki veriyi okuyamaz, yalnız istatistikleri okur.

Koşu raporunda

Bir test koşusu sürerken metrik gönderen her sunucu ve veritabanı, koşunun Backend sekmesinde Tower metrikleri kaynağı olarak görünür; bunun için teste bağlantı eklemeniz gerekmez:

  • Sunucu: CPU %, bellek %, yük (1 dk), disk I/O, ağ I/O.
  • Veritabanı: bağlantılar, bağlantı / en fazla %, commit/s, rollback/s, deadlock/s, satır işlemleri/s.

Her değer aşama (ramp, plato…) ortalaması olarak tabloda, zaman içinde grafik olarak çizilir.

Kendi Collector'ınızı bağlamak

Kendi OpenTelemetry Collector'ınızın ayarına bir exporter ekleyin (<tower> yerine Tower makinesinin adresi):

yaml
exporters:
  otlphttp/spitfire:
    endpoint: http://<tower>:4318
    headers:
      Authorization: "Bearer sfcol_..."
service:
  pipelines:
    metrics:
      exporters: [otlphttp/spitfire]

Collector yeniden başlatıldıktan sonra kaynak Kaynaklar listesinde görünür. Sunucular host.name ile, veritabanları server.address[:port] (yoksa host.name) ile sayılır.

Lisans sınırları

Planınız kaç sunucu ve veritabanının metriğini alabileceğinizi belirler:

Plan Sunucu Veritabanı
Ücretsiz 1 1
Starter 3 1
Growth 10 3
Scale 30 10
Enterprise sınırsız sınırsız

Growth ve Scale'e ek paket alınabilir: +10 sunucu ya da +5 veritabanı (Lisans sayfası → Ek paket al). Sınıra gelince yeni kaynaklar alınmaz ve sayfada listelenir. Kullanmadığınız bir kaynağı Kaynaklar listesinden silerek yer açabilirsiniz; Collector göndermeye devam ederse kaynak yeniden oluşur.

Sorun giderme

Belirti Sebep / çözüm
Tower Bağlı değil Tower makinesi kontrolcü adresine ulaşamıyor, ya da token iptal edildi (Tower çıkış kodu 3 ile durur). docker logs spitfire-tower
Collector 401 alıyor sfcol_ token'ı yanlış ya da başka bir Tower'ın
Collector 503 alıyor Tower henüz kontrolcüyle hiç konuşmadı; bağlantıyı bekleyin
Collector 429 alıyor Kaynak SPITFIRE_TOWER_RATE sınırını aştı
Tamponda "export atıldı" Kontrolcü uzun süre ulaşılamadı; tamponu büyütün