Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 24815|Yanıt: 1

[ASP.NET] ASP.NET Çekirdek Bağlantı Takip (3) SkyAPM, Konsolos dinamik yapılandırmasına dayanır

[Bağlantıyı kopyala]
2020-11-11 tarihinde 16:13:50 tarihinde yayınlandı | | | |
Eleştiri:

ASP.NET Çekirdek Bağlantı Takibi (1) Skywalking eğitimini yükleyin
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Çekirdek bağlantı izleme (2) SkyAPM entegrasyonunu kullanır
https://www.itsvse.com/thread-9458-1-1.html



proje, kullanabilirsinizKonsolosveyaApolloYapılandırma merkezini yapmak için, Consul'un ASP.NET Core yapılandırma merkezi olarak eğitim alması:

Mimari: ASP.NET Core, Consul'a dayalı sıcak güncellemeleri dinamik olarak yapılar
https://www.itsvse.com/thread-9421-1-1.html
Gereksinimler: APM'nin yapılandırma bilgilerini Consul ara yazılımında saklarız, böylece appsettings.json dosyasındaki yapılandırma bilgilerini manuel olarak değiştirmek için sunucuya giriş yapmamıza gerek kalmaz.

Başlat Konsolos

Konsol ara yazılımını başlatmak için önce aşağıdaki komutu kullanın:




Consul ile ilgili eklentileri ASP.NET Core kur

Sky-apm-demo projemizde, yapılandırma merkezini okumak için eklenti olarak Consul middleware'i aşağıdaki komutla nuget ile yükleyin:

Program nesnesinde CreateHostBuilder yöntemini uzak Konsolos yapılandırma bilgilerinin okunmasını eklemek için değiştirin, kod şu şekildedir:

Bu arada, appsettings.json dosyasında consul_url adresini aşağıdaki gibi yapılandırmanız gerekir:



Web yönetim platformunu açmak için yapılandırma bilgilerimizi konsoloya ekleyin:Bağlantı girişi görünür.Sky-APM-demo/appsettings oluşturmak için. Development.json anahtar değeri şu şekildedir:



Konsolos hizmet yapılandırmamızın bilgilerini okumak için aşağıdaki gibi yeni bir test3 kontrolcü yöntemi oluşturun:

ErişimBağlantı girişi görünür.Normalde ayarladığımız konfigürasyonu aşağıdaki gibi alabilirsiniz:



skyapm-20201111.log kayıtlarına baktığınızda, SkyApm'in Skywalking'e eriştiği adresin bizim yapılandırmamız olmadığını göreceksiniz, ancakVarsayılan: localhost:11800, aşağıdaki şekilde gösterildiği gibi:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Bilgi] SkyApm.Transport.Grpc.ConnectionManager : Kapatma bağlantısı[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Hata] SkyApm.Transport.Grpc.ConnectionManager : Sunucu zaman aşımını bağlayın.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 son tarihi)
   Grpc.Core.Channel.ConnectAsync adresinde(Nullable'1 son tarihi)
   SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync() adresinde
GitHub'da SkyAPM.Agent.AspNetCore kaynak kodunu kontrol ediyoruz ve programımız önce varsayılan ayarları atayıp ardından yapılandırma dosyasını appsettings.json skywalking.json skyapm.json okursa, önceki varsayılan değerleri geçersiz kılmak için okursa, aşağıdaki şekilde gösterildiği gibi:



Konfigürasyon ile ilgili olarak, yükleme süreci şu şekildedir:



Peki SkyAPM, Skywalking ile ne zaman iletişim kurdu?



SkyAPM kaynak kodu, IHostedService kaydedilirken InstrumentationHostedService arka plan görevine sahiptir,.NET Core, uygulama başlatma ve durdurma sırasında sırasıyla IHostedService tipindeki StartAsync() ve StopAsync() metodlarını çağırır

Başvurabilirsiniz:

Linux'ta .NET Core tabanlı bir hizmet
https://www.itsvse.com/thread-9447-1-1.html
Şimdi sorun, konsolosumuz tarafından belirlenen yapılandırma bilgilerinin varsayılan değeri SkyAPM tarafından üzerine yazılması ve bu sorunu çözmek için kaynak kodunu değiştirmemiz gerekiyor, SkyAPM kaynak kodunu GitHub'dan indiriyoruz.

ConfigurationFactory dosyasını aşağıdaki gibi değiştirin:

ConfigurationBuilderExtensions dosyasını aşağıdaki şekilde değiştirin:

Değiştirilmiş kaynak kodu için şubeme başvurabilirsiniz:Bağlantı girişi görünür.

Ek mantıksal yargı olarak, SkyAPM yapılandırması zaten var olduğunda varsayılan değeri kullanmaz,Yeniden Doğurmasky-apm-demo ve SkyApm.Agent.AspNetCore projeleri, değiştirilmiş \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 kütüphanesindeki tüm dosyaları \bin\Debug\netcoreapp3.1 projemize kopyalayın ve yerine koyun.Tarayıcınızı yenileyin

APM kayıtlarına bakarak, consul'daki yapılandırma bilgilerinin başarıyla okunduğunu ve Skywalking ile iletişimin başarıyla kurulduğunu görebilirsiniz; aşağıdaki şekilde gösterilmiştir:




(Son)




Önceki:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Önümüzdeki:.NET Core, kayıtlı servisleri ve uygulamaları ile bunların yaşam döngülerini gösterir
2023-6-2 tarihinde 14:24:31 tarihinde yayınlandı |
İyi bir çıkartma
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com