↓Ana içeriğe geç
Research · May 6, 2026 · 3 min

Highlight: A Week We Won't Get Back

Session replay, distributed tracing, tek araç — ağzımıza bal çalmıştı. Bir hafta sonra metrikler yalan söylüyordu.

Tek araca geçeceğiz dedik. Bir hafta sonra metrikler yalan söylüyordu.

Neden Seçtik #

Ekip olarak zaten bir observability aracı kullanıyorduk. Araç çalışıyordu — ama dağınıktı. Session replay ayrı, tracing ayrı, error monitoring ayrı. Highlight’ı gördüğümüzde vaat basitti: hepsini tek çatıya al, tek entegrasyon yaz, tek dashboard’a bak. Session replay’in de pakete dahil olması ağzımıza bal çalmıştı.

Bu aynı zamanda ekip için ilk OpenTelemetry deneyimiydi.

OpenTelemetryOpenTelemetryvendor-neutral, open-source observability framework for generating, collecting, and exporting telemetry data — traces, metrics, logs

OTEL’in cazibesi de Highlight’ın cazibesini büyüttü: open standard üzerine kurulu, self-hostable, open source. Bu tarz projelerde erken entegre olmayı seviyoruz — PoC hazırladık, Highlight’a girdik. Her şey mümkün görünüyordu. Geçiş kararı aldık, implementasyona başladık. opentelemetry.io 1 source 1 OpenTelemetryopentelemetry.io

Ne Gördük #

Deployment ve initial configuration bir haftayı aldı. Highlight’ın self-host kurulumu dokümantasyona baktığında masum görünüyor — ama production’a yaklaştıkça katlanıyor. Environment değişkenleri, Clickhouse bağlantıları, backend servislerinin birbirini doğru bulması, SSL, ingestion endpoint’leri. Bir hafta sonunda çalışan bir instance vardı elimde. Asıl sorun o noktada başladı. Wikipedia 1 source 2 Transport Layer SecurityWikipedia

Entegrasyonlar duvara tosladı.

OTEL entegrasyonunda hedefimiz güvenilir bir binary transport’tu — daha zengin metadata ve verimli iletim için. DevOps tarafı gerekli her şeyi yaptı: kaynak okumalar, deployment testleri, port konfigürasyonları. Başka araçlar aynı ortamda sorunsuz çalışıyordu. Ama self-host instance tercih ettiğimiz transport üzerinden tek bir test trace’i bile üretemedi. Sonunda HTTP/JSON’a geçtik. Wikipedia+1 2 sources 3 HTTPWikipedia 4 JSONWikipedia

Bir özellik cloud’da çalışıp self-host’ta çalışmıyorsa, bu bir bug değil karardır.

Chart’lar yalan söylüyordu.

Dashboard’da count 10 yazıyor, aynı metriği trace’lere filtreyince 4 görünüyor. Sum ve avg aggregation’larında benzer tutarsızlıklar. Hata sayısı arttı mı, düzeldi mi — ekrana baktığında emin olamıyorsun. Observability aracının kendi metriklerine güvenemiyorsan, artık observability değil dekorasyon.

Trace analizi içinden çıkılmaz hale geldi.

Pod açılıp kapandığında duplicate trace’ler üretiliyordu. Tek bir request için iç içe geçmiş, birbirini tekrarlayan trace’ler — görüntüyü bozuyor, analizi zorlaştırıyor. Her geçen gün bizi üzmeye devam etti. Yetmedi, arama derinliği de yetersizdi. http.request.payload.object gibi nested attribute’lara inemiyorsun; filtreler yüzeyde kalıyor. Bir hatayı kaynağına kadar izlemek istediğinde araç seni yarı yolda bırakıyor.

Self-host ikinci sınıf.

Retention süresi ayarlanamıyor — bu Highlight’a özgü değil, self-host araçlarda sık görülen bir limit, ama yine de hissettiriyor. Geri kalanlar ise kasıtlı: Slack entegrasyonu tamamen kapalı, cloud’a hardcode edilmiş URL’ler var. SMTP’de sender adresi değiştirilemiyor, kendi mail adresleri yazılı geliyor. Custom dashboard limiti 3 — dördüncüsünü açamıyorsun. Bunlar özellik eksikliği değil. Her biri “self-host’u zorlaştır, cloud’a it” politikasının ayrı bir satırı. Wikipedia+1 2 sources 5 URLWikipedia 6 Simple Mail Transfer ProtocolWikipedia

Kodu açık bırak, ama kullanılabilir olanı managed SaaS’a kilitle.

Ne Öğrendik #

Nisan 2025’te LaunchDarkly, Highlight’ı satın aldı. Duyuru “Guarded Software Releases” vizyonundan bahsediyordu — feature flag ve observability entegrasyonu. Self-host kullananlar için anlamı şuydu: ekip artık bağımsız bir ürün üzerinde çalışmıyor, upstream LaunchDarkly’nin roadmap’ine bağlı.

Güncellemeler durdu. Hosted servis 28 Şubat 2026’da kapandı. Self-host versiyonu teknik olarak hâlâ bir repo olarak yaşıyor — resmi destek yok, aktif geliştirme yok. Kod açık, arkasındaki altyapı ölmüş.

“Open source” etiketi bazen şu anlama gelir: kodu okuyabilirsin, ama ürünü kullanamazsın.

Benzer bir karar vermeden önce şu soruları sormak gerekiyor:

  • Entegrasyonlar: cloud vs self-host. Cloud’da çalışıp self-host’ta çalışmıyorsa bu bir bug değil, karardır.
  • Aggregation’lar doğru mu? Dashboard’daki sayıyı trace filtresiyle çapraz kontrol et — tutmuyorsa araca güvenemezsin.
  • Trace deduplication var mı? Pod restart gibi durumlarda duplicate üretiyorsa, analiz değil temizlik yapıyorsun demektir.
  • Arama ne kadar derine iniyor? Nested attribute’lara inemiyorsan araç seni yarı yolda bırakır.
  • Self-host ile cloud arasındaki fark nedir? Bu fark hiçbir zaman rastlantısal değildir.
  • Son commit ne zaman? Acquisition sonrası repo sessizleştiyse upstream ölmüş demektir.

Alternatif arıyorsan: bu serinin devamında Uptrace’i inceleyeceğiz. Session replay yok — eğer bu senin için vazgeçilmezse Highlight’ın cazibesini anlıyorum. Ama geri kalanını düzgün çalışan bir araçla almak istiyorsan, bu takası yapmaya değer.

Biz yaptık. Tek araç hayalini bıraktık, çalışan bir stack’i tercih ettik.