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
- Tower'lar ve metrikler sayfasında Metrikleri topla ve sakla anahtarını açın.
- Metriklerin veritabanında yer kaplayacağını onaylayan kutuyu işaretleyin. Kim, ne zaman açtı kaydedilir.
- 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 |
- Depolama bütçesi (GB) girin. %80 dolunca uyarılırsınız, %90 dolunca yeni metrik yazılmaz.
- Kaydet.
Metrikler kapalıyken Tower'lar metrikleri alır ama atar.
Tower kurulumu
- Tower ekle → ad (ör.
istanbul-dc) ve isteğe bağlı bölge girin. - İ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_…).
- Tower makinesinde verilen Docker komutunu çalıştırın:
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- 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.
- Tower'lar ve metrikler → Collector config.
- Tower adresi: Tower aynı makinedeyse
http://localhost:4318, değilsehttp://<tower-makinesi>:4318. - Bu sunucunun metrikleri kutusu: CPU, bellek, disk, ağ, yük, dosya sistemi.
- PostgreSQL ekle: adres (
db.corp:5432), kullanıcı (varsayılanspitfire_monitor), veritabanları (boş: hepsi), TLS. - Docker ya da otelcol-contrib binary seçin → Config üret.
collector.yamldosyasını Collector makinesine kaydedin.- İzleme kullanıcısını PostgreSQL'de bir yönetici ile oluşturun:
CREATE ROLE spitfire_monitor WITH LOGIN PASSWORD '<password>';
GRANT pg_monitor TO spitfire_monitor;- Verilen komutu env'leri doldurarak çalıştırın:
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- 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 |
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):
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 |