Prima di leggere questo articolo, devi implementare un ambiente Jaeger, come segue:
Protocollo OpenTracing
OpenTracing è un protocollo di tracciamento distribuito indipendente dalla piattaforma o dal linguaggio, con un'interfaccia unificata, comoda per lo sviluppo e l'accesso a diversi sistemi di tracciamento distribuiti.Zipkin e Jaeger seguono entrambi il protocollo OpenTracing。
Sistema di tracciamento distribuito Jaeger
Jaeger è un sistema di tracciamento distribuito sviluppato da Uber che viene già utilizzato su larga scala da Uber. Ed è entrato a far parte dell'organizzazione open source CNCF il 13 settembre 2017. Utilizzando Jaeger, è possibile visualizzare la catena di chiamate dell'intero sistema distribuito, il che può facilmente identificare e risolvere problemi:
funzione
- Diffusione dell'informazione in un ambiente distribuito
- Monitoraggio distribuito delle transazioni
- Dimostra catene di chiamate cross-process
- Ottimizzazione delle prestazioni
- Individua il problema
caratteristico
- Il vantaggio di usare UDP per trasmettere dati rispetto a HTTP è che non devi preoccuparti di inattività del servizio Jaeger o problemi di trasmissione di rete che influenzano il business normale. Lo svantaggio è la perdita di pacchetti, che colpisce l'intera catena di chiamate.
- I dati vengono serializzati tramite Thrift o protobuf (trasmissione gRPC), che è il valore predefinito: Thrift.
Strategia di raccolta
- ConstSampler, collezione completa
- ProbabilisticSampler, raccolta probabilità, impostazione predefinita a 1 su 10.000
- RateLimitingSampler è un'acquisizione a limite di velocità che può raccogliere solo una certa quantità di dati al secondo
- RemotelyControlledSampler è una strategia dinamica di raccolta che regola la strategia di raccolta in base al numero di visite al sistema attuale
ASP.NET Core è collegato al tracciamento dei link Jaeger
Il progetto è un framework per .NET Core 3.1, e Nuget installa i seguenti pacchetti:
Tra questi, OpenTracing.Contrib.NetCore fornisce lo strumento OpenTracing per applicazioni basate su .NET Core, che è semplicemente un'estensione, e il monitoraggio principale è il seguente:
- ASP.NET Core
- Nucleo del Framework dell'Entità
- System.Net.Http (HttpClient)
- System.Data.SqlClient
- Microsoft.Data.SqlClient
Nel file di avvio il metodo ConfigureServices è configurato come segue:
Chiamare ITracer nei log del controller e nel codice che richiede tempo di HomeController è il seguente:
Avvia il sito web, visita la pagina /Home/Index e poi visualizza il link tramite l'interfaccia online di Jaeger per visitare:http://127.0.0.1:16686/, puoi cercare il primo per tag, come mostrato nella figura sottostante:
http.url=http://localhost:27138/ Come mostrato di seguito:
Scarica codice sorgente:
Turisti, se volete vedere il contenuto nascosto di questo post, vi prego Risposta
Risorse:
Il login del link ipertestuale è visibile.
Il login del link ipertestuale è visibile.
|