Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 24815|Répondre: 1

[ASP.NET] ASP.NET Tracing de liaison centrale (3) SkyAPM est basé sur la configuration dynamique de Consul

[Copié le lien]
Publié le 11-11-2020 à 16:13:50 | | | |
Révision:

ASP.NET Tracing des liens de base (1) Installer le tutoriel Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core link tracing (2) utilise l’intégration SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



projet, tu peux l’utiliserConsulouApollonPour faire le centre de configuration, un tutoriel sur Consul en tant que centre de configuration ASP.NET Core :

Architecture : ASP.NET Core configure dynamiquement les mises à jour chaudes basées sur Consul
https://www.itsvse.com/thread-9421-1-1.html
Exigences : Nous stockons les informations de configuration de l’APM dans le middleware Consul, afin de ne pas avoir à nous connecter au serveur pour modifier manuellement les informations de configuration dans le fichier appsettings.json.

Consul de départ

Commencez par lancer le middleware consul en utilisant la commande suivante :




Installer les plugins liés à Consul ASP.NET Core

Dans notre projet sky-apm-demo, utilisez Nuget pour installer le middleware Consul comme plugin pour lire le centre de configuration avec la commande suivante :

Modifiez la méthode CreateHostBuilder dans l’objet Programme pour ajouter la lecture des informations de configuration Consul à distance, le code est le suivant :

Pendant ce temps, dans le fichier appsettings.json, vous devez configurer l’adresse consul_url comme suit :



Ajoutez nos informations de configuration à consul pour ouvrir la plateforme de gestion web :La connexion hyperlientérée est visible.Pour créer Sky-APM-Demo/AppSettings. Development.json clé, la valeur est la suivante :



Créer une nouvelle méthode de contrôleur test3 pour lire les informations de notre configuration de service consul afin de faciliter les tests, comme suit :

AccèsLa connexion hyperlientérée est visible.Vous pouvez obtenir la configuration que nous avons fixée normalement, comme suit :



En regardant les journaux skyapm-20201111.log, vous constaterez que l’adresse où SkyApm accède à Skywalking n’est pas celle que nous avons configurée, maisPar défaut : localhost :11800, comme montré dans la figure ci-dessous :



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informations] SkyApm.Transport.Grpc.ConnectionManager : Fermeture de la connexion[localhost :11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Erreur] SkyApm.Transport.Grpc.ConnectionManager : Délai d’attente du serveur de connexion.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   sur Grpc.Core.Channel.WaitForStateChangedAsync (ChannelState lastObservedState, date limite Nullable'1)
   à Grpc.Core.Channel.ConnectAsync (date limite Nullable'1)
   sur SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Nous vérifions le code source SkyAPM.Agent.AspNetCore sur GitHub et constatons que si notre programme assigne d’abord les paramètres par défaut, puis lit le fichier de configuration appsettings.json skywalking.json skyapm.json de remplacer les valeurs par défaut précédentes, comme montré dans la figure ci-dessous :



Concernant la configuration, le processus de chargement est le suivant :



Alors, quand SkyAPM a-t-il établi une communication avec Skywalking ?



Le code source SkyAPM possède une tâche en arrière-plan InstrumentationHostedService, lors de l’enregistrement d’IHostedService,.NET Core appelle respectivement les méthodes StartAsync() et StopAsync() de type IHostedService, lors du démarrage et de l’arrêt de l’application

Vous pouvez vous référer à :

Un service basé sur .NET Core sous Linux
https://www.itsvse.com/thread-9447-1-1.html
Le problème maintenant, c’est que les informations de configuration définies par notre consul sont écrasées par la valeur par défaut de SkyAPM, et pour résoudre ce problème, nous devons modifier le code source, nous téléchargeons le code source SkyAPM sur GitHub.

Modifiez le fichier ConfigurationFactory comme suit :

Modifiez le fichier ConfigurationBuilderExtensions comme suit :

Pour le code source modifié, vous pouvez vous référer à ma branche :La connexion hyperlientérée est visible.

En plus, le jugement logique : lorsque la configuration SkyAPM existe déjà, n’utilise pas la valeur par défaut,Régénérationsky-apm-demo et SkyApm.Agent.AspNetCore, copiez tous les fichiers sous la bibliothèque modifiée \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 dans notre projet \bin\Debug\netcoreapp3.1 et remplacez-les.Rafraîchissez votre navigateur

En consultant les journaux APM, vous pouvez constater que les informations de configuration dans consul ont été lues avec succès et que la communication avec Skywalking a été établie avec succès, comme montré dans la figure ci-dessous :




(Fin)




Précédent:. Conflits du connecteur .NET MySQL DbProviderFactories (Conflits du connecteur .NET MySQL DbP...
Prochain:.NET Core affiche les services et implémentations enregistrés ainsi que leurs cycles de vie
Posté le 2-6-2023 à 14:24:31 |
Bon autocollant
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com