Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'osservabilità è uno degli aspetti più importanti di un sistema distribuito. È la capacità di comprendere lo stato del sistema in qualsiasi momento. È possibile ottenere questo risultato in diversi modi, tra cui registrazione, metriche e traccia distribuita.
Registrazione
Orleans utilizza Microsoft.Extensions.Logging per registrare tutti i log di silo e client. È possibile usare qualsiasi provider di registrazione compatibile con Microsoft.Extensions.Logging. Il codice dell'app si basa sull'inserimento delle dipendenze per ottenere un'istanza di ILogger<TCategoryName> e la usa per registrare i messaggi. Per altre informazioni, vedere Registrazione in .NET.
Metriche
Le metriche sono misurazioni numeriche segnalate nel tempo. Spesso vengono usati per monitorare l'integrità di un'applicazione e generare avvisi. Per altre informazioni, vedere Metriche in .NET. Orleans usa le API System.Diagnostics.Metrics per raccogliere le metriche. Queste metriche vengono esposte al progetto OpenTelemetry , che le esporta in vari sistemi di monitoraggio.
Per monitorare l'app senza apportare modifiche al codice, usare lo dotnet counters strumento di diagnostica .NET. Per monitorare OrleansActivitySource i contatori per uno specifico <ProcessName>, usare il dotnet counters monitor comando come illustrato:
dotnet counters monitor -n <ProcessName> --counters Microsoft.Orleans
Immagina di eseguire Orleans e di monitorarla in un terminale separato con il comando. L'output seguente è tipico:
Press p to pause, r to resume, q to quit.
Status: Running
[Microsoft.Orleans]
orleans-app-requests-latency-bucket (Count / 1 sec) 0
duration=10000ms 0
duration=1000ms 0
duration=100ms 0
duration=10ms 0
duration=15000ms 0
duration=1500ms 0
duration=1ms 2,530
duration=2000ms 0
duration=200ms 0
duration=2ms 0
duration=400ms 0
duration=4ms 0
duration=5000ms 0
duration=50ms 0
duration=6ms 0
duration=800ms 0
duration=8ms 0
duration=9223372036854775807ms 0
orleans-app-requests-latency-count (Count / 1 sec) 2,530
orleans-app-requests-latency-sum (Count / 1 sec) 0
orleans-catalog-activation-working-set 36
orleans-catalog-activations 38
orleans-consistent-ring-range-percentage-average 100
orleans-consistent-ring-range-percentage-local 100
orleans-consistent-ring-size 1
orleans-directory-cache-size 27
orleans-directory-partition-size 26
orleans-directory-ring-local-portion-average-percentage 100
orleans-directory-ring-local-portion-distance 0
orleans-directory-ring-local-portion-percentage 0
orleans-directory-ring-size 1,295
orleans-gateway-received (Count / 1 sec) 1,291
orleans-gateway-sent (Count / 1 sec) 2,582
orleans-messaging-processing-activation-data 0
orleans-messaging-processing-dispatcher-forwarded (Count / 1 0
orleans-messaging-processing-dispatcher-processed (Count / 1 2,543
Direction=Request,Status=Ok 2,582
orleans-messaging-processing-dispatcher-received (Count / 1 1,271
Context=Grain,Direction=Request 1,291
Context=None,Direction=Request 1,291
orleans-messaging-processing-ima-enqueued (Count / 1 sec) 5,113
Per altre informazioni, vedere Analizzare i contatori delle prestazioni (contatori-dotnet).
Orleans Metri
Orleans usa le API System.Diagnostics.Metrics per raccogliere le metriche. Orleans classifica ogni contatore in problematiche incentrate sul dominio, ad esempio rete, messaggistica, gateway e così via. Le sottosezioni seguenti descrivono gli utilizzi dei contatori Orleans .
Rete
La tabella seguente mostra una raccolta di contatori di rete usati per monitorare il Orleans livello di rete.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-networking-sockets-closed |
Counter<T> | Conteggio dei socket chiusi. |
orleans-networking-sockets-opened |
Counter<T> | Conteggio dei socket aperti. |
Messaggistica
Nella tabella seguente viene illustrata una raccolta di contatori di messaggistica usati per monitorare il Orleans livello di messaggistica.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-messaging-sent-messages-size |
Histogram<T> | Istogramma che rappresenta le dimensioni dei messaggi in byte inviati. |
orleans-messaging-received-messages-size |
Histogram<T> | Istogramma che rappresenta le dimensioni dei messaggi in byte ricevuti. |
orleans-messaging-sent-header-size |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di byte dell'intestazione inviati. |
orleans-messaging-received-header-size |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di byte di intestazione ricevuti. |
orleans-messaging-sent-failed |
Counter<T> | Conta dei messaggi non inviati. |
orleans-messaging-sent-dropped |
Counter<T> | Conteggio dei messaggi inviati e non consegnati. |
orleans-messaging-processing-dispatcher-received |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi ricevuti dal dispatcher. |
orleans-messaging-processing-dispatcher-processed |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi elaborati dal dispatcher. |
orleans-messaging-processing-dispatcher-forwarded |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi inoltrati del dispatcher. |
orleans-messaging-processing-ima-received |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi in arrivo ricevuti. |
orleans-messaging-processing-ima-enqueued |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi accodati in arrivo. |
orleans-messaging-processing-activation-data |
ObservableGauge<T> | Misuratore osservabile che rappresenta tutti i dati di attivazione dell'elaborazione. |
orleans-messaging-pings-sent |
Counter<T> | Conteggio dei ping inviati. |
orleans-messaging-pings-received |
Counter<T> | Numero di ping ricevuti. |
orleans-messaging-pings-reply-received |
Counter<T> | Numero di risposte ping ricevute. |
orleans-messaging-pings-reply-missed |
Counter<T> | Conteggio di risposte ping perse. |
orleans-messaging-expired" |
Counter<T> | Numero di messaggi scaduti. |
orleans-messaging-rejected |
Counter<T> | Numero di messaggi rifiutati. |
orleans-messaging-rerouted |
Counter<T> | Numero di messaggi reindirizzati. |
orleans-messaging-sent-local |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi locali inviati. |
Porta di accesso
La tabella seguente illustra un insieme di contatori gateway usati per monitorare il livello del Orleans gateway.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-gateway-connected-clients |
UpDownCounter<T> | Contatore verso l'alto o verso il basso che rappresenta il numero di client connessi. |
orleans-gateway-sent |
Counter<T> | Conteggio dei messaggi del gateway inviati. |
orleans-gateway-received |
Counter<T> | Numero di messaggi del gateway ricevuti. |
orleans-gateway-load-shedding |
Counter<T> | Numero di messaggi gateway (load shedding) rifiutati a causa del sovraccarico del gateway. |
Tempo di esecuzione
La tabella seguente illustra una raccolta di metri di runtime usati per monitorare il livello di runtime Orleans.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-scheduler-long-running-turns |
Counter<T> | Conteggio dei turni con esecuzione prolungata all'interno dello schedulatore. |
orleans-runtime-total-physical-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero totale di memoria (in MB) del Orleans runtime. |
orleans-runtime-available-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria disponibile (in MB) per il Orleans runtime. |
Catalogo
La tabella seguente mostra una raccolta di contatori utilizzati per monitorare il livello del catalogo Orleans.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-catalog-activations |
ObservableGauge<T> | Misuratore osservabile che rappresenta il numero di attivazioni del catalogo. |
orleans-catalog-activation-working-set |
ObservableGauge<T> | Misuratore osservabile che rappresenta il numero di attivazioni all'interno del working set. |
orleans-catalog-activation-created |
Counter<T> | Conteggio delle attivazioni create. |
orleans-catalog-activation-destroyed |
Counter<T> | Conteggio delle attivazioni distrutte. |
orleans-catalog-activation-failed-to-activate |
Counter<T> | Numero di attivazioni non riuscite. |
orleans-catalog-activation-collections |
Counter<T> | Conteggio delle raccolte di attivazioni inattive. |
orleans-catalog-activation-shutdown |
Counter<T> | Conteggio delle attivazioni di arresto. |
orleans-catalog-activation-non-existent |
Counter<T> | Conteggio delle attivazioni inesistenti. |
orleans-catalog-activation-concurrent-registration-attempts |
Counter<T> | Conteggio dei tentativi di registrazione dell'attivazione simultanea. |
Directory
Nella tabella seguente viene illustrata una raccolta di contatori di directory usati per monitorare il Orleans livello della directory.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-directory-lookups-local-issued |
Counter<T> | Conteggio delle ricerche locali eseguite. |
orleans-directory-lookups-local-successes |
Counter<T> | Conteggio delle ricerche locali riuscite. |
orleans-directory-lookups-full-issued |
Counter<T> | Numero di ricerche complete di directory effettuate. |
orleans-directory-lookups-remote-sent |
Counter<T> | Conteggio delle ricerche di directory remote inviate. |
orleans-directory-lookups-remote-received |
Counter<T> | Conteggio delle ricerche di directory remote ricevute. |
orleans-directory-lookups-local-directory-issued |
Counter<T> | Conteggio delle ricerche di directory locali effettuate. |
orleans-directory-lookups-local-directory-successes |
Counter<T> | Conteggio delle ricerche della directory locale riuscite. |
orleans-directory-lookups-cache-issued |
Counter<T> | Conteggio delle ricerche memorizzate nella cache effettuate. |
orleans-directory-lookups-cache-successes |
Counter<T> | Conteggio delle ricerche riuscite memorizzate nella cache. |
orleans-directory-validations-cache-sent |
Counter<T> | Conteggio delle convalide della cache della directory inviate. |
orleans-directory-validations-cache-received |
Counter<T> | Conteggio delle convalide della cache della directory ricevute. |
orleans-directory-partition-size |
ObservableGauge<T> | Misuratore osservabile indicante la dimensione della partizione della directory. |
orleans-directory-cache-size |
ObservableGauge<T> | Misuratore osservabile che rappresenta le dimensioni della cache della directory. |
orleans-directory-ring-size |
ObservableGauge<T> | Indicatore osservabile che rappresenta la dimensione del ring della directory. |
orleans-directory-ring-local-portion-distance |
ObservableGauge<T> | Indicatore osservabile che rappresenta l'intervallo ad anello posseduto dalla partizione della directory locale. |
orleans-directory-ring-local-portion-percentage |
ObservableGauge<T> | Misuratore osservabile che rappresenta l'intervallo circolare di proprietà della directory locale, rappresentato come percentuale dell'intervallo totale. |
orleans-directory-ring-local-portion-average-percentage |
ObservableGauge<T> | Misuratore osservabile che rappresenta la percentuale media della gamma di anelli di directory posseduta da ciascun silo, fornendo una rappresentazione di quanto sia bilanciata la proprietà della directory. |
orleans-directory-registrations-single-act-issued |
Counter<T> | Conteggio delle registrazioni di attivazione singola della directory rilasciate. |
orleans-directory-registrations-single-act-local |
Counter<T> | Conteggio delle registrazioni di attivazione singola della directory gestite dalla partizione della directory locale. |
orleans-directory-registrations-single-act-remote-sent |
Counter<T> | Conteggio delle registrazioni di attivazione singola della directory inviate a una partizione di directory remota. |
orleans-directory-registrations-single-act-remote-received |
Counter<T> | Numero di registrazioni di attivazione singola della directory ricevute da host remoti. |
orleans-directory-unregistrations-issued |
Counter<T> | Conteggio delle cancellazioni della registrazione della directory effettuate. |
orleans-directory-unregistrations-local |
Counter<T> | Conteggio delle deregistrazioni di directory gestite dalla partizione di directory locale. |
orleans-directory-unregistrations-remote-sent |
Counter<T> | Conteggio delle cancellazioni di directory inviate alle partizioni di directory remote. |
orleans-directory-unregistrations-remote-received |
Counter<T> | Conteggio delle deregistrazioni di directory ricevute dagli host remoti. |
orleans-directory-unregistrations-many-issued |
Counter<T> | Conteggio delle cancellazioni di attivazione multipla della directory effettuate. |
orleans-directory-unregistrations-many-remote-sent |
Counter<T> | Conteggio delle deregistrazioni delle multi-attivazioni della directory inviate alle partizioni di directory remote. |
orleans-directory-unregistrations-many-remote-received |
Counter<T> | Conteggio delle deregistrazioni di attivazione multipla della directory ricevute dagli host remoti. |
Anello coerente
Nella tabella seguente viene illustrata una raccolta di misuratori ad anello coerenti usati per monitorare lo strato ad anello Orleans coerente.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-consistent-ring-size |
ObservableGauge<T> | Misuratore osservabile che rappresenta le dimensioni coerenti dell'anello. |
orleans-consistent-ring-range-percentage-local |
ObservableGauge<T> | Indicatore osservabile che rappresenta la percentuale locale costante dell'anello. |
orleans-consistent-ring-range-percentage-average |
ObservableGauge<T> | Misuratore osservabile che rappresenta la percentuale media dell'anello costante. |
Cane da guardia
La tabella seguente mostra una raccolta di contatori watchdog usati per sorvegliare il Orleans livello watchdog.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-watchdog-health-checks |
Counter<T> | Conteggio dei controlli di integrità del watchdog. |
orleans-watchdog-health-checks-failed |
Counter<T> | Conteggio dei controlli di integrità del watchdog non riusciti. |
Cliente
La tabella seguente mostra una raccolta di contatori client usati per monitorare il Orleans livello client.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-client-connected-gateways |
ObservableGauge<T> | Misuratore osservabile che rappresenta il numero di client gateway connessi. |
Misto
La tabella seguente mostra una raccolta di contatori vari usati per monitorare vari livelli.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-grains |
Counter<T> | Conteggio che rappresenta il numero di grani. |
orleans-system-targets |
Counter<T> | Conteggio che rappresenta il numero di destinazioni di sistema. |
Richieste di app
La tabella seguente mostra una raccolta di contatori usati per monitorare il livello delle richieste dell'applicazione Orleans.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-app-requests-latency |
ObservableCounter<T> | Contatore osservabile che rappresenta la latenza della richiesta dell'app. |
orleans-app-requests-timedout |
ObservableCounter<T> | Contatore osservabile che rappresenta le richieste delle app scadute. |
Promemoria
Nella tabella seguente viene illustrata una raccolta di contatori dei promemoria usati per monitorare il livello di Orleans promemoria.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-reminders-tardiness |
Histogram<T> | Un istogramma che rappresenta il numero di secondi di ritardo di un promemoria. |
orleans-reminders-active |
ObservableGauge<T> | Misuratore osservabile che rappresenta il numero di promemoria attivi. |
orleans-reminders-ticks-delivered |
Counter<T> | Conteggio che rappresenta il numero di notifiche di promemoria consegnate. |
Immagazzinamento
La tabella seguente illustra una raccolta di contatori di archiviazione usati per monitorare il Orleans livello di archiviazione.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-storage-read-errors |
Counter<T> | Quantità rappresentante il numero di errori di lettura della memoria. |
orleans-storage-write-errors |
Counter<T> | Conteggio che rappresenta il numero di errori di scrittura di archiviazione. |
orleans-storage-clear-errors |
Counter<T> | Conteggio che rappresenta il numero di errori di cancellazione dello spazio di archiviazione. |
orleans-storage-read-latency |
Histogram<T> | Istogramma che rappresenta la latenza di lettura dell'archiviazione in millisecondi. |
orleans-storage-write-latency |
Histogram<T> | Istogramma che rappresenta la latenza di scrittura dell'archiviazione in millisecondi. |
orleans-storage-clear-latency |
Histogram<T> | Istogramma che rappresenta la latenza di archiviazione non crittografata in millisecondi. |
Flussi
La tabella seguente mostra una raccolta di contatori di flusso utilizzati per monitorare lo strato del flusso Orleans.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-streams-pubsub-producers-added |
Counter<T> | Conteggio di produttori pubsub in streaming aggiunti. |
orleans-streams-pubsub-producers-removed |
Counter<T> | Conteggio dei producer pubsub di streaming rimossi. |
orleans-streams-pubsub-producers |
Counter<T> | Conteggio dei produttori di streaming Pub/Sub. |
orleans-streams-pubsub-consumers-added |
Counter<T> | Conteggio dei consumatori pubsub di streaming aggiunti. |
orleans-streams-pubsub-consumers-removed |
Counter<T> | Conteggio dei consumer pubsub di streaming rimossi. |
orleans-streams-pubsub-consumers |
Counter<T> | Conteggio dei consumatori dello streaming pubsub. |
orleans-streams-persistent-stream-pulling-agents |
ObservableGauge<T> | Misuratore osservabile che rappresenta il numero di agenti di stream pull persistenti. |
orleans-streams-persistent-stream-messages-read |
Counter<T> | Conteggio dei messaggi di flusso persistente letti. |
orleans-streams-persistent-stream-messages-sent |
Counter<T> | Conteggio dei messaggi di flusso persistente inviati. |
orleans-streams-persistent-stream-pubsub-cache-size |
ObservableGauge<T> | Indicatore osservabile che rappresenta la dimensione della cache pubsub del flusso persistente. |
orleans-streams-queue-initialization-failures |
Counter<T> | Numero degli errori di inizializzazione della coda Steam. |
orleans-streams-queue-initialization-duration |
Counter<T> | Conteggio delle occorrenze di inizializzazione della coda di vapore. |
orleans-streams-queue-initialization-exceptions |
Counter<T> | Conteggio delle eccezioni di inizializzazione della coda Steam. |
orleans-streams-queue-read-failures |
Counter<T> | Numero di errori di lettura della coda di attesa del vapore. |
orleans-streams-queue-read-duration |
Counter<T> | Conteggio delle occorrenze di lettura della coda di Steam. |
orleans-streams-queue-read-exceptions |
Counter<T> | Numero di eccezioni di lettura della coda di Steam. |
orleans-streams-queue-shutdown-failures |
Counter<T> | Conteggio degli errori di arresto della coda di vapore. |
orleans-streams-queue-shutdown-duration |
Counter<T> | Conteggio delle occorrenze di arresto della coda di vapore. |
orleans-streams-queue-shutdown-exceptions |
Counter<T> | Conteggio delle eccezioni di arresto della coda di vapore. |
orleans-streams-queue-messages-received |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di messaggi della coda di flusso ricevuti. |
orleans-streams-queue-oldest-message-enqueue-age |
ObservableGauge<T> | Misuratore monitorabile che rappresenta l'età del messaggio in coda più vecchio. |
orleans-streams-queue-newest-message-enqueue-age |
ObservableGauge<T> | Misuratore osservabile che rappresenta l'età del messaggio accodato più recente. |
orleans-streams-block-pool-total-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria totale del pool di blocchi di flusso in byte. |
orleans-streams-block-pool-available-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria disponibile in byte del pool di blocchi di flusso. |
orleans-streams-block-pool-claimed-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria richiesta in byte del pool di blocchi di flusso. |
orleans-streams-block-pool-released-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria rilasciata in byte del pool di blocchi di flusso. |
orleans-streams-block-pool-allocated-memory |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria allocata in byte del pool di blocchi di flusso. |
orleans-streams-queue-cache-size |
ObservableCounter<T> | Contatore osservabile che rappresenta la dimensione della cache della coda di flusso in byte. |
orleans-streams-queue-cache-length |
ObservableCounter<T> | Contatore osservabile che rappresenta la lunghezza della coda del flusso. |
orleans-streams-queue-cache-messages-added |
ObservableCounter<T> | Contatore osservabile che rappresenta i messaggi della coda di flusso aggiunti. |
orleans-streams-queue-cache-messages-purged |
ObservableCounter<T> | Un contatore osservabile che rappresenta i messaggi eliminati dalla coda di flusso. |
orleans-streams-queue-cache-memory-allocated |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria della coda di flusso allocata. |
orleans-streams-queue-cache-memory-released |
ObservableCounter<T> | Contatore osservabile che rappresenta la memoria della coda di flusso rilasciata. |
orleans-streams-queue-cache-oldest-to-newest-duration |
ObservableGauge<T> | Indicatore osservabile che rappresenta la durata dalla cache della coda di flusso più antica alla più recente. |
orleans-streams-queue-cache-oldest-age |
ObservableGauge<T> | Indicatore osservabile che rappresenta l'età del messaggio nella cache più vecchio. |
orleans-streams-queue-cache-pressure |
ObservableGauge<T> | Misuratore osservabile che rappresenta la pressione sulla cache della coda di streaming. |
orleans-streams-queue-cache-under-pressure |
ObservableGauge<T> | Misuratore osservabile che indica se la cache della coda di flusso è sotto pressione. |
orleans-streams-queue-cache-pressure-contribution-count |
ObservableCounter<T> | Contatore osservabile che rappresenta i contributi di pressione della cache della coda di flusso. |
Transazioni
Nella tabella seguente viene illustrata una raccolta di contatori delle transazioni usati per monitorare il Orleans livello delle transazioni.
| Nome contatore | TIPO | Descrizione |
|---|---|---|
orleans-transactions-started |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di transazioni avviate. |
orleans-transactions-successful |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di transazioni riuscite. |
orleans-transactions-failed |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di transazioni non riuscite. |
orleans-transactions-throttled |
ObservableCounter<T> | Contatore osservabile che rappresenta il numero di transazioni limitate. |
Prometeo
Diversi provider di metriche di terze parti sono disponibili per l'uso con Orleans. Un esempio comune è Prometheus, che è possibile usare per raccogliere metriche dall'app con OpenTelemetry.
Per usare OpenTelemetry e Prometheus con Orleans, chiamare il metodo di estensione seguente IServiceCollection :
builder.Services.AddOpenTelemetry()
.WithMetrics(metrics =>
{
metrics
.AddPrometheusExporter()
.AddMeter("Microsoft.Orleans");
});
Importante
Entrambi i pacchetti NuGet OpenTelemetry.Exporter.Prometheus e OpenTelemetry.Exporter.Prometheus.AspNetCore sono attualmente in anteprima come candidati al rilascio. Non sono consigliati per l'uso in produzione.
Il AddPrometheusExporter metodo garantisce che l'oggetto PrometheusExporter venga aggiunto all'oggetto builder.
Orleans usa un Meter oggetto denominato "Microsoft.Orleans" per creare Counter<T> istanze per molte Orleansmetriche specifiche. Utilizzare il AddMeter metodo per specificare il nome del contatore a cui sottoscrivere, in questo caso . "Microsoft.Orleans"
Dopo aver configurato l'utilità di esportazione e costruito l'app, chiamate MapPrometheusScrapingEndpoint su IEndpointRouteBuilder (l'istanza app) per esporre le metriche a Prometheus. Per esempio:
WebApplication app = builder.Build();
app.MapPrometheusScrapingEndpoint();
app.Run();
Tracciamento distribuito
La traccia distribuita è un set di strumenti e procedure per il monitoraggio e la risoluzione dei problemi delle applicazioni distribuite. Si tratta di un componente chiave dell'osservabilità e di uno strumento critico per comprendere il comportamento dell'app. Orleans supporta la traccia distribuita con OpenTelemetry.
Indipendentemente dall'esportatore di tracciamento distribuito scelto, chiamate:
- AddActivityPropagation(ISiloBuilder): che abilita il tracciamento distribuito per il silo.
- AddActivityPropagation(IClientBuilder): che abilita il tracciamento distribuito per il client.
In alternativa, impostare l'opzione EnableDistributedTracing di configurazione su true.
Facendo riferimento all'appOrleans di esempio GPS Tracker, è possibile usare il sistema di traccia distribuita Zipkin per monitorare l'app aggiornando Program.cs. Per usare OpenTelemetry e Zipkin con Orleans, chiamare il metodo di estensione seguente IServiceCollection :
builder.Services.AddOpenTelemetry()
.WithTracing(tracing =>
{
// Set a service name
tracing.SetResourceBuilder(
ResourceBuilder.CreateDefault()
.AddService(serviceName: "GPSTracker", serviceVersion: "1.0"));
tracing.AddSource("Microsoft.Orleans.Runtime");
tracing.AddSource("Microsoft.Orleans.Application");
tracing.AddZipkinExporter(zipkin =>
{
zipkin.Endpoint = new Uri("http://localhost:9411/api/v2/spans");
});
});
Importante
Il pacchetto NuGet OpenTelemetry.Exporter.Zipkin è attualmente in anteprima come candidato al rilascio. Non è consigliabile per l'uso in produzione.
La traccia Zipkin viene visualizzata nell'interfaccia utente di Jaeger (un'alternativa a Zipkin che usa lo stesso formato di dati):
Per altre informazioni, vedere Traccia distribuita.
Orleans restituisce le statistiche di runtime e le metriche tramite l'interfaccia ITelemetryConsumer . L'applicazione può registrare uno o più consumatori di telemetria per i suoi silo e client per ricevere statistiche e metriche che il Orleans runtime pubblica periodicamente. Questi possono essere utenti per soluzioni comuni o personalizzate di analisi dei dati di telemetria per qualsiasi altra destinazione e scopo. Attualmente sono inclusi tre consumatori di telemetria nella codebase Orleans.
Vengono rilasciati come pacchetti NuGet separati:
Microsoft.Orleans.OrleansTelemetryConsumers.AI: per la pubblicazione in Azure Application Insights.Microsoft.Orleans.OrleansTelemetryConsumers.Counters: per la pubblicazione nei contatori delle prestazioni di Windows. Il Orleans runtime li aggiorna continuamente. Lo strumento CounterControl.exe , incluso nelMicrosoft.Orleans.CounterControlpacchetto NuGet, consente di registrare le categorie di contatori delle prestazioni necessarie. Deve essere eseguito con privilegi elevati. Monitorare i contatori delle prestazioni usando qualsiasi strumento di monitoraggio standard.Microsoft.Orleans.OrleansTelemetryConsumers.NewRelic: per la pubblicazione in New Relic.
Per configurare il silo e il client affinché utilizzino i consumatori di telemetria, il codice di configurazione del silo sarà simile al seguente:
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
});
Il codice di configurazione client è simile al seguente:
var clientBuilder = new ClientBuilder();
clientBuilder.AddApplicationInsightsTelemetryConsumer("INSTRUMENTATION_KEY");
Per usare un TelemetryConfiguration personalizzato (che potrebbe avere TelemetryProcessors, TelemetrySinks, e così via), il codice di configurazione del silo è simile al seguente:
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
var siloHostBuilder = new HostBuilder()
.UseOrleans(c =>
{
c.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);
});
Il codice di configurazione client è simile al seguente:
var clientBuilder = new ClientBuilder();
var telemetryConfiguration = TelemetryConfiguration.CreateDefault();
clientBuilder.AddApplicationInsightsTelemetryConsumer(telemetryConfiguration);