Bu konu, açık kaynaklı bir istemci aracılığıyla bildirilen verilerin Managed Service for OpenTelemetry konsolunda görünmediği durumlarda veya konsolda ya da günlük dosyalarında hata günlükleri göründüğünde sorunları tanımlamanıza ve çözmenize yardımcı olur.
Eksik veriler iki kategoriden birine girer:
Veri sunucuya ulaşmıyor -- ağ sorunları, devre dışı bırakılan veri alımı ayarları, aşılan kotalar veya protokol düzeyindeki hatalar (HTTP veya gRPC) nedeniyle oluşur.
Veri ulaşıyor ancak beklendiği gibi görüntülenmiyor -- bozuk izlemeler, eksik span'lar veya ajan yapılandırma hataları nedeniyle oluşur.
Ağ bağlantısını doğrulayın
İstemcinin Managed Service for OpenTelemetry uç noktasına erişebildiğini onaylayın.
-
Kodunuzdaki uç noktanın bir private endpoint mi yoksa bir public endpoint mi olduğunu belirleyin.
Bir private endpoint, sunucu ile aynı virtual private cloud (VPC) içinde olmalıdır. Bölgeler arası raporlama desteklenmez.
-
Raporlama ortamından, uç noktayı ve bağlantı noktasını test etmek için
curlveyatelnetkomutunu çalıştırın. Uç nokta kullanılamıyorsa Elastic Compute Service (ECS) örneğinin güvenlik grubu ayarlarını kontrol edin. China (Hangzhou) bölgesindeki gRPC uç noktası için örnek:telnet <endpoint> <port>telnet tracing-analysis-dc-hz.aliyuncs.com 8090 -
Sonucu kontrol edin: Aşağıdaki çıktı başarılı bir bağlantıyı gösterir. Aşağıdaki çıktı başarısız bir bağlantıyı gösterir.
Sonuç Anlamı Sonraki adım Bağlantı kuruldu (terminalde Connected to ...gösterilir)İstemci sunucuya erişebilir. Veri alımı ayarlarını kontrol et bölümüne ilerleyin. Trying <IP>...aşamasında takılı kalır veyaUnable to connect to remote hostdöndürürİstemci sunucuya erişemez. Elastic Compute Service (ECS) örneğinin güvenlik grubu kurallarını ve VPC ağ yapılandırmasını kontrol edin. Ayrıntılar için bkz. Managed Service for OpenTelemetry'e bağlanma ve istemcileri kimlik doğrulama ve Güvenlik grupları. ~ → telnet tracing-analysis-dc-hz.aliyuncs.com 8090 Trying xxx.67.89... Connected to tracing-analysis-dc-hz.aliyuncs.com. Escape character is '^]'.telnet tracing-analysis-dc-hz-internal.aliyuncs.com 8090 Trying xxx.80.178... telnet: connect to address xxx.80.178: Operation timed out Trying xxx.7.123... telnet: connect to address xxx.7.123: Operation timed out telnet: Unable to connect to remote host
Veri alımı ayarlarını kontrol edin
Veri alımı global olarak (tüm uygulamalar için) veya uygulama başına kontrol edilebilir. Bir kota sınırı da veri alımını engelleyebilir.
Global ayarlar
Managed Service for OpenTelemetry konsolunun sol gezinme bölmesinde Cluster Configurations seçeneğine tıklayın.
Data Capturing Settings bölümünde Enable All veya Enable by Default seçeneğinin seçili olduğunu doğrulayın.
Uygulama başına ayarlar
Applications sayfasında hedef uygulama adına tıklayın.
Sol gezinme bölmesinde Application Settings seçeneğine tıklayın.
Custom Configuration sekmesinde, Data Capturing Settings bölümünde Capture Data seçeneğinin Enable veya Don't Set olarak ayarlandığını doğrulayın.
Global ayar Enable All veya Disable All ise uygulama başına ayarlar etkili olmaz. Global ayar her zaman önceliklidir. Bir uygulama için Don't Set seçildiğinde uygulama küme düzeyindeki ayarı devralır.
Kota
Cluster Configurations sayfasında Quota configuration bölümünü kontrol edin.
Bildirilen veri hacmi yapılandırılmış kotaya ulaştıysa kotayı artırın. Kotaya ulaşıldıktan sonra ek veri kabul edilmez.
Simple Log Service veri kaynağını doğrulayın
Managed Service for OpenTelemetry, verileri hesabınızdaki Simple Log Service (SLS) projelerinde depolar. SLS proje sayısı hesap limitine ulaşırsa veri raporu başarısız olur.
Bu sorunu çözmek için:
Kapasiteyi serbest bırakmak için kullanılmayan SLS projelerini serbest bırakın.
Daha yüksek bir proje limiti talep etmek için destek talebi oluşturun.
İzleme görevi durumunu kontrol edin
Konsol izleme görevinin anormal veya etkin olmadığını belirtiyorsa Alibaba Cloud Destek ekibine destek talebi oluşturun.
HTTP raporlama hatalarını giderin
Konsoldaki veya günlük dosyalarındaki HTTP durum kodunu kontrol edin ve aşağıdaki neden ile çözümle eşleştirin.
| HTTP durum kodu | Neden | Çözüm |
|---|---|---|
| 403 | Sunucu yetkilendirme hatası nedeniyle isteği reddetti. | Uç noktayı ve belirteci doğrulayın. Doğru değerleri almak için Cluster Configurations > Access point information yoluna gidin. Zipkin istemcileri için URL'de varsa /v2/spans kısmını da kaldırın. |
| 405 | Bildirilen veri hacmi yapılandırılmış kotaya ulaştı. | Cluster Configurations sayfasının Quota configuration bölümünde kotayı artırın. |
| 406 | Küme düzeyinde veri toplama devre dışı bırakıldı. | Cluster Configurations sayfasının Ingestion Configuration bölümünde toplamayı etkinleştirin. |
| 400 | İstek gövdesi desteklenmeyen bir veri formatına sahip. | Content-Type üstbilgisini application/json veya application/x-thrift olarak ayarlayın. Etiket anahtarlarının ve değerlerinin dize (JSON dizisi değil) olduğundan ve span'ların bir JSON dizisi (JSON nesnesi değil) olarak gönderildiğinden emin olun. |
APISIX'e özel hata
Aşağıdaki hata görünüyorsa:
The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
APISIX, OpenTelemetry aracılığıyla verileri doğrudan Managed Service for OpenTelemetry'e raporlayamaz. Verileri iletmek için ara katman olarak OpenTelemetry Collector kullanın.
gRPC raporlama hatalarını giderin
Konsoldaki veya günlük dosyalarındaki gRPC durum kodunu kontrol edin. gRPC durum kodlarının tam listesi için bkz. Status codes and their use in gRPC.
Zaman aşımı
Hata iletisi:
Failed to export spans. The request could not be executed. Full error message: timeout
Çözüm:
Ağ bağlantısını doğrulayın (bkz. Ağ bağlantısını doğrulayın).
Ortamınıza uyum sağlamak için SDK veya ajan yapılandırmasındaki raporlama zaman aşımını artırın.
Kimlik doğrulama hatası (gRPC durum kodu 7)
Hata iletisi:
Failed to export spans. Server responded with gRPC status code 7. Error message:
Çözüm:
gRPC istek üstbilgisindeki Authentication alanının Managed Service for OpenTelemetry konsolunda gösterilen belirteçle eşleştiğini doğrulayın. Belirteci bulmak için Cluster Configurations > Access point information yoluna gidin.
SkyWalking MeterSender hatası
Hata iletisi:
MeterSender : Send meters to collector fail with a grpc internal exception.
org.apache.skywalking.apm.dependencies.io.grpc.StatusRuntimeException:
UNIMPLEMENTED: Method not found: skywalking.v3.MeterReportService/collect
Neden: SkyWalking istemcisi, bu yöntemi desteklemeyen Managed Service for OpenTelemetry sunucusuna izlemeler yerine ölçümler göndermeye çalışıyor.
Çözüm: SkyWalking istemci yapılandırmasında ölçüm raporlamasını devre dışı bırakın.
Beklenmeyen izleme verilerini giderin
Veriler konsola ulaşıyorsa ancak izlemeler eksik veya beklenmiyorsa kullanılan ajana veya SDK'ya göre aşağıdaki rehberliği kullanın.
SkyWalking ajanı veya SDK'sı
Eksik framework veya ara katman olayları
-
SkyWalking ajanı eklenti dizinini kontrol edin. SkyWalking v8 ve sonrası için varsayılan yol şudur:
${agent-path}/agent-8.x/plugins Eklenti sürümlerinin uygulamada kullanılan framework sürümleriyle eşleştiğini doğrulayın. Gerekli bir eklenti eksikse bunu
bootstrap-pluginsveyaoptional-pluginsdizininden kopyalayın veya SkyWalking topluluğu üzerinden indirin.Uygulamaya yalnızca bir ajanın bağlı olduğunu onaylayın. Birden fazla ajan enstrümantasyon çakışmalarına neden olabilir.
Bozuk izlemeler
Uygulamanın eşzamansız işleme kullanıp kullanmadığını kontrol edin. Eşzamansız senaryolarda izleme bağlamı otomatik olarak yayılmayabilir. Çözüm için SkyWalking belgelerindeki Trace Cross Thread konusuna bakın.
Beklenenden kısa izlemeler
Aşağıdaki yoldaki collector.agent.service_graph.batch_size değerini değiştirerek SkyWalking ajanı tarafından raporlanabilecek maksimum span sayısını artırın:
${agent-path}/agent-8.x/config/agent.config
OpenTelemetry ajanı veya SDK'sı
Bozuk izlemeler
Uygulamanın eşzamansız işleme kullanıp kullanmadığını kontrol edin. Eşzamansız senaryolarda bozuk izlemeleri çözmek için:
OpenTelemetry'i en son sürüme güncelleyin.
İlgili span'ları birbirine bağlamak için SpanLinks API kullanın.
İşlemleri ilişkilendirmek için açıkça bir üst span belirtin.
İzleme bağlamını aşağı akış hizmetlerine bağlam yayılımı aracılığıyla iletin.