Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 24815|Odpoveď: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM je založený na dynamickej konfigurácii Consul

[Kopírovať odkaz]
Zverejnené 11.11.2020 o 16:13:50 | | | |
Revízia:

ASP.NET Core Link Tracing (1) Nainštalujte tutoriál Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core link tracing (2) využíva integráciu so SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



projekt, môžeš ho použiťKonzulaleboApolloNa vytvorenie konfiguračného centra tutoriál o Consul ako ASP.NET Core konfiguračnom centre:

Architektúra: ASP.NET Core dynamicky konfiguruje horúce aktualizácie na základe Consulu
https://www.itsvse.com/thread-9421-1-1.html
Požiadavky: Konfiguračné informácie APM ukladáme v Consul middleware, takže sa nemusíme prihlasovať na server, aby sme manuálne upravovali konfiguračné informácie v appsettings.json súbore.

Začnite ako konzul

Začnite middleware Consul najprv pomocou nasledujúceho príkazu:




Nainštalujte pluginy súvisiace s Consul ASP.NET Core

V našom projekte sky-apm-demo použite nuget na inštaláciu middleware Consul ako pluginu na čítanie konfiguračného centra pomocou nasledujúceho príkazu:

Upravte metódu CreateHostBuilder v objekte Program tak, aby ste pridali čítanie vzdialených konfiguračných informácií Consul, kód je nasledovný:

Medzitým v appsettings.json súbore musíte nastaviť consul_url adresu nasledovne:



Pridajte naše konfiguračné informácie do Consul, aby ste otvorili platformu na správu webu:Prihlásenie na hypertextový odkaz je viditeľné.Na vytvorenie sky-apm-demo/appsettings. Development.json kľúč je hodnota nasledovná:



Vytvorte novú metódu kontroléra test3 na čítanie informácií o konfigurácii našich konzulárnych služieb pre jednoduché testovanie, nasledovne:

PrístupPrihlásenie na hypertextový odkaz je viditeľné.Môžete získať konfiguráciu, ktorú nastavíme normálne, nasledovne:



Keď sa pozriete na skyapm-20201111.log logy, zistíte, že adresa, kde SkyApm pristupuje k Skywalkingu, nie je taká, akú sme konfigurovali, alePredvolené: localhost:11800, ako je znázornené na obrázku nižšie:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informácie] SkyApm.Transport.Grpc.ConnectionManager : Vypnutie spojenia[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Chyba] SkyApm.Transport.Grpc.ConnectionManager : Časový limit pripojenia servera.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   na Grpc.Core.Channel.WaitForStateChangedAsync(Stav kanála naposledyPozorovanýStav, termín Nullable'1)
   na Grpc.Core.Channel.ConnectAsync(Nullable'1 deadline)
   at SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Skontrolujeme zdrojový kód SkyAPM.Agent.AspNetCore na GitHube a zistíme, že ak náš program najprv priradí predvolené nastavenia a potom načíta konfiguračný súbor, appsettings.json skywalking.json skyapm.json prepísať predchádzajúce predvolené hodnoty, ako je znázornené na obrázku nižšie:



Čo sa týka konfigurácie, proces nakladania je nasledovný:



Kedy teda SkyAPM nadviazal komunikáciu so Skywalkingom?



Zdrojový kód SkyAPM má úlohu InstrumentationHostedService pri registrácii IHostedService,.NET Core volá metódy StartAsync() a StopAsync() typu IHostedService počas štartu a zastavenia aplikácie

Môžete sa odvolať na:

Služba založená na .NET Core na Linuxe
https://www.itsvse.com/thread-9447-1-1.html
Problém teraz je, že konfiguračné informácie nastavené naším konzulom sú prepísané predvolenou hodnotou SkyAPM, a aby sme tento problém vyriešili, musíme upraviť zdrojový kód, stiahneme zdrojový kód SkyAPM na GitHub.

Upravte súbor ConfigurationFactory nasledovne:

Upravte súbor ConfigurationBuilderExtensions nasledovne:

Pre upravený zdrojový kód sa môžete pozrieť na moju vetvu:Prihlásenie na hypertextový odkaz je viditeľné.

Pridané logické úsudky, keď už konfigurácia SkyAPM existuje, nepoužíva predvolenú hodnotu,Regenerujprojekty sky-apm-demo a SkyApm.Agent.AspNetCore, skopírujte všetky súbory pod upravenou knižnicou \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 priečinka do nášho projektu \bin\Debug\netcoreapp3.1 a nahraďte ich.Obnovte svoj prehliadač

Pri pohľade na APM logy môžete zistiť, že konfiguračné informácie v Consul boli úspešne prečítané a komunikácia so Skywalking bola úspešne nadviazaná, ako je znázornené na obrázku nižšie:




(Koniec)




Predchádzajúci:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Budúci:.NET Core zobrazuje registrované služby a implementácie a ich životné cykly
Zverejnené 2023-6-2 14:24:31 |
Dobrá nálepka
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com