Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 24815|Atsakyti: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM yra pagrįstas Consul dinamine konfigūracija

[Kopijuoti nuorodą]
Publikuota: 2020-11-11 16:13:50 | | | |
Peržiūra:

ASP.NET Core Link Tracing (1) Įdiekite "Skywalking" mokymo programą
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core nuorodų sekimas (2) naudoja SkyAPM integraciją
https://www.itsvse.com/thread-9458-1-1.html



projektas, galite jį naudotiKonsulasarbaApolonasNorėdami atlikti konfigūracijos centrą, pamoka apie konsulą kaip ASP.NET Core konfigūracijos centrą:

Architektūra: "ASP.NET Core" dinamiškai konfigūruoja karštuosius naujinimus pagal konsulą
https://www.itsvse.com/thread-9421-1-1.html
Reikalavimai: Mes saugome APM konfigūracijos informaciją Consul tarpinėje programinėje įrangoje, todėl mums nereikia prisijungti prie serverio, kad rankiniu būdu modifikuotume konfigūracijos informaciją appsettings.json faile.

Pradėti konsulas

Paleiskite konsulo tarpinę programinę įrangą pirmiausia naudodami šią komandą:




Įdiekite su "Consul" susijusius papildinius ASP.NET Core

Mūsų sky-apm-demo projekte naudokite nuget, kad įdiegtumėte "Consul" tarpinę programinę įrangą kaip papildinį, skirtą skaityti konfigūracijos centrą naudodami šią komandą:

Modifikuokite CreateHostBuilder metodą programos objekte Norėdami pridėti nuotolinio konsulo konfigūracijos informacijos skaitymą, kodas yra toks:

Tuo tarpu appsettings.json faile turite sukonfigūruoti consul_url adresą taip:



Pridėkite mūsų konfigūracijos informaciją konsului, kad atidarytumėte žiniatinklio valdymo platformą:Hipersaito prisijungimas matomas., kad sukurtumėte sky-apm-demo/appsettings. Development.json rakto vertė yra tokia:



Sukurkite naują test3 valdiklio metodą, kad galėtumėte nuskaityti mūsų konsulo tarnybos konfigūracijos informaciją, kad būtų lengva testuoti, taip:

PrieigaHipersaito prisijungimas matomas.Galite gauti įprastą konfigūraciją taip:



Pažvelgę į skyapm-20201111.log žurnalus, pamatysite, kad adresas, kuriame "SkyApm" pasiekia "Skywalking", yra ne toks, kokį sukonfigūravome, oNumatytasis: localhost:11800, kaip parodyta toliau pateiktame paveikslėlyje:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informacija] SkyApm.Transport.Grpc.ConnectionManager : Išjungimo ryšys[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Klaida] SkyApm.Transport.Grpc.ConnectionManager : Prisijungimo serverio skirtasis laikas.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   adresu Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 terminas)
   Grpc.Core.Channel.ConnectAsync(Nullable'1 terminas)
   adresu SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Mes patikriname "SkyAPM.Agent.AspNetCore" šaltinio kodą "GitHub" ir nustatome, kad jei mūsų programa pirmiausia priskiria numatytuosius nustatymus, o tada nuskaito konfigūracijos failą appsettings.json skywalking.json skyapm.json nepaisyti ankstesnių numatytųjų reikšmių, kaip parodyta paveikslėlyje žemiau:



Kalbant apie konfigūraciją, pakrovimo procesas yra toks:



Taigi, kada "SkyAPM" užmezgė ryšį su "Skywalking"?



SkyAPM šaltinio kodas turi InstrumentationHostedService foninę užduotį, registruojant IHostedService,.NET Core iškviečia atitinkamai IHostedService tipo StartAsync() ir StopAsync() metodus programos paleidimo ir sustabdymo metu

Galite nurodyti:

Paslauga, pagrįsta ".NET Core" sistemoje "Linux".
https://www.itsvse.com/thread-9447-1-1.html
Dabar problema ta, kad mūsų konsulo nustatyta konfigūracijos informacija yra perrašyta numatytąja "SkyAPM" reikšme, o norėdami išspręsti šią problemą, turime pakeisti šaltinio kodą, atsisiunčiame "SkyAPM" šaltinio kodą iš "GitHub".

Pakeiskite "ConfigurationFactory" failą taip:

Pakeiskite failą ConfigurationBuilderExtensions taip:

Dėl modifikuoto šaltinio kodo galite kreiptis į mano filialą:Hipersaito prisijungimas matomas.

Pridėtas loginis sprendimas, kai SkyAPM konfigūracija jau yra, nenaudoja numatytosios reikšmės,Regeneruotisky-apm-demo ir SkyApm.Agent.AspNetCore projektus, nukopijuokite visus failus pagal modifikuotą biblioteką \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 į mūsų projektą \bin\Debug\netcoreapp3.1 ir pakeiskite juos.Atnaujinkite naršyklę

Pažvelgę į apm žurnalus, galite pastebėti, kad konsulo konfigūracijos informacija buvo sėkmingai perskaityta ir sėkmingai užmegztas ryšys su "Skywalking", kaip parodyta paveikslėlyje žemiau:




(Pabaiga)




Ankstesnis:. .NET MySQL jungties konfliktai DbProviderFactories (.NET MySQL jungties konfliktai DbP...
Kitą:.NET Core rodo registruotas paslaugas ir diegimus bei jų gyvavimo ciklus
Publikuota: 2023-6-2 14:24:31 |
Geras lipdukas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com