İçeriğe geç
Geliştirme dokümantasyonu
Bu belgeler Keydra'nın geliştirilmekte olan hâlini anlatır; yayımlanmış bir sürüm değildir. Anlatılanlar bir sürüm çıkana kadar değişebilir.

Gözlemlenebilirlik

Sağlık yoklamaları, Prometheus ölçümleri, OpenTelemetry izleri ve JSON günlükleri; ayrıca ölçümlerin yeniden başlatmadan sonra da durması için gereken depo.

Keydra kendisi hakkında ne bildirir#

Sağlık

/q/health. Manifestlerin kullandığı iki yoklama için /q/health/live ve /q/health/ready.

Ölçümler

/q/metrics adresinde Prometheus biçiminde. Çalışma zamanının kendi ölçerleri — istekler, JVM, olay döngüleri — ve yalnızca Keydra’nın üretebildikleri: ayakta ve düşmüş hedef sayısı, bir ölçümün ne kadar sürdüğü ve ne sıklıkta başarısız olduğu, bu örneğin izlediği hedeflerden ne kadar şey istediği, zamanlanmış iş çalışmaları ve sonuçları, üretilen ve gönderilen uyarılar, süren göç işleri ve bu örneğin lider işlerini üstlenip üstlenmediği.

Etiketler kimlik ve sonuçtur, ad değil. Bir hedefin adı, birinin sistem envanterine dair bir bilgidir ve bir seri, etiketlerini var olduğu sürece taşır; bir kimlik ise onu çözmeye yetkili herkese aynı şeyi söyler ve hedef her yeniden adlandırıldığında yeni bir seri eklemez.

İzler

OpenTelemetry. KEYDRA_OTLP_ENDPOINT tanımlanana kadar hiçbir yere aktarım yapmaz; izlemeyi açan da ayrı bir bayrak değil, bu adresin tanımlanmasıdır. Hiçbir yeri göstermeyen bir izleme SDK’sı her aktarım denemesinde günlük satırı üretir ve bu, hiç izleme olmamasından kötüdür.

Günlükler

Varsayılan olarak insan okuyabilir biçim; kurulum KEYDRA_JSON_LOGS ile isterse konsolda JSON. Her satır örneğin adını taşır.

Hakkında sayfası neyin nereye aktarıldığını gösterir: "bu kurulum bir yere ölçüm gönderiyor mu" sorusunun yanıtı bir dağıtım manifestinde aranmamalıdır.

Ölçüm etiketleri#

Ölçerler hedefin adıyla değil kimliğiyle etiketlenir. Ölçüm etiketleri bu projenin denetiminde olmayan sistemlerce okunur ve serinin ömrü boyunca kalır. production-payments etiketi birinin altyapısı hakkında bilgi verir; kimlik ise aynı bilgiyi yalnızca çözmeye yetkili olanlara verir.

Her ölçer, kendisini üreten örneği instance değil keydra_instance etiketiyle taşır. Yük dengeleyici arkasında aynı soru iki farklı sürece gidebilir; ikisini karıştıran bir grafik hiçbir anlam taşımaz. Kazıyıcı zaten topladığı veriye kendi instance etiketini ekler ve hazır gelen aynı adlı etiketi yeniden adlandırır.

Ölçümleri kalıcı saklama#

Keydra varsayılan olarak hedef başına son bir saatlik ölçümü bellekte tutar; süreç kapandığında bu veriler de kaybolur. Belleğin %91’e ulaştığını öğrendiğinizde iki soru daha sorulur ve ikisi de yanıtsız kalır: ne zamandan beri böyle ve geçen salı da böyle miydi.

ClickHouse ikisini de yanıtlar. İsteğe bağlıdır ve varsayılan olarak kapalıdır.

Prosedür
properties
KEYDRA_CLICKHOUSE_ENABLED=true
KEYDRA_CLICKHOUSE_URL=http://clickhouse.internal:8123
KEYDRA_CLICKHOUSE_USER=<kullanıcı adı>
KEYDRA_CLICKHOUSE_PASSWORD=<parola>

Saklama süresini Keydra değil ClickHouse’un kendi TTL mekanizması uygular; gün sayısı da aynı yerde ayarlanır.

Doğrulama

Hedefin İzleme sayfasında bir saatten uzun bir Aralık seçin. Grafikte Bellekten yerine Depodan, {seconds} sn’lik kovalar yazar.

Keydra’yı yeniden başlatın; grafik önceki döneme ait verileri göstermeyi sürdürür.

Not:Not

Depoya yazma işlemi beklemeden yapılır ve ölçümü hiç geciktirmez. Depoyu bekleyen bir örnekleyici, depo yavaşladığında örneklemeyi bırakırdı; oysa ölçümlerin en çok gerektiği an tam olarak odur.

ClickHouse popüler olduğu için değil, verinin biçimine uyduğu için seçildi: hedef başına birkaç saniyede bir yazılan, geniş ve tek düze, yalnızca ekleme yapılan bir sayı akışı; okunurken de zaman aralığı olarak sorgulanır. PostgreSQL de bunu yapabilirdi ama hedef başına günde on yedi bin satırı hiç kullanmayacağı hâlde taşırdı.

Bu sayfayı düzenle