Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 24815|Odgovoriti: 1

[ASP.NET] ASP.NET Sledenje jedrnim povezavam (3) SkyAPM temelji na dinamični konfiguraciji Consul

[Kopiraj povezavo]
Objavljeno 2020-11-11 ob 16:13:50 | | | |
Pregled:

ASP.NET Sledenje jedru povezav (1) Namesti Skywalking vodič
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Osnovno sledenje povezavam (2) uporablja integracijo SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



projekt, lahko ga uporabišKonzulaliApolloZa izdelavo konfiguracijskega centra vodič o Consulu kot ASP.NET osnovnem konfiguracijskem centru:

Arhitektura: ASP.NET Core dinamično konfigurira vroče posodobitve na podlagi Consula
https://www.itsvse.com/thread-9421-1-1.html
Zahteve: Konfiguracijske informacije APM shranjujemo v Consul middleware, tako da se nam ni treba prijaviti na strežnik in ročno spreminjati konfiguracijske podatke v appsettings.json datoteki.

Začni kot konzul

Začnite consul middleware tako, da najprej uporabite naslednji ukaz:




Namestite Consul povezane vtičnike ASP.NET jedro

V našem projektu sky-apm-demo uporabite nuget za namestitev Consul middleware kot vtičnika za branje konfiguracijskega centra z naslednjim ukazom:

Spremenite metodo CreateHostBuilder v objektu Program, da dodate branje oddaljenih konfiguracijskih informacij Consul, koda je naslednja:

Medtem morate v appsettings.json datoteki nastaviti naslov consul_url, kot sledi:



Dodajte naše konfiguracijske podatke v consul, da odprete platformo za upravljanje spletnih strani:Prijava do hiperpovezave je vidna.Za ustvarjanje sky-apm-demo/appsettings. Development.json ključu je vrednost naslednja:



Ustvarite novo test3 krmilno metodo za branje informacij o naši konfiguraciji consul storitev za enostavno testiranje, kot sledi:

DostopPrijava do hiperpovezave je vidna.Konfiguracijo, ki jo običajno nastavimo, lahko dobimo na naslednji način:



Če pogledate skyapm-20201111.log dnevnike, boste ugotovili, da naslov, kjer SkyApm dostopa do Skywalkinga, ni tisti, ki smo ga konfigurirali, vendarPrivzeto: localhost:11800, kot je prikazano na spodnji sliki:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informacije] SkyApm.Transport.Grpc.ConnectionManager : Izklop povezave[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Napaka] SkyApm.Transport.Grpc.ConnectionManager : Časovna omejitev strežnika za povezavo.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   na Grpc.Core.Channel.WaitForStateChangedAsync(Stanje kanala zadnjičOpazovanostanje, Nullable'1 deadline)
   na Grpc.Core.Channel.ConnectAsync(Nullable'1 deadline)
   na SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Preverimo izvorno kodo SkyAPM.Agent.AspNetCore na GitHubu in ugotovimo, da če naš program najprej dodeli privzete nastavitve, nato pa prebere konfiguracijsko datoteko, appsettings.json skywalking.json skyapm.json preglasiti prejšnje privzete vrednosti, kot je prikazano na spodnji sliki:



Kar zadeva konfiguracijo, je postopek nalaganja naslednji:



Kdaj je SkyAPM vzpostavil komunikacijo s Skywalkingom?



Izvorna koda SkyAPM ima ozadje naloge InstrumentationHostedService ob registraciji IHostedService,.NET Core kliče metode StartAsync() in StopAsync() tipa IHostedService med zagonom in ustavljanjem aplikacije

Lahko se sklicujete na:

Storitev, ki temelji na .NET Core na Linuxu
https://www.itsvse.com/thread-9447-1-1.html
Težava je zdaj v tem, da so konfiguracijske informacije, ki jih je določil naš konzul, prepisane z privzeto vrednostjo SkyAPM, in da bi rešili ta problem, moramo spremeniti izvorno kodo, torej prenesemo izvorno kodo SkyAPM na GitHub.

Datoteko ConfigurationFactory spremenite na naslednji način:

Datoteko ConfigurationBuilderExtensions spremenite na naslednji način:

Za spremenjeno izvorno kodo lahko pogledate mojo vejo:Prijava do hiperpovezave je vidna.

Dodatna logična presoja, ko konfiguracija SkyAPM že obstaja, ne uporablja privzete vrednosti,Regenerateprojekte sky-apm-demo in SkyApm.Agent.AspNetCore, kopirajte vse datoteke iz spremenjene knjižnice \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 v naš projekt \bin\Debug\netcoreapp3.1 in jih zamenjajte.Osvežite svoj brskalnik

Z ogledom apm dnevnikov lahko ugotovite, da so bile konfiguracijske informacije v consulu uspešno prebrane in da je bila komunikacija s Skywalking uspešno vzpostavljena, kot je prikazano na spodnji sliki:




(Konec)




Prejšnji:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Naslednji:.NET Core prikazuje registrirane storitve in implementacije ter njihove življenjske cikle
Objavljeno 2023-6-2 ob 14:24:31 |
Dobra nalepka
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com