Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 24815|Svare: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM er basert på Consul dynamisk konfigurasjon

[Kopier lenke]
Publisert 2020-11-11 16:13:50 | | | |
Anmeldelse:

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

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



prosjekt, kan du bruke detKonsulellerApolloFor å gjøre konfigurasjonssenteret, en veiledning om Consul som et ASP.NET Core konfigurasjonssenter:

Arkitektur: ASP.NET Core konfigurerer dynamisk hot-oppdateringer basert på Consul
https://www.itsvse.com/thread-9421-1-1.html
Krav: Vi lagrer konfigurasjonsinformasjonen til APM i Consul-mellomvaren, slik at vi slipper å logge inn på serveren for å manuelt endre konfigurasjonsinformasjonen i appsettings.json-filen.

Start Consul

Start consul-mellomvaren ved først å bruke følgende kommando:




Installer Consul-relaterte plugins ASP.NET Core

I vårt sky-apm-demoprosjekt bruker du nuget for å installere Consul-mellomvaren som en plugin for å lese konfigurasjonssenteret med følgende kommando:

Endre CreateHostBuilder-metoden i Program-objektet for å legge til lesing av ekstern Consul-konfigurasjonsinformasjon, koden er som følger:

I mellomtiden må du i appsettings.json-filen konfigurere consul_url-adressen, som følger:



Legg til konfigurasjonsinformasjonen vår i Consul for å åpne webadministrasjonsplattformen:Innloggingen med hyperkoblingen er synlig.For å lage sky-apm-demo/appsettings. Development.json nøkkelen er verdien som følger:



Opprett en ny test3-kontrollermetode for å lese informasjonen om konfigurasjonen av vår konsultjeneste for enkel testing, som følger:

AdkomstInnloggingen med hyperkoblingen er synlig.Du kan få konfigurasjonen vi setter normalt, som følger:



Når du ser på skyapm-20201111.log-loggene, vil du se at adressen der SkyApm får tilgang til Skywalking ikke er den vi har konfigurert, menStandard: localhost:11800, som vist i figuren nedenfor:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informasjon] SkyApm.Transport.Grpc.ConnectionManager : Nedstengt tilkobling[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Feil] SkyApm.Transport.Grpc.ConnectionManager: Tilkoblingsserver tidsavbrudd.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   på Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, nullable'1 frist)
   på Grpc.Core.Channel.ConnectAsync (Nullable'1 frist)
   på SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Vi sjekker kildekoden til SkyAPM.Agent.AspNetCore på GitHub og finner ut at hvis programmet vårt først tildeler standardinnstillingene, og deretter leser konfigurasjonsfilen, appsettings.json skywalking.json skyapm.json for å overstyre de tidligere standardverdiene, som vist i figuren under:



Når det gjelder konfigurasjonen, er lasteprosessen som følger:



Så når etablerte SkyAPM kommunikasjon med Skywalking?



SkyAPM-kildekoden har en InstrumentationHostedService-bakgrunnsoppgave, når IHostedService registreres,.NET Core kaller henholdsvis StartAsync() og StopAsync()-metodene av typen IHostedService under applikasjonsstart og -stopp

Du kan referere til:

En tjeneste basert på .NET Core på Linux
https://www.itsvse.com/thread-9447-1-1.html
Problemet nå er at konfigurasjonsinformasjonen satt av vår konsul blir overskrevet av standardverdien SkyAPM, og for å løse dette må vi endre kildekoden, vi laster ned SkyAPM-kildekoden på GitHub.

Endre ConfigurationFactory-filen som følger:

Endre ConfigurationBuilderExtensions-filen som følger:

For den modifiserte kildekoden kan du se på min gren:Innloggingen med hyperkoblingen er synlig.

Ekstra logisk vurdering, når SkyAPM-konfigurasjonen allerede eksisterer, ikke bruker standardverdien,Regenerersky-apm-demo og SkyApm.Agent.AspNetCore-prosjektene, kopierer alle filene under den modifiserte bibliotekmappen \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 til prosjektet vårt \bin\Debug\netcoreapp3.1 og erstatter dem.Oppdater nettleseren din

Ved å se på APM-loggene kan du se at konfigurasjonsinformasjonen i consul er blitt lest og at kommunikasjonen med Skywalking er etablert, som vist i figuren nedenfor:




(Slutt)




Foregående:. .NET MySQL Connector-konflikter DbProviderFactories (.NET MySQL Connector-konflikter DbP...
Neste:.NET Core viser registrerte tjenester og implementasjoner og deres livssykluser
Publisert 2023-6-2 14:24:31 |
Godt klistremerke
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com