Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 24815|Απάντηση: 1

[ASP.NET] ASP.NET Ανίχνευση σύνδεσης πυρήνα (3) Το SkyAPM βασίζεται στη δυναμική διαμόρφωση του Consul

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 2020-11-11 16:13:50 | | | |
Αναθεώρηση:

ASP.NET Ανίχνευση συνδέσεων πυρήνα (1) Εγκαταστήστε το σεμινάριο Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Η ανίχνευση βασικών συνδέσμων (2) χρησιμοποιεί ενσωμάτωση SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



Project, μπορείτε να το χρησιμοποιήσετεΠρόξενοςήΑπόλλωνΓια να κάνετε το κέντρο διαμόρφωσης, ένα σεμινάριο για το Consul ως κέντρο διαμόρφωσης ASP.NET Core:

Αρχιτεκτονική: Το ASP.NET Core διαμορφώνει δυναμικά τις καυτές ενημερώσεις με βάση το Consul
https://www.itsvse.com/thread-9421-1-1.html
Απαιτήσεις: Αποθηκεύουμε τις πληροφορίες διαμόρφωσης του APM στο ενδιάμεσο λογισμικό Consul, επομένως δεν χρειάζεται να συνδεθούμε στον διακομιστή για να τροποποιήσουμε με μη αυτόματο τρόπο τις πληροφορίες διαμόρφωσης στο αρχείο appsettings.json.

Ξεκινήστε το Consul

Ξεκινήστε το ενδιάμεσο λογισμικό consul χρησιμοποιώντας πρώτα την ακόλουθη εντολή:




Εγκαταστήστε πρόσθετα που σχετίζονται με το Consul ASP.NET Core

Στο έργο μας sky-apm-demo, χρησιμοποιήστε το nuget για να εγκαταστήσετε το ενδιάμεσο λογισμικό Consul ως πρόσθετο για την ανάγνωση του κέντρου διαμόρφωσης με την ακόλουθη εντολή:

Τροποποιήστε τη μέθοδο CreateHostBuilder στο αντικείμενο Program για να προσθέσετε την ανάγνωση των πληροφοριών διαμόρφωσης του απομακρυσμένου Consul, ο κώδικας είναι ο εξής:

Εν τω μεταξύ, στο αρχείο appsettings.json, πρέπει να διαμορφώσετε τη διεύθυνση consul_url, ως εξής:



Προσθέστε τις πληροφορίες διαμόρφωσης στον πρόξενο για να ανοίξετε την πλατφόρμα διαχείρισης ιστού:Η σύνδεση με υπερσύνδεσμο είναι ορατή.για να δημιουργήσετε sky-apm-demo/appsettings. Development.json κλειδί, η τιμή είναι η εξής:



Δημιουργήστε μια νέα μέθοδο ελεγκτή test3 για να διαβάσετε τις πληροφορίες της διαμόρφωσης της υπηρεσίας προξένου μας για εύκολη δοκιμή, ως εξής:

ΠρόσβασηΗ σύνδεση με υπερσύνδεσμο είναι ορατή.Μπορείτε να λάβετε τη διαμόρφωση που ορίσαμε κανονικά, ως εξής:



Κοιτάζοντας τα αρχεία καταγραφής skyapm-20201111.log, θα διαπιστώσετε ότι η διεύθυνση στην οποία το SkyApm έχει πρόσβαση στο Skywalking δεν είναι αυτή που διαμορφώσαμε, αλλάΠροεπιλογή: localhost:11800, όπως φαίνεται στο παρακάτω σχήμα:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Πληροφορίες] SkyApm.Transport.Grpc.ConnectionManager : Σύνδεση τερματισμού λειτουργίας[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Σφάλμα] SkyApm.Transport.Grpc.ConnectionManager : Χρονικό όριο σύνδεσης διακομιστή.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   στο Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObserved State, Nullable'1 προθεσμία)
   στο Grpc.Core.Channel.ConnectAsync (προθεσμία Nullable'1)
   στο SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Ελέγχουμε τον πηγαίο κώδικα SkyAPM.Agent.AspNetCore στο GitHub και διαπιστώνουμε ότι εάν το πρόγραμμά μας εκχωρήσει πρώτα τις προεπιλεγμένες ρυθμίσεις και, στη συνέχεια, διαβάσει το αρχείο διαμόρφωσης appsettings.json skywalking.json skyapm.json να παρακάμψει τις προηγούμενες προεπιλεγμένες τιμές, όπως φαίνεται στο παρακάτω σχήμα:



Όσον αφορά τη διαμόρφωση, η διαδικασία φόρτωσης έχει ως εξής:



Πότε λοιπόν το SkyAPM δημιούργησε επικοινωνία με το Skywalking;



Ο πηγαίος κώδικας του SkyAPM έχει μια εργασία παρασκηνίου InstrumentationHostedService, κατά την εγγραφή του IHostedService,Το .NET Core καλεί τις μεθόδους StartAsync() και StopAsync() τύπου IHostedService, αντίστοιχα, κατά την εκκίνηση και τη διακοπή της εφαρμογής

Μπορείτε να ανατρέξετε σε:

Μια υπηρεσία που βασίζεται στο .NET Core σε Linux
https://www.itsvse.com/thread-9447-1-1.html
Το πρόβλημα τώρα είναι ότι οι πληροφορίες διαμόρφωσης που ορίζονται από τον πρόξενό μας αντικαθίστανται από την προεπιλεγμένη τιμή του SkyAPM και για να λύσουμε αυτό το πρόβλημα, πρέπει να τροποποιήσουμε τον πηγαίο κώδικα, κατεβάζουμε τον πηγαίο κώδικα SkyAPM στο GitHub.

Τροποποιήστε το αρχείο ConfigurationFactory ως εξής:

Τροποποιήστε το αρχείο ConfigurationBuilderExtensions ως εξής:

Για τον τροποποιημένο πηγαίο κώδικα, μπορείτε να ανατρέξετε στον κλάδο μου:Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Προστέθηκε λογική κρίση, όταν υπάρχει ήδη η διαμόρφωση SkyAPM, δεν χρησιμοποιεί την προεπιλεγμένη τιμή,Αναγέννησηsky-apm-demo και SkyApm.Agent.AspNetCore, αντιγράψτε όλα τα αρχεία κάτω από την τροποποιημένη βιβλιοθήκη \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 φάκελο στο έργο μας \bin\Debug\netcoreapp3.1 και αντικαταστήστε τα.Ανανεώστε το πρόγραμμα περιήγησής σας

Κοιτάζοντας τα αρχεία καταγραφής apm, μπορείτε να διαπιστώσετε ότι οι πληροφορίες διαμόρφωσης στο consul έχουν διαβαστεί με επιτυχία και η επικοινωνία με το Skywalking έχει αποκατασταθεί με επιτυχία, όπως φαίνεται στο παρακάτω σχήμα:




(Τέλος)




Προηγούμενος:. .NET MySQL Connector Conflict DbProviderFactories (.NET MySQL Connector Conflict DbP...
Επόμενος:Το .NET Core εμφανίζει καταχωρημένες υπηρεσίες και υλοποιήσεις και τους κύκλους ζωής τους
Δημοσιεύτηκε στις 2023-6-2 14:24:31 |
Καλό αυτοκόλλητο
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com