Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 24815|Svar: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM baseras på Consuls dynamiska konfiguration

[Kopiera länk]
Publicerad den 2020-11-11 16:13:50 | | | |
Recension:

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

ASP.NET Core länkspårning (2) använder SkyAPM-integration
https://www.itsvse.com/thread-9458-1-1.html



projekt, du kan använda detKonsulellerApolloFör att göra konfigurationscentret, en handledning om Consul som ett ASP.NET Core-konfigurationscenter:

Arkitektur: ASP.NET Core konfigurerar dynamiskt heta uppdateringar baserat på Consul
https://www.itsvse.com/thread-9421-1-1.html
Krav: Vi lagrar konfigurationsinformationen för APM i Consuls middleware, så vi behöver inte logga in på servern för att manuellt ändra konfigurationsinformationen i appsettings.json-filen.

Start Consul

Starta consul-middleware genom att först använda följande kommando:




Installera Consul-relaterade plugins ASP.NET Core

I vårt sky-apm-demo-projekt, använd nuget för att installera Consul-middleware som ett plugin för att läsa konfigurationscentret med följande kommando:

Modifiera metoden CreateHostBuilder i Program-objektet för att lägga till läsning av fjärrkonfigurationsinformation för Consul, koden är följande:

Under tiden måste du konfigurera consul_url adressen i appsettings.json-filen enligt följande:



Lägg till vår konfigurationsinformation i Consul för att öppna webbhanteringsplattformen:Inloggningen med hyperlänken är synlig.För att skapa sky-apm-demo/appsettings. Development.json nyckeln är värdet följande:



Skapa en ny test3-controllermetod för att läsa informationen om vår konsulservicekonfiguration för enkel testning, enligt följande:

TillgångInloggningen med hyperlänken är synlig.Du kan få den konfiguration vi normalt ställer in, enligt följande:



Om du tittar på skyapm-20201111.log loggar ser du att adressen där SkyApm använder Skywalking inte är den vi konfigurerade, menStandard: localhost:11800, som visas i figuren nedan:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Information] SkyApm.Transport.Grpc.ConnectionManager : Stäng av anslutning[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Fel] SkyApm.Transport.Grpc.ConnectionManager: Anslutningsserver-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 kontrollerar källkoden SkyAPM.Agent.AspNetCore på GitHub och ser att om vårt program först tilldelar standardinställningarna och sedan läser konfigurationsfilen appsettings.json skywalking.json skyapm.json för att åsidosätta de tidigare standardvärdena, som visas i figuren nedan:



När det gäller konfigurationen är laddningsprocessen följande:



Så när etablerade SkyAPM kommunikation med Skywalking?



SkyAPM-källkoden har en bakgrundsuppgift InstrumentationHostedService vid registrering av IHostedService,.NET Core anropar StartAsync() och StopAsync()-metoderna av typen IHostedService under applikationsstart respektive stopp

Du kan hänvisa till:

En tjänst baserad på .NET Core på Linux
https://www.itsvse.com/thread-9447-1-1.html
Problemet nu är att konfigurationsinformationen som vår konsul ställt in skrivs över av standardvärdet för SkyAPM, och för att lösa detta måste vi ändra källkoden, vi laddar ner SkyAPM-källkoden på GitHub.

Modifiera ConfigurationFactory-filen enligt följande:

Modifiera filen ConfigurationBuilderExtensions enligt följande:

För den modifierade källkoden kan du hänvisa till min avdelning:Inloggningen med hyperlänken är synlig.

Ytterligare logisk bedömning, när SkyAPM-konfigurationen redan existerar, använder inte standardvärdet,Regenererasky-apm-demo och SkyApm.Agent.AspNetCore-projekten, kopiera alla filer under den modifierade bibliotekmappen \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 till vårt projekt \bin\Debug\netcoreapp3.1 och ersätt dem.Uppdatera din webbläsare

Genom att titta på APM-loggarna kan du se att konfigurationsinformationen i Consul har lästs framgångsrikt och kommunikationen med Skywalking har etablerats, som visas i figuren nedan:




(Slut)




Föregående:. .NET MySQL Connector konflikter DbProviderFactories (.NET MySQL Connector konflikter med DbP...
Nästa:.NET Core visar registrerade tjänster och implementationer samt deras livscykler
Publicerad 2023-6-2 14:24:31 |
Bra klistermärke
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com