Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 24815|Antwort: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM basiert auf der dynamischen Consul-Konfiguration

[Link kopieren]
Veröffentlicht am 11.11.2020, 16:13:50 | | | |
Rezension:

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

ASP.NET Core Link Tracing (2) verwendet SkyAPM-Integration
https://www.itsvse.com/thread-9458-1-1.html



Projekt, du kannst es nutzenKonsuloderApolloUm das Konfigurationszentrum zu machen, gibt es ein Tutorial zu Consul als ASP.NET Core Konfigurationszentrum:

Architektur: ASP.NET Core konfiguriert dynamische Hot-Updates basierend auf Consul
https://www.itsvse.com/thread-9421-1-1.html
Anforderungen: Wir speichern die Konfigurationsinformationen von APM in der Consul-Middleware, sodass wir uns nicht auf dem Server anmelden müssen, um die Konfigurationsinformationen in der appsettings.json-Datei manuell zu ändern.

Start Consul

Starte die Consul-Middleware, indem du zuerst den folgenden Befehl benutzt:




Installiere Consul-bezogene Plugins ASP.NET Core

In unserem Sky-apm-Demo-Projekt verwenden Sie nuget, um die Consul-Middleware als Plugin zum Lesen des Konfigurationszentrums mit folgendem Befehl zu installieren:

Ändern Sie die CreateHostBuilder-Methode im Program-Objekt, um das Lesen entfernter Consul-Konfigurationsinformationen hinzuzufügen, der Code lautet wie folgt:

In der Zwischenzeit müssen Sie in der appsettings.json-Datei die consul_url-Adresse wie folgt konfigurieren:



Fügen Sie unsere Konfigurationsinformationen zu Consul hinzu, um die Web-Management-Plattform zu öffnen:Der Hyperlink-Login ist sichtbar.Um Sky-APM-Demo/AppSettings zu erstellen. Development.json Schlüssel lautet der Wert wie folgt:



Erstellen Sie eine neue Test3-Controller-Methode, um die Informationen unserer Konsul-Service-Konfiguration für einfaches Testen zu lesen, wie folgt:

ZugangDer Hyperlink-Login ist sichtbar.Du kannst die Konfiguration erhalten, die wir normal setzen, wie folgt:



Wenn Sie sich die skyapm-20201111.log Logs ansehen, werden Sie feststellen, dass die Adresse, an der SkyApm auf Skywalking zugreift, nicht die ist, die wir konfiguriert haben, aberStandard: localhost:11800, wie in der untenstehenden Abbildung dargestellt:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informationen] SkyApm.Transport.Grpc.ConnectionManager : Verbindung abgeschaltet[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Fehler] SkyApm.Transport.Grpc.ConnectionManager : Serververbindung Timeout.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   bei Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 Deadline)
   bei Grpc.Core.Channel.ConnectAsync (Nullable'1-Deadline)
   bei SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Wir überprüfen den Quellcode SkyAPM.Agent.AspNetCore auf GitHub und stellen fest, dass wenn unser Programm zuerst die Standardeinstellungen zuweist und dann die Konfigurationsdatei liest, appsettings.json skywalking.json skyapm.json um die vorherigen Standardwerte zu überschreiben, wie in der Abbildung unten gezeigt:



Bezüglich der Konfiguration ist der Ladeprozess wie folgt:



Wann hat SkyAPM also die Kommunikation mit Skywalking aufgenommen?



Der SkyAPM-Quellcode hat beim Registrieren von IHostedService eine Hintergrundfunktion InstrumentationHostedService,.NET Core ruft die StartAsync() und StopAsync()-Methoden des Typs IHostedService jeweils während des Anwendungsstarts und -stopps auf

Sie können auf:

Ein Dienst auf Basis von .NET Core unter Linux
https://www.itsvse.com/thread-9447-1-1.html
Das Problem ist jetzt, dass die von unserem Konsul festgelegten Konfigurationsinformationen durch den Standardwert von SkyAPM überschrieben werden, und um dieses Problem zu lösen, müssen wir den Quellcode ändern, indem wir den SkyAPM-Quellcode auf GitHub herunterladen.

Ändern Sie die ConfigurationFactory-Datei wie folgt:

Ändern Sie die Datei ConfigurationBuilderExtensions wie folgt:

Für den modifizierten Quellcode können Sie auf meinen Zweig verweisen:Der Hyperlink-Login ist sichtbar.

Zusätzliche logische Einschätzung, wenn die SkyAPM-Konfiguration bereits existiert und den Standardwert nicht verwendet,Regenerierensky-apm-demo und SkyApm.Agent.AspNetCore-Projekte, kopiere alle Dateien unter dem modifizierten Bibliotheksordner \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 in unser Projekt \bin\Debug\netcoreapp3.1 und ersetze sie.Aktualisieren Sie Ihren Browser

Wenn Sie sich die APM-Protokolle ansehen, können Sie feststellen, dass die Konfigurationsinformationen in Consul erfolgreich gelesen wurden und die Kommunikation mit Skywalking erfolgreich hergestellt wurde, wie in der untenstehenden Abbildung dargestellt:




(Ende)




Vorhergehend:. .NET MySQL Connector Conflicts DbProviderFactories (.NET MySQL Connector Conflicts DbP...
Nächster:.NET Core zeigt registrierte Dienste und Implementierungen sowie deren Lebenszyklen an
Veröffentlicht am 2.6.2023, 14:24:31 |
Guter Aufkleber
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com