Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 24815|Atbildi: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM ir balstīts uz Consul dinamisko konfigurāciju

[Kopēt saiti]
Publicēts 2020-11-11 16:13:50 | | | |
Pārskats:

ASP.NET Core Link Tracing (1) Instalējiet Skywalking apmācību
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core saišu izsekošana (2) izmanto SkyAPM integrāciju
https://www.itsvse.com/thread-9458-1-1.html



projektu, varat to izmantotKonsulsvaiApolloLai veiktu konfigurācijas centru, apmācība par konsulu kā ASP.NET Core konfigurācijas centru:

Arhitektūra: ASP.NET Core dinamiski konfigurē karstos atjauninājumus, pamatojoties uz Consul
https://www.itsvse.com/thread-9421-1-1.html
Prasības: Mēs glabājam APM konfigurācijas informāciju Consul starpprogrammatūrā, tāpēc mums nav jāpiesakās serverī, lai manuāli modificētu konfigurācijas informāciju appsettings.json failā.

Sākt konsulu

Startējiet konsula starpprogrammatūru, vispirms izmantojot šādu komandu:




Instalējiet ar Consul saistītus spraudņus ASP.NET Core

Mūsu sky-apm-demo projektā izmantojiet nuget, lai instalētu Consul starpprogrammatūru kā spraudni konfigurācijas centra lasīšanai ar šādu komandu:

Modificējiet CreateHostBuilder metodi programmas objektā, lai pievienotu attālā konsula konfigurācijas informācijas lasīšanu, kods ir šāds:

Tikmēr appsettings.json failā consul_url adrese ir jākonfigurē šādi:



Pievienojiet mūsu konfigurācijas informāciju konsulam, lai atvērtu tīmekļa pārvaldības platformu:Hipersaites pieteikšanās ir redzama., lai izveidotu sky-apm-demo/appsettings. Development.json atslēgas vērtība ir šāda:



Izveidojiet jaunu test3 kontroliera metodi, lai nolasītu mūsu konsula dienesta konfigurācijas informāciju ērtai testēšanai, šādi:

PiekļuveHipersaites pieteikšanās ir redzama.Jūs varat iegūt konfigurāciju, ko mēs iestatījām parasti, šādi:



Aplūkojot skyapm-20201111.log žurnālus, jūs atradīsiet, ka adrese, kurā SkyApm piekļūst Skywalking, nav tā, ko mēs konfigurējām, betNoklusējums: localhost:11800, kā parādīts attēlā:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informācija] SkyApm.Transport.Grpc.ConnectionManager : Izslēgšanas savienojums[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Kļūda] SkyApm.Transport.Grpc.ConnectionManager : Savienojuma izveides servera taimauts.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   vietnē Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 termiņš)
   pie Grpc.Core.Channel.ConnectAsync(Nullable'1 termiņš)
   vietnē SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Mēs pārbaudām SkyAPM.Agent.AspNetCore avota kodu vietnē GitHub un konstatējam, ka, ja mūsu programma vispirms piešķir noklusējuma iestatījumus un pēc tam nolasa konfigurācijas failu appsettings.json skywalking.json skyapm.json, lai ignorētu iepriekšējās noklusējuma vērtības, kā parādīts attēlā:



Attiecībā uz konfigurāciju iekraušanas process ir šāds:



Tātad, kad SkyAPM izveidoja saziņu ar Skywalking?



SkyAPM avota kodam ir InstrumentationHostedService fona uzdevums, reģistrējot IHostedService,.NET Core izsauc attiecīgi IHostedService tipa metodes StartAsync() un StopAsync() lietojumprogrammas startēšanas un apturēšanas laikā

Jūs varat atsaukties:

Pakalpojums, kura pamatā ir .NET Core operētājsistēmā Linux
https://www.itsvse.com/thread-9447-1-1.html
Tagad problēma ir tā, ka mūsu konsula iestatītā konfigurācijas informācija tiek pārrakstīta ar SkyAPM noklusējuma vērtību, un, lai atrisinātu šo problēmu, mums ir jāmaina avota kods, mēs lejupielādējam SkyAPM avota kodu vietnē GitHub.

Modificējiet ConfigurationFactory failu šādi:

Modificējiet failu ConfigurationBuilderExtensions šādi:

Lai iegūtu modificēto avota kodu, varat atsaukties uz manu filiāli:Hipersaites pieteikšanās ir redzama.

Pievienots loģiskais spriedums, kad SkyAPM konfigurācija jau pastāv, neizmanto noklusējuma vērtību,Atjaunotsky-apm-demo un SkyApm.Agent.AspNetCore projekti, kopējiet visus failus modificētajā bibliotēkā \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 uz mūsu projektu \bin\Debug\netcoreapp3.1 un nomainiet tos.Pārlūkprogrammas atsvaidzināšana

Aplūkojot apm žurnālus, jūs varat konstatēt, ka konfigurācijas informācija konsulā ir veiksmīgi nolasīta un saziņa ar Skywalking ir veiksmīgi izveidota, kā parādīts zemāk redzamajā attēlā:




(Beigas)




Iepriekšējo:. .NET MySQL savienotāja konflikti DbProviderFactories (.NET MySQL savienotāja konflikti DbP...
Nākamo:.NET Core parāda reģistrētos pakalpojumus un implementācijas, kā arī to dzīves ciklus
Publicēts 2023-6-2 14:24:31 |
Laba uzlīme
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com