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/liveve/q/health/ready. - Ölçümler
-
/q/metricsadresinde 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_ENDPOINTtanı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_LOGSile 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.
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.
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.
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ı.