Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 24815|Antwoord: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM is gebaseerd op de dynamische configuratie van Consul

[Link kopiëren]
Geplaatst op 2020-11-11 16:13:50 | | | |
Recensie:

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

ASP.NET Core linktracing (2) gebruikt SkyAPM-integratie
https://www.itsvse.com/thread-9458-1-1.html



project, je kunt het gebruikenConsulofApolloOm het configuratiecentrum te doen, een tutorial over Consul als een ASP.NET Core configuratiecentrum:

Architectuur: ASP.NET Core configureert dynamisch hot updates op basis van Consul
https://www.itsvse.com/thread-9421-1-1.html
Vereisten: We slaan de configuratie-informatie van APM op in de Consul-middleware, zodat we niet hoeven in te loggen op de server om handmatig de configuratie-informatie in het appsettings.json-bestand aan te passen.

Start Consul

Start de consul-middleware door eerst het volgende commando te gebruiken:




Installeer Consul-gerelateerde plugins ASP.NET Core

In ons sky-apm-demo project gebruik je nuget om de Consul-middleware te installeren als plugin voor het lezen van het configuratiecentrum met het volgende commando:

Wijzig de CreateHostBuilder-methode in het Program-object om het lezen van externe Consul-configuratie-informatie toe te voegen, de code is als volgt:

Ondertussen moet je in het appsettings.json-bestand het consul_url-adres als volgt configureren:



Voeg onze configuratie-informatie toe aan Consul om het webbeheerplatform te openen:De hyperlink-login is zichtbaar.Om Sky-APM-demo/appsettings te maken. Development.json sleutel is de waarde als volgt:



Maak een nieuwe test3-controllermethode aan om de informatie van onze consul-serviceconfiguratie te lezen voor eenvoudig testen, als volgt:

ToegangDe hyperlink-login is zichtbaar.Je kunt de configuratie krijgen die we normaal instellen, als volgt:



Als je naar de skyapm-20201111.log logs kijkt, zie je dat het adres waar SkyApm Skywalking bezoekt niet is wat we hebben ingesteld, maarStandaard: localhost:11800, zoals getoond in de onderstaande figuur:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informatie] SkyApm.Transport.Grpc.ConnectionManager : Verbinding afsluiten[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Fout] SkyApm.Transport.Grpc.ConnectionManager : Verbinding server timeout.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   op Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 deadline)
   op Grpc.Core.Channel.ConnectAsync (Nullable'1 deadline)
   op SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
We controleren de broncode van SkyAPM.Agent.AspNetCore op GitHub en zien dat als ons programma eerst de standaardinstellingen toewijst en vervolgens het configuratiebestand leest, appsettings.json skywalking.json skyapm.json om de vorige standaardwaarden te overschrijven, zoals te zien in de onderstaande figuur:



Wat betreft de configuratie is het laadproces als volgt:



Dus wanneer heeft SkyAPM contact gelegd met Skywalking?



De SkyAPM-broncode heeft een InstrumentationHostedService-achtergrondtaak, bij het registreren van IHostedService,.NET Core roept respectievelijk de StartAsync() en StopAsync() methoden van het type IHostedService aan tijdens het starten en stoppen van de applicatie

U kunt verwijzen naar:

Een dienst gebaseerd op .NET Core op Linux
https://www.itsvse.com/thread-9447-1-1.html
Het probleem is nu dat de configuratie-informatie die door ons consul is ingesteld wordt overschreven door de standaardwaarde van SkyAPM, en om dit probleem op te lossen moeten we de broncode wijzigen, we downloaden de SkyAPM-broncode op GitHub.

Wijzig het ConfigurationFactory-bestand als volgt:

Pas het bestand ConfigurationBuilderExtensions als volgt aan:

Voor de aangepaste broncode kun je mijn branch raadplegen:De hyperlink-login is zichtbaar.

Toegevoegd logisch oordeel, wanneer de SkyAPM-configuratie al bestaat en de standaardwaarde niet gebruikt,Regenereersky-apm-demo en SkyApm.Agent.AspNetCore-projecten, kopieer alle bestanden onder de gewijzigde bibliotheek \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 map naar ons project \bin\Debug\netcoreapp3.1 en vervang ze.Ververs je browser

Door de APM-logs te bekijken, kunt u zien dat de configuratie-informatie in Consul succesvol is gelezen en dat communicatie met Skywalking succesvol tot stand is gekomen, zoals te zien is in de onderstaande figuur:




(Einde)




Vorig:. .NET MySQL Connector conflicts DbProviderFactories (.NET MySQL Connector conflicts dbP...
Volgend:.NET Core toont geregistreerde diensten en implementaties en hun levenscycli
Geplaatst op 2-6-2023 14:24:31 |
Goede sticker
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com