Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 24815|Svar: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM er baseret på Consuls dynamiske konfiguration

[Kopier link]
Opslået den 11-11-2020 16:13:50 | | | |
Anmeldelse:

ASP.NET Core Link Tracing (1) Installer Skywalking-tutorialen
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core link tracing (2) bruger SkyAPM-integration
https://www.itsvse.com/thread-9458-1-1.html



projekt, du kan bruge detKonsulellerApolloFor at lave konfigurationscentret, en vejledning om Consul som et ASP.NET Core konfigurationscenter:

Arkitektur: ASP.NET Core konfigurerer dynamisk hot updates baseret på Consul
https://www.itsvse.com/thread-9421-1-1.html
Krav: Vi gemmer konfigurationsinformationen for APM i Consul-middleware, så vi ikke behøver at logge ind på serveren for manuelt at ændre konfigurationsoplysningerne i appsettings.json-filen.

Start Consul

Start consul-middleware ved først at bruge følgende kommando:




Installer Consul-relaterede plugins ASP.NET Core

I vores sky-apm-demo-projekt bruger du nuget til at installere Consul-middleware som et plugin til at læse konfigurationscentret med følgende kommando:

Modificerer CreateHostBuilder-metoden i Program-objektet for at tilføje læsning af fjern Consul-konfigurationsinformation, koden er som følger:

I mellemtiden skal du i appsettings.json-filen konfigurere consul_url-adressen som følger:



Tilføj vores konfigurationsinformation til Consul for at åbne webadministrationsplatformen:Hyperlink-login er synlig.For at oprette sky-apm-demo/appsettings. Development.json nøglen er værdien som følger:



Opret en ny test3-controllermetode til at læse informationen om vores konsulservicekonfiguration for nem testning, som følger:

AdgangHyperlink-login er synlig.Du kan få den konfiguration, vi normalt sætter, som følger:



Hvis du kigger på skyapm-20201111.log logfiler, vil du opdage, at adressen, hvor SkyApm tilgår Skywalking, ikke er den, vi har konfigureret, menStandard: localhost:11800, som vist i figuren nedenfor:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Information] SkyApm.Transport.Grpc.ConnectionManager : Nedlukning forbindelse[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Fejl] SkyApm.Transport.Grpc.ConnectionManager : Tilslut server-timeout.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   på Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 deadline)
   på Grpc.Core.Channel.ConnectAsync (Nullable'1 deadline)
   på SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Vi tjekker SkyAPM.Agent.AspNetCore-kildekoden på GitHub og ser, at hvis vores program først tildeler standardindstillingerne og derefter læser konfigurationsfilen, appsettings.json skywalking.json skyapm.json for at tilsidesætte de tidligere standardværdier, som vist i figuren nedenfor:



Med hensyn til konfigurationen er indlæsningsprocessen som følger:



Så hvornår etablerede SkyAPM kommunikation med Skywalking?



SkyAPM-kildekoden har en InstrumentationHostedService-baggrundsopgave, når IHostedService registreres,.NET Core kalder StartAsync() og StopAsync()-metoderne af typen IHostedService under applikationsstart og -stop

Du kan henvise til:

En tjeneste baseret på .NET Core på Linux
https://www.itsvse.com/thread-9447-1-1.html
Problemet nu er, at konfigurationsinformationen, som vores konsul har sat, bliver overskrevet af standardværdien SkyAPM, og for at løse dette problem skal vi ændre kildekoden, vi downloader SkyAPM-kildekoden på GitHub.

Ændr ConfigurationFactory-filen som følger:

Ændr ConfigurationBuilderExtensions-filen som følger:

For den ændrede kildekode kan du henvise til min gren:Hyperlink-login er synlig.

Tilføjet logisk vurdering, når SkyAPM-konfigurationen allerede eksisterer, ikke bruger standardværdien,Regenerersky-apm-demo og SkyApm.Agent.AspNetCore-projekterne, kopier alle filerne under det modificerede bibliotek \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 mappe til vores projekt \bin\Debug\netcoreapp3.1 og erstatter dem.Opdater din browser

Ved at se på APM-loggene kan du se, at konfigurationsinformationen i Consul er blevet læst med succes, og at kommunikationen med Skywalking er etableret, som vist i figuren nedenfor:




(Slut)




Tidligere:. .NET MySQL Connector konflikter DbProviderFactories (.NET MySQL Connector konflikter med DbP...
Næste:.NET Core viser registrerede tjenester og implementeringer samt deres livscyklusser
Opslået den 2023-6-2 14:24:31 |
God klistermærke
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com