Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 24815|Odpověď: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM je založen na dynamické konfiguraci Consul

[Kopírovat odkaz]
Zveřejněno 11. 11. 2020 16:13:50 | | | |
Přezkoumání:

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

ASP.NET Core link tracing (2) využívá integraci se SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



projektu, můžeš ho použítKonzulneboApolloPro konfigurační centrum je tutoriál o Consulu jako ASP.NET Core konfiguračním centru:

Architektura: ASP.NET Core dynamicky konfiguruje horké aktualizace na základě Consul
https://www.itsvse.com/thread-9421-1-1.html
Požadavky: Konfigurační informace APM ukládáme do middleware Consul, takže se nemusíme přihlašovat na server a ručně upravovat konfigurační informace v appsettings.json souboru.

Začni konzulovat

Začněte middleware Consul nejprve pomocí následujícího příkazu:




Nainstalujte pluginy související s Consulem ASP.NET Core

V našem projektu sky-apm-demo použijte nuget k instalaci middleware Consul jako pluginu pro čtení konfiguračního centra pomocí následujícího příkazu:

Upravte metodu CreateHostBuilder v objektu Program tak, aby bylo možné číst vzdálené konfigurační informace Consul, kód je následující:

Mezitím v souboru appsettings.json je potřeba nastavit consul_url adresu následovně:



Přidejte naše konfigurační informace do Consul pro otevření platformy pro správu webu:Přihlášení k hypertextovému odkazu je viditelné.Pro vytvoření sky-apm-demo/appsettings. Development.json klíč je hodnota následující:



Vytvořte novou metodu test3 pro kontrolu informací o konfiguraci konzulárních služeb pro snadné testování, a to následovně:

PřístupPřihlášení k hypertextovému odkazu je viditelné.Konfiguraci, kterou nastavujeme normálně, můžete získat následovně:



Při pohledu na skyapm-20201111.log logy zjistíte, že adresa, kde SkyApm přistupuje ke Skywalkingu, není to, co jsme konfigurovali, aleVýchozí: localhost:11800, jak je znázorněno na obrázku níže:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informace] SkyApm.Transport.Grpc.ConnectionManager : Vypnutí spojení[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Error] SkyApm.Transport.Grpc.ConnectionManager : Připojení serveru timeout.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   na Grpc.Core.Channel.WaitForStateChangedAsync(Stav kanálu naposledyPozorován, termín Nullable'1)
   at Grpc.Core.Channel.ConnectAsync(Nullable'1 deadline)
   na SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Zkontrolujeme zdrojový kód SkyAPM.Agent.AspNetCore na GitHubu a zjistíme, že pokud náš program nejprve přiřadí výchozí nastavení a poté přečte konfigurační soubor appsettings.json skywalking.json skyapm.json přepsat předchozí výchozí hodnoty, jak je znázorněno na obrázku níže:



Co se týče konfigurace, proces načítání probíhá následovně:



Kdy tedy SkyAPM navázal komunikaci se Skywalkingem?



Zdrojový kód SkyAPM má při registraci IHostedService na pozadí úkol InstrumentationHostedService,.NET Core volá metody StartAsync() a StopAsync() typu IHostedService při startu a ukončení aplikace

Můžete se odkázat na:

Služba založená na .NET Core na Linuxu
https://www.itsvse.com/thread-9447-1-1.html
Problém je nyní v tom, že konfigurační informace nastavené naším konzulem jsou přepsány výchozí hodnotou SkyAPM, a abychom tento problém vyřešili, musíme upravit zdrojový kód, stáhneme zdrojový kód SkyAPM na GitHubu.

Upravte soubor ConfigurationFactory následovně:

Upravte soubor ConfigurationBuilderExtensions následovně:

Pro upravený zdrojový kód se můžete podívat na mou větev:Přihlášení k hypertextovému odkazu je viditelné.

Přidané logické úsudky, pokud konfigurace SkyAPM již existuje, nepoužívá výchozí hodnotu,Regeneraceprojekty sky-apm-demo a SkyApm.Agent.AspNetCore, zkopírujte všechny soubory pod upravenou knihovnou \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 do našeho projektu \bin\Debug\netcoreapp3.1 a nahraďte je.Obnovte svůj prohlížeč

Při pohledu do APM logů zjistíte, že konfigurační informace v Consulu byly úspěšně přečteny a komunikace se Skywalking byla úspěšně navázána, jak ukazuje obrázek níže:




(Konec)




Předchozí:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Další:.NET Core zobrazuje registrované služby a implementace a jejich životní cykly
Zveřejněno 2023-6-2 14:24:31 |
Dobrá samolepka
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com