Kafka Üstbilgi Geçişi
Özet
Instana, önümüzdeki birkaç ay içinde Kafka izleme ilintisi için üstbilgi biçimini değiştirir. Bir şey yapmana gerek yok. Daha yakından bakmak istemenizin tek nedeni, ileti boyutu hakkında çok endişe duymanız olabilir. Geçiş devam ederken, ileti boyutu biraz artacak. Ek yük YönOrtamı'nda; neredeyse tüm kullanım senaryoları için iletilere göz ardı edilebilir. Ancak ileti başına birkaç bayt kaydetmek istiyorsanız, okumaya devam edin.
Arka Plan
Dağıtılmış izlemeyi etkinleştirmek için, YönOrtamıAna isteklere ve iletilere izleme ilintilendirme bilgileri ekler. Tam biçim temel iletişim protokolüne bağlıdır. Kafka iletileri için, Instana şu anda izleme ilintisi bilgilerini ikili biçimde gönderir. Kafka iletişim kuralı üstbilgiler için isteğe bağlı ikili değerlere izin verir, bu nedenle bu davranış Kafka ileti biçimiyle tamamen uyumludur. Ancak, bazı Kafka istemci uygulamaları ikili üstbilgilerle iyi başa çıkamaz. Bu nedenle, Instana, ikili değerleri yerine dizgi değerleriyle izleme ilintisi üstbilgilerine taşınır. Bir iletişim protokolüne ilişkin izleme ilintisi üstbilgilerinin biçiminin değiştirilmesi önemsiz değildir; bunun nedeni, YönOrtamın uygulamalarınız için izleyici bileşenlerinin güncellendiği zaman noktası üzerinde denetime sahip olmamasıdır. Instana, belirli bir izlemede yer alan tüm izleyicilerin aynı anda güncellendiğini varsayamaz. Ayrıca, bir izleyicinin bir iletiye enjekte ettiği üstbilgi biçiminin, iletiyi alan hizmeti izleyen izleyici tarafından anlaşılması gerekir. Bu nedenle, geçişin geriye dönük olarak uyumlu bir şekilde gerçekleştirilmesi çok önemlidir. Bu hamleyi bir süre için hazırladık ve tüm izleyicilerimiz hem eski hem de yeni başlık formatı ile başa çıkabiliyor.
Özet olarak, bu geçiş birden çok aşamada gerçekleştirilir ve Kafka genelinde izleme ilintilendirmesinin her zaman kullanıma hazır olmasını sağlamak için geçiş dönemine izin verir.
İzleyici Sürümleri
Aşağıdaki izleyici sürümleri yeni dizgi üstbilgisi biçimini işlemeye hazırdır ve iletiler gönderildiğinde hangi üstbilgi biçiminin kullanılacağını yapılandırmaya da izin verir. Kafka iletileri gönderen hizmetleriniz için üstbilgi biçimini belirtik olarak yapılandırmak istemiyorsanız, bu izleyici sürümlerine hemen güncelleme yapmanız gerekmez. Buna göre, Instana her zaman izleyicileri düzenli olarak güncellemeyi önerir.
| Çalıştırma zamanı | Sürüm | Yayın Tarihi | Yorum |
|---|---|---|---|
| Golang | instasarama@v1.2.0 |
25 Mayıs 2022 | Bu izleyici, en son paket sürümü kurularak el ile güncellenir. |
| Java | Java İzleme Algılayıcısı 1.2.413 | 31 Mayıs 2022 | Bu izleyici genellikle YönOrtamıana aracısı tarafından otomatik olarak güncellenir. |
| .NET Çekirdeği | Instana.Tracing.Core@1.228.1 |
7 Temmuz 2022 | Bu izleyici, en son nuget sürümü kurularak el ile güncellenir ( Kubernetes AutoTrace webhookkullanmadığınız sürece). |
| Node.js | @instana/collector@2.3.0 |
24 Mayıs 2022 | Bu izleyici, en son npm paketi sürümü kurularak el ile güncellenir ( Kubernetes AutoTrace webhookkullanılmadıkça). |
Burada listelenenlerin yanı sıra diğer çalıştırma zamanları da bu değişiklikten etkilenmez.
Ayrıca, aşağıdaki izleyici sürümleri varsayılan olarak her iki üstbilgi biçimini de gönderir:
| Çalıştırma zamanı | Sürüm | Yayın Tarihi | Yorum |
|---|---|---|---|
| Golang | instasarama@v1.5.0 |
4 Ekim 2022 | Bu izleyici, en son paket sürümü kurularak el ile güncellenir. |
| Java | Java İzleme Algılayıcısı 1.2.425 | 4 Ekim 2022 | Bu izleyici genellikle YönOrtamıana aracısı tarafından otomatik olarak güncellenir. |
| .NET Çekirdeği | Instana.Tracing.Core@1.235.1 |
5 Ekim 2022 | Bu izleyici, en son nuget sürümü kurularak el ile güncellenir ( Kubernetes AutoTrace webhookkullanmadığınız sürece). |
| Node.js | @instana/collector@2.10.0 |
5 Ekim 2022 | Bu izleyici, en son npm paketi sürümü kurularak el ile güncellenir ( Kubernetes AutoTrace webhookkullanılmadıkça). |
Geçiş Aşamaları
0. Aşama
Bu aşamada, izleyiciler varsayılan olarak yalnızca ikili üstbilgileri X_INSTANA_C ve X_INSTANA_L gönderir.
İkili üstbilgiler yerine dizgi üstbilgileri gönderilebilir ya da her iki üstbilgi kümesi de gönderilebilir. Daha fazla bilgi için bkz. Yapılandırma Seçenekleri.
Bir ileti alındığında, izleyiciler her iki üstbilgi kümesini de arayacak ve her iki üstbilgi biçiminden bir izlemeye devam edebilecekler.
Bu aşama, 1. aşamabaşlangıcı ile sona ermiştir.
1. Aşama
** Not: ** Bu, geçişin yürürlükteki aşamasıdır.
Şu anda, tüm izleyiciler varsayılan olarak hem ikili üstbilgileri hem de dizgi üstbilgilerini gönderir; yani, X_INSTANA_C ve X_INSTANA_L ile X_INSTANA_T ve X_INSTANA_S. Bu geçiş aşaması, izleyicilerin BT altyapınızda kademeli olarak büyütülmesine olanak sağlar.
İki yerine dört YönOrtamı-Üstbilgisinin eklenmesinden endişe ediyorsanız, ileti üstbilgisini ek yükü eniyilemek için aşağıdaki geçiş stratejisini uygulayabilirsiniz:
- Kafka iletisini gönderen tüm hizmetleri yalnızca ikili üstbilgileri gönderecek şekilde yapılandırın. Bkz. Yapılandırma Seçenekleri.
- Eylül 2023 'ten önce bir noktada, tüm izleyicilerin her iki üstbilgi biçimini de destekleyen bir sürüme yükseltildiğinden emin olun.
- Kafka iletisini gönderen tüm hizmetleri yalnızca dizgi üstbilgileri gönderecek şekilde yapılandırın. Bkz. Yapılandırma Seçenekleri. Bu ayar kullanılarak hizmetler artık devam eden geçişten etkilenmez.
- Tüm izleyiciler 2. aşamaya yükseltildikten sonra, üstbilgi biçimine ilişkin yapılandırma kaldırılabilir. Ancak, yapılandırma yerinde kalırsa bu bir sorun da değildir, yalnızca yoksayılır.
Tüm izleyiciler zaten yeterince yeni olan bir sürüme yükseltilmişse, 1. adımı atlayabilir ve yeni üstbilgi biçimini doğrudan kullanabilirsiniz.
2. Aşama
Bu aşama yaklaşık olarak Eylül 2023 'te başlayacaktır.
Bu aşamadan başlayarak, YönOrtamıcı izleyicileri eski ikili üstbilgi biçiminden varsayılan olarak yeni dizgi üstbilgisi biçimine geçiş yapacak. Üstbilgi biçimine ilişkin yapılandırma (varsa) yoksayılacak. Bu, geçişin son aşamasıdır.
Yapılandırma Seçenekleri
Kafka üstbilgi biçimi, anasistem aracısı yapılandırmasında ya da bir ortam değişkenikullanılarak iki farklı yaklaşımla yapılandırılabilir.
Aracı Yapılandırma Seçenekleri
com.instana.tracing.kafka.header-format değerini binary, stringya da botholarak ayarlayın. Örnek bir yapılandırma:
com.instana.tracing:
kafka:
header-format: both # possible values: binary, both, string
Üstbilgilerin Kafka iletilerine tamamen enjekte edilmesini devre dışı bırakmak için bir seçenek sağlanır. Aşağıdaki örnek ayarlara bakın:
Not: Bu ayar, Kafka için izleme ilintisini tamamen devre dışı bırakır. İzlemeleri böleceği için bu ayarın yapılması önerilmez; ilk izleme Kafka iletisini üreten hizmette sona erer ve Kafka iletisini alan hizmet yeni bir izleme başlatır.
com.instana.tracing:
kafka:
trace-correlation: false
Ortam Değişkenleri
- İzlenen süreçte
INSTANA_KAFKA_HEADER_FORMATortam değişkenini ayarlayın. Ortam değişkeni için geçerli değerler:binary,stringya daboth. - Üstbilgilerin Kafka iletilerine tamamen enjekte edilmesini devre dışı bırakmak için bir seçenek de sağlanır. Bu, Kafkaiçin izleme ilintisini de devre dışı bırakır. Bunun ayarı
INSTANA_KAFKA_TRACE_CORRELATION=false.
Üstbilgi Adları
Üstbilgi biçimleri, Kafka İzleme Üstbilgileribölümünde ayrıntılı olarak açıklanmaktadır.
Eski/İkili Üstbilgiler
Eski kipte, Kafka iletileri için izleme ilintisi, ikili içerikle birlikte X_INSTANA_C ve X_INSTANA_Lüstbilgilerini kullanır.
Modern/Dizgi Üstbilgileri
Geçişten sonra ya da dizgi üstbilgileri göndermek üzere yapılandırdığınızda, Kafka iletisine ilişkin izleme ilintisi X_INSTANA_T, X_INSTANA_S (ve isteğe bağlı olarak X_INSTANA_L_S) üstbilgilerini kullanır. Her üç üstbilgi de dizgi değerleriyle gönderilir.