Configurazione delle regole di campionamento di - AWS X-Ray

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione delle regole di campionamento di

Puoi utilizzare la AWS X-Ray console per configurare le regole di campionamento per i tuoi servizi. AWS Distro for OpenTelemetry, X-Ray SDK Servizi AWS e che supportano il tracciamento attivo con configurazioni di campionamento utilizzano regole di campionamento per determinare quali richieste registrare.

Configurazione delle regole di campionamento di

Puoi configurare il campionamento per i seguenti casi d'uso:

  • API Gateway Entrypoint: API Gateway supporta il campionamento e il tracciamento attivo. Per abilitare il tracciamento attivo su una fase API, consultare Supporto di tracciamento attivo di Amazon API Gateway per AWS X-Ray.

  • AWS AppSync— AWS AppSync supporta il campionamento e il tracciamento attivo. Per abilitare il tracciamento attivo sulle AWS AppSync richieste, vedere Tracciamento con AWS X-Ray.

  • AWS Step Functions— AWS Step Functions supporta il campionamento e il tracciamento attivo. Per abilitare il tracciamento attivo sulle macchine a AWS Step Functions stati, vedere X-Ray tracing in Step Functions.

  • Instrument AWS Distro per OpenTelemetry piattaforme di elaborazione: quando si utilizzano piattaforme di elaborazione come Amazon, EC2 Amazon ECS o AWS Elastic Beanstalk, il campionamento è supportato se l'applicazione è stata strumentata con la versione più recente di AWS Distro for o X-Ray SDK. OpenTelemetry

Personalizzazione delle regole di campionamento

Personalizzando le regole di campionamento, puoi controllare la quantità di dati che registri. È inoltre possibile modificare il comportamento di campionamento senza modificare o ridistribuire il codice. Le regole di campionamento indicano a AWS Distro for OpenTelemetry (ADOT) o X-Ray SDK quante richieste registrare per una serie di criteri. Per impostazione predefinita, l'SDK registra la prima richiesta ogni secondo e il cinque percento di tutte le richieste aggiuntive. Una richiesta al secondo è la riserva. In questo modo viene registrata almeno una traccia al secondo, purché il servizio soddisfi le richieste. Cinque percento è la percentuale di richieste aggiuntive oltre la dimensione della riserva che vengono campionate.

Puoi configurare l'SDK X-Ray per leggere le regole di campionamento da un documento JSON incluso nel codice. Tuttavia, quando esegui più istanze del servizio, ogni istanza esegue il campionamento in modo indipendente. Ciò fa sì che la percentuale globale di richieste campionate aumenti perché tutte le riserve delle istanze sono cumulate insieme in modo efficace. Inoltre, per aggiornare le regole di campionamento locali, è necessario ridistribuire il codice.

Definendo le regole di campionamento nella console X-Ray e configurando l'SDK per leggere le regole dal servizio X-Ray, puoi evitare entrambi questi problemi. Il servizio gestisce la riserva per ciascuna regola e assegna delle quote ad ogni istanza del servizio per distribuire la riserva in modo uniforme, in base al numero di istanze in esecuzione. Il limite del serbatoio viene calcolato in base alle regole impostate. Poiché le regole sono configurate nel servizio, è possibile gestirle senza effettuare implementazioni aggiuntive.

Nota

Quando si configurano le regole di campionamento, è fondamentale comprendere che il campionamento a raggi X è «basato sui genitori». Ciò significa che la decisione di campionamento viene presa una sola volta, in genere dal primo X-Ray-enabled servizio che gestisce la richiesta (il servizio «Root»).

Se un servizio a valle riceve una richiesta che contiene già una decisione di campionamento da parte di un fornitore a monte, rispetterà tale decisione indipendentemente dalle regole di campionamento corrispondenti.

  • Quando si applicano le regole: le regole di campionamento personalizzate hanno effetto solo sui servizi per i quali non è stata ancora presa una decisione sul campionamento. Questo di solito si applica a:

    • Il punto di ingresso dell'applicazione (ad esempio, un API Gateway, un Load Balancer o il primo microservizio strumentato).

    • Processi o lavoratori asincroni che avviano una nuova traccia.

  • Errore comune: se si crea una regola di campionamento rigorosa per il «Servizio B», ma il «Servizio B» viene sempre chiamato dal «Servizio A», è probabile che la regola per il Servizio B non venga mai applicata perché segue semplicemente la decisione emessa dal Servizio A. Per modificare il campionamento delle tracce per questo flusso di lavoro, è necessario configurare la regola di campionamento sul servizio Root (Servizio A).

Nota

X-Ray utilizza un approccio ottimale nell'applicazione delle regole di campionamento e, in alcuni casi, la frequenza di campionamento effettiva potrebbe non corrispondere esattamente alle regole di campionamento configurate. Tuttavia, nel tempo il numero di richieste campionate dovrebbe avvicinarsi alla percentuale configurata.

