.NET, Node.js, Python ve Java uygulamaları için Azure İzleyici OpenTelemetry'yi etkinleştirme
Bu makalede, Azure İzleyici Application Insights'ta deneyimleri desteklemek için OpenTelemetry tabanlı veri toplamanın nasıl etkinleştirileceği ve yapılandırıldığı açıklanır. Azure İzleyici OpenTelemetry Distro'sunun nasıl yükleneceğini inceleyeceğiz. Azure İzleyici OpenTelemetry Distro, Azure İzleyici'ye özgü özellikler için destek içeren bir OpenTelemetry dağıtımı sağlar. Distro, izlemeleri, ölçümleri, günlükleri ve özel durumları toplamak için OpenTelemetry izleme kitaplıklarını ekleyerek otomatik telemetriyi etkinleştirir ve özel telemetrinin toplanmasına izin verir. Canlı, üretim içi web uygulamalarından daha fazla telemetri izlemek ve toplamak için Dağıtım'da yer alan Canlı Ölçümler özelliğini de kullanabilirsiniz. Azure İzleyici OpenTelemetry Distro kullanmanın avantajları hakkında daha fazla bilgi için bkz . Neden "Azure İzleyici OpenTelemetry Distro" kullanmalıyım?.
OpenTelemetry kullanarak veri toplama hakkında daha fazla bilgi edinmek için bkz . Veri Toplama Temel bilgileri veya OpenTelemetry SSS.
OpenTelemetry Yayın Durumu
.NET, Node.js, Python ve Java uygulamaları için OpenTelemetry teklifleri kullanılabilir.
Not
- Özelliğe göre yayın durumu için bkz . SSS.
- Bu makalenin ikinci sekmesi klasik ASP.NET, konsol uygulamaları, Windows Forms (WinForms) vb. dahil olmak üzere tüm .NET senaryolarını kapsar.
Kullanmaya başlayın
Uygulamanızı OpenTelemetry ile izlemek için bu bölümdeki adımları izleyin.
Önkoşullar
- Azure aboneliği: Ücretsiz bir Azure aboneliği oluşturma
- Application Insights kaynağı: Application Insights kaynağı oluşturma
İpucu
Application Insights Klasik API'sinden geçiş gerçekleştiriyorsanız geçiş belgelerimize bakın.
İstemci kitaplığını yükleme
En son Azure.Monitor.OpenTelemetry.AspNetCore
NuGet paketini yükleyin:
dotnet add package Azure.Monitor.OpenTelemetry.AspNetCore
Azure İzleyici Application Insights'i etkinleştirme
Azure İzleyici Application Insights'ı etkinleştirmek için uygulamanızda küçük bir değişiklik yapar ve "Bağlantı Dizenizi" ayarlarsınız. Bağlantı Dizesi, uygulamanıza Distro'nun topladığı telemetrinin nereye gönderileceğine ilişkin bilgi verir ve size özeldir.
Uygulamanızı değiştirme
Sınıfınızda bulunan uygulama başlangıcınıza program.cs
ekleyinUseAzureMonitor()
.
// Import the Azure.Monitor.OpenTelemetry.AspNetCore namespace.
using Azure.Monitor.OpenTelemetry.AspNetCore;
// Create a new WebApplicationBuilder instance.
var builder = WebApplication.CreateBuilder(args);
// Add OpenTelemetry and configure it to use Azure Monitor.
builder.Services.AddOpenTelemetry().UseAzureMonitor();
// Build the application.
var app = builder.Build();
// Run the application.
app.Run();
Application Insights Kaynağınızdan Bağlantı Dizesini Kopyalama
İpucu
Henüz bir kaynağınız yoksa, şimdi Application Insights Kaynağı oluşturmanın tam zamanı. Burada yeni bir Application Insights Kaynağı oluşturmanızı ve mevcut bir kaynağı kullanmanızı öneririz.
Benzersiz Bağlantı Dizenizi kopyalamak için:
- Application Insights kaynağınızın Genel Bakış bölmesine gidin.
- Bağlantı Dizenizi bulun.
- bağlantı dizesi üzerine gelin ve Panoya kopyala simgesini seçin.
Bağlantı Dizesini ortamınıza yapıştırın
Bağlantı Dizenizi yapıştırmak için aşağıdaki seçeneklerden birini belirleyin:
A. Ortam Değişkeni aracılığıyla ayarlama (Önerilen)
Aşağıdaki komutta değerini benzersiz bağlantı dizesi ile değiştirin<Your Connection String>
.
APPLICATIONINSIGHTS_CONNECTION_STRING=<Your Connection String>
B. Yapılandırma Dosyası aracılığıyla ayarlama - Yalnızca Java (Önerilen)
adlı applicationinsights.json
bir yapılandırma dosyası oluşturun ve aşağıdaki içerikle aynı dizine applicationinsights-agent-3.5.3.jar
yerleştirin:
{
"connectionString": "<Your Connection String>"
}
Önceki JSON değerini benzersiz bağlantı dizesi ile değiştirin<Your Connection String>
.
C. Kod aracılığıyla ayarlama - ASP.NET Core, Node.js ve Yalnızca Python (Önerilmez)
Kod aracılığıyla Bağlantı Dizesi ayarlama örneği için bkz . Bağlantı Dizesi Yapılandırması .
Not
bağlantı dizesi birden fazla yerde ayarlarsanız, aşağıdaki önceliğe bağlıyız:
- Kod
- Ortam değişkeni
- Yapılandırma Dosyası
Verilerin aktığını onaylayın
Uygulamanızı çalıştırın ve Azure portalında Application Insights Kaynağı sekmenizi açın. Verilerin portalda görünmesi birkaç dakika sürebilir.
Application Insights artık uygulamanız için etkinleştirilmiştir. Aşağıdaki adımların tümü isteğe bağlıdır ve daha fazla özelleştirmeye olanak sağlar.
Önemli
Aynı Application Insights kaynağına telemetri yayan iki veya daha fazla hizmetiniz varsa, Bunları Uygulama Haritası'nda düzgün bir şekilde göstermek için Bulut Rolü Adları'nı ayarlamanız gerekir.
Application Insights izlemesini kullanmanın bir parçası olarak tanılama verilerini toplar ve Microsoft'a göndeririz. Bu veriler Application Insights'ı çalıştırmamıza ve geliştirmemize yardımcı olur. Daha fazla bilgi edinmek için bkz. Azure Uygulaması lication Insights'ta Statsbeat.
Örnekler
Azure İzleyici OpenTelemetry örnek uygulamaları desteklenen tüm diller için kullanılabilir.
Sonraki adımlar
- Azure İzleyici OpenTelemetry ekleme ve değiştirme hakkında ayrıntılı bilgi için bkz . Azure İzleyici OpenTelemetry ekleme ve değiştirme.
- OpenTelemetry dağıtımını daha fazla yapılandırmak için bkz . Azure İzleyici OpenTelemetry yapılandırması.
- Kaynak kodu gözden geçirmek için bkz . Azure İzleyici AspNetCore GitHub deposu.
- NuGet paketini yüklemek, güncelleştirmeleri denetlemek veya sürüm notlarını görüntülemek için Azure İzleyici AspNetCore NuGet Paketi sayfasına bakın.
- Azure İzleyici ve OpenTelemetry hakkında daha fazla bilgi edinmek için bkz . Azure İzleyici Örnek Uygulaması.
- OpenTelemetry ve topluluğu hakkında daha fazla bilgi edinmek için bkz . OpenTelemetry .NET GitHub deposu.
- Kullanım deneyimlerini etkinleştirmek için web veya tarayıcı kullanıcı izlemeyi etkinleştirin.
Sık sorulan sorular
Bu bölüm, sık sorulan soruların yanıtlarını sağlar.
OpenTelemetry nedir?
Gözlemlenebilirlik için yeni bir açık kaynak standardıdır. OpenTelemetry'de daha fazla bilgi edinin.
Microsoft Azure İzleyici neden OpenTelemetry'ye yatırım yapıyor?
Microsoft, OpenTelemetry'e en büyük katkıda bulunanlardandır.
OpenTelemetry'nin temel değer teklifleri, satıcıdan bağımsız olması ve diller arasında tutarlı API'ler/SDK'lar sağlamasıdır.
Zaman içinde OpenTelemetry'nin Azure İzleyici müşterilerinin desteklenen dillerimizin ötesindeki dillerde yazılmış uygulamaları gözlemleye olanak tanıyacağına inanıyoruz. Ayrıca zengin bir izleme kitaplıkları kümesi aracılığıyla toplayabileceğiniz veri türlerini de genişletir. Ayrıca, OpenTelemetry Yazılım Geliştirme Setleri (SDK'lar) öncülleri Application Insights SDK'larından daha yüksek ölçekte performans gösterme eğilimindedir.
Son olarak OpenTelemetry, Microsoft'un açık kaynak benimseme stratejisiyle uyumlu hale geliyor.
OpenTelemetry'nin durumu nedir?
"Azure İzleyici OpenTelemetry Distro" nedir?
Bunu, Azure'da birinci sınıf bir deneyim için tüm OpenTelemetry bileşenlerini bir araya getiren ince bir sarmalayıcı olarak düşünebilirsiniz. Bu sarmalayıcı OpenTelemetry'de dağıtım olarak da adlandırılır.
Neden "Azure İzleyici OpenTelemetry Distro" kullanmalıyım?
Azure İzleyici OpenTelemetry Dağıtımı'nı topluluktan yerel OpenTelemetry üzerinden kullanmanın çeşitli avantajları vardır:
- Etkinleştirme çabasını azaltır
- Microsoft tarafından desteklenir
- Aşağıdakiler gibi Azure'a özgü özellikleri getirir:
- Klasik Application Insights SDK'larıyla uyumlu örnekleme
- Microsoft Entra doğrulaması
- Çevrimdışı Depolama ve Otomatik Yeniden Denemeler
- statsbeat
- Application Insights Standart Ölçümleri
- Çeşitli Azure ortamlarında Bulut Rolü Adını ve Bulut Rolü Örneğini otomatik olarak doldurmaya yönelik kaynak meta verilerini algılama
- Canlı Ölçümler
OpenTelemetry ruhuyla dağıtımı açık ve genişletilebilir olacak şekilde tasarladık. Örneğin şunları ekleyebilirsiniz:
- OpenTelemetry Protokolü (OTLP) verme ve aynı anda ikinci bir hedefe gönderme
- Dağıtıma dahil olmayan diğer izleme kitaplıkları
Distro bir OpenTelemetry dağıtımı sağladığından, Distro OpenTelemetry tarafından desteklenen her şeyi destekler. Örneğin, OpenTelemetry destekliyorsa daha fazla telemetri işlemcisi, dışarı aktarıcı veya izleme kitaplığı ekleyebilirsiniz.
Not
Distro, örnekleyiciyi Application Insights için özel, sabit oranlı bir örnekleyiciye ayarlar. Bunu farklı bir örnekleyiciyle değiştirebilirsiniz, ancak bunu yapmak Distro'nun dahil edilen özelliklerinden bazılarını devre dışı bırakabilir. Desteklenen örnekleyici hakkında daha fazla bilgi için Azure İzleyici OpenTelemetry'yi Yapılandırma'nın Örneklemeyi Etkinleştirme bölümüne bakın.
Desteklenen tek başına OpenTelemetry vereni olmayan diller için Azure İzleyici OpenTelemetry Distro, OpenTelemetry'yi Azure İzleyici ile kullanmanın şu anda desteklenen tek yoludur. Desteklenen tek başına OpenTelemetry veren diller için, telemetri senaryonuza bağlı olarak Azure İzleyici OpenTelemetry Distro veya uygun tek başına OpenTelemetry verme işlemini kullanma seçeneğiniz vardır. Daha fazla bilgi için bkz. Azure İzleyici OpenTelemetry dışarı aktarmayı ne zaman kullanmalıyım?.
Azure İzleyici OpenTelemetry Dağıtımı'nı nasıl test ederim?
.NET, Java, JavaScript (Node.js) ve Python için etkinleştirme belgelerimize göz atın.
OpenTelemetry mi yoksa Application Insights SDK'sını mı kullanmalıyım?
Yalnızca Application Insights SDK'sında resmi destekle kullanılabilen bir özellik gerektirmediğiniz sürece OpenTelemetry Distro'sunu kullanmanızı öneririz.
OpenTelemetry'yi benimsemek artık daha sonraki bir tarihte geçiş yapılmasını engelliyor.
Azure İzleyici OpenTelemetry dışarı aktarmasını ne zaman kullanmalıyım?
ASP.NET Core, Java, Node.js ve Python için Azure İzleyici OpenTelemetry Distro kullanmanızı öneririz. Başlamak için bir kod satırıdır.
Klasik ASP.NET, konsol uygulamaları, Windows Forms (WinForms) vb. gibi diğer tüm .NET senaryoları için .NET Azure İzleyici OpenTelemetry dışarı aktarmayı kullanmanızı öneririz: Azure.Monitor.OpenTelemetry.Exporter
.
Gelişmiş yapılandırma gerektiren daha karmaşık Python telemetri senaryoları için Python Azure İzleyici OpenTelemetry Exporter'ı kullanmanızı öneririz.
Azure İzleyici OpenTelemetry Distro içindeki özelliklerin geçerli sürüm durumu nedir?
Aşağıdaki grafikte, her dil için OpenTelemetry özellik desteği gösterilmiştir.
Özellik | .NET | Node.js | Python | Java |
---|---|---|---|---|
Dağıtılmış izleme | ✅ | ✅ | ✅ | ✅ |
Özel ölçümler | ✅ | ✅ | ✅ | ✅ |
Standart ölçümler | ✅ | ✅ | ✅ | ✅ |
Sabit oranlı örnekleme | ✅ | ✅ | ✅ | ✅ |
Çevrimdışı depolama ve otomatik yeniden denemeler | ✅ | ✅ | ✅ | ✅ |
Özel durum raporlama | ✅ | ✅ | ✅ | ✅ |
Günlük koleksiyonu | ✅ | ⚠️ | ✅ | ✅ |
Özel Olaylar | ⚠️ | ⚠️ | ⚠️ | ✅ |
Microsoft Entra doğrulaması | ✅ | ✅ | ✅ | ✅ |
Canlı ölçümler | ✅ | ✅ | ✅ | ✅ |
Canlı Ölçüm Filtreleme | ❌ | ❌ | ❌ | ❌ |
VM/VMSS ve App Service için Kaynak Bağlamını Algılama | ✅ | ❌ | ✅ | ✅ |
Azure Kubernetes Service (AKS) ve İşlevleri için Kaynak Bağlamı Algılama | ❌ | ❌ | ❌ | ✅ |
Kullanılabilirliği İzle API'sini kullanarak oluşturulan Kullanılabilirlik Testi Olayları | ❌ | ❌ | ❌ | ✅ |
İstekleri, bağımlılıkları, günlükleri ve özel durumları anonim kullanıcı kimliğine ve yapay kaynağa göre filtreleme | ❌ | ❌ | ❌ | ✅ |
Bağımlılıkları, günlükleri ve özel durumları işlem adına göre filtreleme | ❌ | ❌ | ❌ | ✅ |
Uyarlamalı örnekleme | ❌ | ❌ | ❌ | ✅ |
Profil Oluşturucu | ✅ | ❌ | ❌ | ⚠️ |
Anlık Görüntü Hata Ayıklayıcı | ✅ | ❌ | ❌ | ❌ |
Anahtar
- ✅ Bu özellik resmi desteği olan tüm müşteriler tarafından kullanılabilir.
- ⚠️ Bu özellik genel önizleme olarak kullanılabilir. Bkz . Microsoft Azure önizlemeleri için ek kullanım koşulları.
- ❌ Bu özellik kullanılamaz veya geçerli değildir.
OpenTelemetry web tarayıcıları için kullanılabilir mi?
Evet, ancak bunu önermiyoruz ve Azure desteklemiyor. OpenTelemetry JavaScript, Node.js için yoğun olarak iyileştirilmiştir. Bunun yerine Application Insights JavaScript SDK'sını kullanmanızı öneririz.
OpenTelemetry SDK'sının web tarayıcılarında ne zaman kullanılabilir olmasını bekleyebiliriz?
OpenTelemetry web SDK'sının belirlenmiş bir kullanılabilirlik zaman çizelgesi yoktur. Application Insights JavaScript SDK'sına uygun bir alternatif olan tarayıcı SDK'sından muhtemelen birkaç yıl uzaktayız.
OpenTelemetry'yi bugün bir web tarayıcısında test edebilir miyim?
OpenTelemetry web korumalı alanı, OpenTelemetry'nin tarayıcıda çalışmasını sağlamak için tasarlanmış bir çataldır. Application Insights'a telemetri göndermek henüz mümkün değildir. SDK genel istemci olaylarını tanımlamaz.
Application Insights'ı AppDynamics, DataDog ve NewRelic gibi rakip aracılarla birlikte çalıştırmak destekleniyor mu?
Bu uygulama test veya desteklemeyi planladığımız bir uygulama değildir, ancak Dağıtımlarımız Azure İzleyici ile aynı anda bir OTLP uç noktasına dışarı aktarmanıza olanak sağlar.
Üretim ortamlarında önizleme özelliklerini kullanabilir miyim?
Bunu önermiyoruz. Bkz . Microsoft Azure önizlemeleri için ek kullanım koşulları.
El ile otomatik izleme arasındaki fark nedir?
Bkz. OpenTelemetry'ye Genel Bakış.
OpenTelemetry Toplayıcısı'nı kullanabilir miyim?
Microsoft henüz uygulama izleme için aracı tabanlı bir yaklaşımı resmi olarak desteklemese de bazı müşteriler openTelemetry Collector'ı aracı alternatifi olarak kullanır. Bu arada, açık kaynak topluluğu bazı müşterilerin Azure İzleyici Application Insights'a veri göndermek için kullandığı bir OpenTelemetry Collector Azure İzleyici Exporter'a katkıda bulundu. Bu, Microsoft tarafından desteklenmez.
OpenCensus ile OpenTelemetry arasındaki fark nedir?
OpenCensus, OpenTelemetry'nin öncüsüdür. Microsoft, OpenTracing ve OpenCensus'un bir araya getirerek dünya için tek bir gözlemlenebilirlik standardı olan OpenTelemetry'yi oluşturmasına yardımcı oldu. Azure İzleyici için üretim tarafından önerilen geçerli Python SDK'sı OpenCensus'a dayanır. Microsoft, OpenTelemetry temelinde Azure İzleyici oluşturmayı taahhüt etmiştir.
Sorun giderme
1. Adım: Tanılama günlüğünü etkinleştirme
Azure İzleyici Vereni, iç günlüğü için EventSource kullanır. Dışarı aktarıcı günlükleri, adlı OpenTelemetry-AzureMonitor-Exporter
kaynağı kabul ederek herhangi bir EventListener tarafından kullanılabilir. Sorun giderme adımları için bkz . GitHub'da OpenTelemetry Sorun Giderme .
2. Adım: Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme
Application Insights SDK'ları ve aracıları, alma uç noktalarımızda REST çağrıları olarak alınabilmek için telemetri gönderir. Web sunucunuzdan veya uygulama ana bilgisayarınızdan alma hizmeti uç noktalarına bağlantıyı test etmek için cURL komutlarını veya PowerShell'den ham REST isteklerini kullanın. Daha fazla bilgi için bkz . Azure İzleyici Application Insights'ta eksik uygulama telemetrisi sorunlarını giderme.
Bilinen sorunlar
Aşağıdaki öğeler, Azure İzleyici OpenTelemetry Exporters için bilinen sorunlardır:
Bağımlılık telemetrisinde işlem adı eksik. Eksik işlem adı hatalara neden olur ve performans sekmesi deneyimini olumsuz etkiler.
cihaz modeli istek ve bağımlılık telemetrisinde eksik. Eksik cihaz modeli, cihaz kohort analizini olumsuz etkiler.
Destek
Destek seçeneklerini keşfetmek için istediğiniz dil için bir sekme seçin.
- Azure desteği sorunlar için bir Azure desteği bileti açın.
- OpenTelemetry sorunları için doğrudan OpenTelemetry .NET topluluğuna başvurun.
- Azure İzleyici Dışarı Aktarma ile ilgili açık sorunların listesi için GitHub Sorunları Sayfasına bakın.
OpenTelemetry geri bildirimi
Geri bildirim sağlamak için:
- OpenTelemetry topluluğunun müşteri geri bildirim anketini doldurun.
- OpenTelemetry Early Adopter Community'ye katılarak Microsoft'a kendinizi anlatın.
- Microsoft Teknoloji Topluluğu'ndaki diğer Azure İzleyici kullanıcılarıyla etkileşime geçin.
- Azure Geri Bildirim Forumu'nda bir özellik isteğinde bulunın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin