Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 24815|Vastaus: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM perustuu Consulin dynaamiseen konfiguraatioon

[Kopioi linkki]
Julkaistu 2020-11-11 klo 16:13:50 | | | |
Arvostelu:

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

ASP.NET Ydinlinkin jäljitys (2) käyttää SkyAPM-integraatiota
https://www.itsvse.com/thread-9458-1-1.html



projekti, voit käyttää sitäKonsulitaiApolloKonfiguraatiokeskuksen tekemiseen löytyy opas Consulista ASP.NET Core -konfiguraatiokeskuksena:

Arkkitehtuuri: ASP.NET Core konfiguroi dynaamisesti kuumia päivityksiä Consulin perusteella
https://www.itsvse.com/thread-9421-1-1.html
Vaatimukset: Tallennamme APM:n konfiguraatiotiedot Consulin middlewareen, joten meidän ei tarvitse kirjautua palvelimelle muuttaaksemme appsettings.json-tiedoston konfiguraatiotietoja manuaalisesti.

Aloita konsuli

Käynnistä konsulin middleware käyttämällä ensin seuraavaa komentoa:




Asenna Consul-aiheisia lisäosia ASP.NET Core

Sky-apm-demo-projektissamme käytä nugetia asentaaksesi Consul-middlewaren lisäosana konfiguraatiokeskuksen lukemiseen seuraavalla komennolla:

Muokkaa CreateHostBuilder-metodia ohjelma-objektissa lisätäksesi etäkonsulin konfiguraatiotietojen lukemisen, koodi on seuraava:

Sillä välin appsettings.json-tiedostossa sinun täytyy konfiguroida consul_url-osoite seuraavasti:



Lisää konfiguraatiotietomme konsulille avataksesi web-hallintaalustan:Hyperlinkin kirjautuminen on näkyvissä.Sky-APM-demo/appsettingsin luomiseen. Development.json avaimessa arvo on seuraava:



Luo uusi test3-ohjainmenetelmä, jolla voit lukea tietoa konsulipalvelukonfiguraatiostamme helppoa testausta varten, seuraavasti:

PääsyHyperlinkin kirjautuminen on näkyvissä.Voit saada normaalisti asettamamme konfiguraation seuraavasti:



Katsoessasi skyapm-20201111.log lokkeja huomaat, että osoite, johon SkyApm käyttää Skywalkingia, ei ole se, jonka olemme konfiguroineet, muttaOletus: localhost:11800, kuten alla olevassa kuvassa näkyy:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Tiedot] SkyApm.Transport.Grpc.ConnectionManager : Yhteys katkaistaan [localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Virhe] SkyApm.Transport.Grpc.ConnectionManager : Yhdistä palvelimen aikakatkaisu.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   osoitteessa Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 deadline)
   osoitteessa Grpc.Core.Channel.ConnectAsync(Nullable'1 deadline)
   osoitteessa SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Tarkistamme SkyAPM.Agent.AspNetCore-lähdekoodin GitHubista ja huomaamme, että jos ohjelmamme asettaa oletusasetukset ensin ja lukee sitten konfiguraatiotiedoston, appsettings.json skywalking.json skyapm.json ohittaa aiemmat oletusarvot, kuten alla olevassa kuvassa näkyy:



Kokoonpanon osalta latausprosessi on seuraava:



Milloin SkyAPM siis otti yhteyden Skywalkingiin?



SkyAPM-lähdekoodissa on InstrumentationHostedService-taustatehtävä, kun rekisteröidään IHostedService,.NET Core kutsuu StartAsync()- ja StopAsync()-metodeja, jotka ovat tyyppejä IHostedService, sovelluksen käynnistyksen ja pysäytyksen yhteydessä

Voit viitata seuraaviin paikkoihin:

Palvelu, joka perustuu .NET Coreen Linuxissa
https://www.itsvse.com/thread-9447-1-1.html
Ongelma on nyt se, että konsulin asettama konfiguraatiotieto korvataan oletusarvolla SkyAPM, ja tämän ongelman ratkaisemiseksi meidän täytyy muokata lähdekoodia, lataamme SkyAPM:n lähdekoodin GitHubiin.

Muokkaa ConfigurationFactory-tiedostoa seuraavasti:

Muokkaa ConfigurationBuilderExtensions-tiedostoa seuraavasti:

Muokatun lähdekoodin osalta voit katsoa haarani:Hyperlinkin kirjautuminen on näkyvissä.

Lisälooginen harkinta on, että kun SkyAPM-konfiguraatio on jo olemassa, se ei käytä oletusarvoa,Regeneraatiosky-apm-demo ja SkyApm.Agent.AspNetCore -projektit, kopioi kaikki tiedostot muokatusta kirjastosta \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 -kansioomme \bin\Debug\netcoreapp3.1 ja korvaa ne.Päivitä selaimesi

Katsomalla apm-lokkeja voit huomata, että konfiguraatiotiedot Consulissa on luettu onnistuneesti ja yhteys Skywalkingin kanssa on saatu aikaan, kuten alla olevassa kuvassa näkyy:




(Loppu)




Edellinen:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Seuraava:.NET Core näyttää rekisteröidyt palvelut ja toteutukset sekä niiden elinkaaret
Julkaistu 2023-6-2 klo 14:24:31 |
Hyvä tarra
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com