Ora puoi configurare le regole di campionamento a raggi X direttamente dalla console Amazon. CloudWatch

Per configurare le regole di campionamento nella console CloudWatch
  1. Accedi a Console di gestione AWS e apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Scegli Impostazioni nel riquadro di navigazione a sinistra sotto Configurazione.

  3. Scegliete Visualizza impostazioni in Regole di campionamento all'interno della sezione Tracce X-Ray.

  4. Per creare una regola, scegliere Create sampling rule (Crea regola di campionamento).

    Per modificare una regola, scegliete una regola e scegliete Modifica per modificarla.

    Per eliminare una regola, scegli una regola e scegli Elimina per eliminarla.

Opzioni delle regole di campionamento

Per ogni regola sono disponibili le seguenti opzioni. I valori di stringa possono utilizzare caratteri jolly per corrispondere a un solo carattere (?) o a zero o a più caratteri (*).

Opzioni delle regole di campionamento
  • Nome della regola (stringa): un nome univoco per la regola.

  • Priorità (numero intero compreso tra 1 e 9999): la priorità della regola di campionamento. I servizi valutano le regole in ordine crescente di priorità e prendono una decisione sul campionamento in base alla prima regola corrispondente.

  • Reservoir (numero intero non negativo): un numero fisso di richieste corrispondenti allo strumento al secondo, prima dell'applicazione del tasso fisso. Il reservoir non viene utilizzato direttamente dai servizi, ma si applica a tutti i servizi che utilizzano la regola nel loro complesso.

  • Tasso (numero intero compreso tra 0 e 100): la percentuale di richieste corrispondenti allo strumento, dopo l'esaurimento del serbatoio. Quando configuri una regola di campionamento nella console, scegli una percentuale compresa tra 0 e 100. Quando configuri una regola di campionamento in un SDK client utilizzando un documento JSON, fornisci un valore percentuale compreso tra 0 e 1.

  • Nome del servizio (stringa): il nome del servizio strumentato, così come appare nella mappa di traccia.

    • X-Ray SDK: il nome del servizio configurato sul registratore.

    • Amazon API Gateway —api-name/stage.

  • Tipo di servizio (stringa): il tipo di servizio, così come appare nella mappa di traccia. Per X-Ray SDK, imposta il tipo di servizio applicando il plug-in appropriato:

    • AWS::ElasticBeanstalk::Environment— Un AWS Elastic Beanstalk ambiente (plugin).

    • AWS::EC2::Instance— Un' EC2 istanza Amazon (plugin).

    • AWS::ECS::Container— Un contenitore Amazon ECS (plug-in).

    • AWS::EKS::Container— Un contenitore Amazon EKS (plug-in).

    • AWS::APIGateway::Stage— Una fase di Amazon API Gateway.

    • AWS::AppSync::GraphQLAPI — Una richiesta AWS AppSync API.

    • AWS::StepFunctions::StateMachine— Una macchina a AWS Step Functions stati.

  • Host (stringa): il nome host dall'intestazione dell'host HTTP.

  • Metodo HTTP (stringa) — Il metodo della richiesta HTTP.

  • Percorso URL (stringa) — Il percorso URL della richiesta.

    • X-Ray SDK: la parte del percorso dell'URL della richiesta HTTP.

  • ARN della risorsa (stringa) — L'ARN della AWS risorsa che esegue il servizio.

    • X-Ray SDK: non supportato. L'SDK può solo utilizzare le regole con Resource ARN (ARN risorse) impostato su *.

    • Amazon API Gateway: l'ARN di fase.

  • (Facoltativo) Attributi (chiave e valore): attributi del segmento noti al momento della decisione di campionamento.

    • X-Ray SDK: non supportato. L'SDK ignora le regole che specificano degli attributi.

    • Amazon API Gateway: intestazioni della richiesta HTTP originale.

  • (Facoltativo) SamplingRateBoost(oggetto): controlla il comportamento di incremento del campionamento basato sulle anomalie.

    • MaxRate (numero intero compreso tra 0 e 100) — La frequenza di campionamento massima (0,0—1,0) I raggi X possono aumentare fino a durante le anomalie

    • CooldownWindowMinutes (numero intero maggiore di 0) — Intervallo temporale (minuti) in cui è possibile attivare un solo boost, impedendo aumenti continui

Esempi di regole di campionamento

Esempio — Regola predefinita senza riserva e tariffa bassa

Puoi modificare la riserva e la percentuale della regola di default. La regola di default si applica alle richieste che non soddisfano nessun'altra regola.

  • Serbatoio: 0

  • Frequenza: 5 (0.05se configurata utilizzando un documento JSON)

Esempio — Regola di debug per tracciare tutte le richieste relative a un percorso problematico

