Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 24815|Risposta: 1

[ASP.NET] ASP.NET Core Link Tracing (3) SkyAPM si basa sulla configurazione dinamica Consul

[Copiato link]
Pubblicato il 11-11-2020 16:13:50 | | | |
Recensione:

ASP.NET Core Link Tracing (1) Installa il tutorial di Skywalking
https://www.itsvse.com/thread-9456-1-1.html

ASP.NET Core link tracing (2) utilizza l'integrazione SkyAPM
https://www.itsvse.com/thread-9458-1-1.html



progetto, puoi usarloConsoleoApolloPer fare il centro di configurazione, un tutorial su Consul come centro di configurazione ASP.NET Core:

Architettura: ASP.NET Core configura dinamicamente gli aggiornamenti hot basati su Consul
https://www.itsvse.com/thread-9421-1-1.html
Requisiti: Memorizziamo le informazioni di configurazione dell'APM nel middleware Consul, così non dobbiamo accedere al server per modificare manualmente le informazioni di configurazione nel file appsettings.json.

Start Console

Avvia il middleware consul usando prima il seguente comando:




Installa plugin correlati a Consul ASP.NET Core

Nel nostro progetto sky-apm-demo, usa Nuget per installare il middleware Consul come plugin per leggere il centro di configurazione con il seguente comando:

Modifica il metodo CreateHostBuilder nell'oggetto Program per aggiungere la lettura delle informazioni di configurazione remota di Consul, il codice è il seguente:

Nel frattempo, nel file appsettings.json, devi configurare l'indirizzo consul_url come segue:



Aggiungi le nostre informazioni di configurazione a consul per aprire la piattaforma di gestione web:Il login del link ipertestuale è visibile.Per creare sky-apm-demo/appsettings. Development.json chiave, il valore è il seguente:



Crea un nuovo metodo di controller test3 per leggere le informazioni della configurazione del nostro servizio consul e facilitare il test, come segue:

AccessoIl login del link ipertestuale è visibile.Puoi ottenere la configurazione che abbiamo impostato normalmente, come segue:



Guardando i skyapm-20201111.log log, scoprirai che l'indirizzo in cui SkyApm accede a SkyWalking non corrisponde a quello che abbiamo configurato, maPredefinito: localhost:11800, come mostrato nella figura sottostante:



2020-11-11 15:32:35.869 +08:00 [My_Service] [Informazioni] SkyApm.Transport.Grpc.ConnectionManager : Connessione spegnita[localhost:11800].
2020-11-11 15:32:45.875 +08:00 [My_Service] [Errore] SkyApm.Transport.Grpc.ConnectionManager: Timeout del server connette.
System.Threading.Tasks.TaskCanceledException: Reached deadline.
   su Grpc.Core.Channel.WaitForStateChangedAsync(ChannelState lastObservedState, Nullable'1 deadline)
   presso Grpc.Core.Channel.ConnectAsync(Nullable'1 deadline)
   su SkyApm.Transport.Grpc.ConnectionManager.ConnectAsync()
Controlliamo il codice sorgente SkyAPM.Agent.AspNetCore su GitHub e vediamo che se il nostro programma assegna prima le impostazioni predefinite e poi legge il file di configurazione appsettings.json skywalking.json skyapm.json sovrascrivere i valori predefiniti precedenti, come mostrato nella figura sottostante:



Per quanto riguarda la configurazione, il processo di caricamento è il seguente:



Quando ha stabilito la comunicazione SkyAPM con Skywalking?



Il codice sorgente SkyAPM ha un compito di background InstrumentationHostedService, quando si registra IHostedService,.NET Core chiama rispettivamente i metodi StartAsync() e StopAsync() di tipo IHostedService, durante l'avvio e la fermata dell'applicazione

Puoi fare riferimento a:

Un servizio basato su .NET Core su Linux
https://www.itsvse.com/thread-9447-1-1.html
Il problema ora è che le informazioni di configurazione impostate dal nostro console vengono sovrascritte dal valore predefinito di SkyAPM, e per risolvere questo problema dobbiamo modificare il codice sorgente, scaricando il codice sorgente SkyAPM su GitHub.

Modifica il file ConfigurationFactory come segue:

Modifica il file ConfigurationBuilderExtensions come segue:

Per il codice sorgente modificato, puoi fare riferimento al mio ramo:Il login del link ipertestuale è visibile.

Giudizio logico aggiuntivo, quando la configurazione SkyAPM esiste già, non utilizza il valore predefinito,Rigenerazionesky-apm-demo e SkyApm.Agent.AspNetCore, copia tutti i file nella libreria modificata \src\SkyApm.Agent.AspNetCore\bin\Debug\netcoreapp3.1 nel nostro progetto \bin\Debug\netcoreapp3.1 e sostituiscili.Aggiorna il browser

Esaminando i log apm, puoi scoprire che le informazioni di configurazione in consul sono state lette con successo e che la comunicazione con Skywalking è stata stabilita con successo, come mostrato nella figura sottostante:




(Fine)




Precedente:. .NET MySQL Connector Conflitti DbProviderFactories (.NET MySQL Connector Conflitti DbP...
Prossimo:.NET Core visualizza i servizi registrati e le implementazioni e i loro cicli di vita
Pubblicato il 2023-6-2 14:24:31 |
Buon adesivo
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com