Un regola ad alta priorità applicata temporaneamente per il debug.

  • Nome della regola: DEBUG – history updates

  • Priorità: 1

  • Serbatoio: 1

  • Frequenza: 100 (1se configurata utilizzando un documento JSON)

  • Nome del servizio: Scorekeep

  • Tipo di servizio: *

  • Ospite: *

  • Metodo HTTP: PUT

  • Percorso URL: /history/*

  • ARN della risorsa: *

Esempio — Tariffa minima più elevata per POSTs
  • Nome della regola: POST minimum

  • Priorità: 100

  • Serbatoio: 10

  • Frequenza: 10 (.1se configurata utilizzando un documento JSON)

  • Nome del servizio: *

  • Tipo di servizio: *

  • Ospite: *

  • Metodo HTTP: POST

  • Percorso URL: *

  • ARN della risorsa: *

Esempio Abilita il potenziamento basato sulle anomalie

Configura una regola che attivi un aumento del campionamento fino al 50% durante le anomalie, con un tempo di recupero di 10 minuti.

  • Nome della regola: MyAdaptiveRule

  • Priorità: 100

  • Serbatoio: 1

  • FixedRate: 0.0510

  • Nome del servizio: *

  • Tipo di servizio: *

  • Ospite: *

  • Metodo HTTP: POST

  • Percorso URL: *

  • Velocità massima: 0.5

  • cooldownWindowMinutes: 10

Configurazione del servizio per l'utilizzo delle regole di campionamento

L'SDK AWS Distro for OpenTelemetry (ADOT) e X-Ray richiedono una configurazione aggiuntiva per utilizzare le regole di campionamento configurate nella console. Consulta la sezione dedicata alla configurazione per il tuo linguaggio per scoprire i dettagli sulla configurazione di una strategia di campionamento:

Per API Gateway, vedereSupporto di tracciamento attivo di Amazon API Gateway per AWS X-Ray.

Visualizzazione dei risultati del campionamento

La pagina di campionamento della console X-Ray mostra informazioni dettagliate su come i servizi utilizzano ciascuna regola di campionamento.

La colonna Trend (Tendenza) mostra come la regola è stata utilizzata negli ultimi minuti. Ogni colonna mostra le statistiche relative a una finestra di 10 secondi.

Statistiche di campionamento
  • Regola di corrispondenza totale: il numero di richieste corrispondenti a questa regola. Questo numero non include le richieste che avrebbero potuto soddisfare questa regola, ma che hanno soddisfatto prima una regola ad alta priorità.

  • Totale campionato: il numero di richieste registrate.

  • Campionato con tasso fisso: il numero di richieste campionate applicando la tariffa fissa della regola.

  • Campionato con limite di riserva: il numero di richieste campionate utilizzando una quota assegnata da X-Ray.

  • Prese in prestito dal serbatoio: il numero di richieste campionate prendendo in prestito dal serbatoio. La prima volta che un servizio abbina una richiesta a una regola, X-Ray non gli ha ancora assegnato una quota. Tuttavia, se il serbatoio è almeno 1, il servizio prende in prestito una traccia al secondo fino a quando X-Ray non assegna una quota.

Per ulteriori informazioni sulle statistiche di campionamento e su come i servizi utilizzano le regole di campionamento, consulta Using sampling rules with the X-Ray API (Utilizzo delle regole di campionamento con l'API X-Ray).

Fasi successive

È possibile utilizzare l'API X-Ray per gestire le regole di campionamento. Con l'API puoi creare e aggiornare le regole in modo programmatico in base a una pianificazione o in risposta ad allarmi o notifiche. Consulta Configurazione delle impostazioni di campionamento e di crittografia tramite l'API AWS X-Ray per le istruzioni di utilizzo e ulteriori esempi di regole.

AWS Distro for OpenTelemetry, X-Ray SDK Servizi AWS e X-Ray utilizzano anche l'API X-Ray per leggere le regole di campionamento, riportare i risultati del campionamento e ottenere obiettivi di campionamento. I servizi devono tenere traccia della frequenza con cui applicano ogni regola, valutare le regole in base alla priorità e prendere in prestito dal serbatoio quando una richiesta corrisponde a una regola per la quale X-Ray non ha ancora assegnato una quota al servizio. Per ulteriori informazioni su come un servizio utilizza l'API per la campionatura, consulta Using sampling rules with the X-Ray API (Utilizzo delle regole di campionamento con l'API X-Ray).

Quando AWS Distro for OpenTelemetry o X-Ray SDK effettuano il APIs campionamento delle chiamate, usano CloudWatch l'agente come proxy. Se utilizzi già la porta TCP 2000, puoi configurare l'agente per eseguire il proxy su una porta diversa. Per i dettagli, consulta la guida all'installazione dell'CloudWatch agente.