CloudWatch sintassi delle espressioni di ricerca - Amazon CloudWatch

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à.

CloudWatch sintassi delle espressioni di ricerca

Un'espressione di ricerca valida ha il seguente formato.

SEARCH(' {Namespace, DimensionName1, DimensionName2, ...} SearchTerm', 'Statistic')

Ad esempio:

SEARCH('{AWS/EC2,InstanceId} MetricName="CPUUtilization"', 'Average')
  • La prima parte della query dopo la parola SEARCH, fra parentesi graffe, è lo schema di parametri in cui eseguire la ricerca. Lo schema di parametri include un spazio dei nomi parametro e uno o più nomi delle dimensioni. L'inclusione di uno schema di parametri in una query di ricerca è opzionale. Se specificato, lo schema di parametri deve includere uno spazio dei nomi e può opzionalmente includere uno o più nomi delle dimensioni validi per tale spazio dei nomi.

    Non è necessario utilizzare virgolette all'interno dello schema di parametri a meno che lo spazio dei nomi o il nome delle dimensioni non includa spezi o caratteri non alfanumerici. In questo caso, dovrai inserire fra virgolette doppie il nome che contiene tali caratteri.

  • Anche la funzione SearchTerm è facoltativa, ma una ricerca valida deve includere lo schema di parametri, la funzione SearchTerm o entrambi. La funzione SearchTerm in genere include uno o più ID account, nomi parametro o valori di dimensioni. La funzione SearchTerm può includere più termini da cercare, sia con corrispondenze parziali che con corrispondenze esatte. Può anche includere operatori booleani.

    L'utilizzo di un ID account in a SearchTerm funziona solo negli account configurati come account di monitoraggio per l'osservabilità CloudWatch tra account. La sintassi per un ID account in SearchTerm è :aws.AccountId = "444455556666". Puoi anche usare 'LOCAL' per specificare l'account di monitoraggio stesso: :aws.AccountId = 'LOCAL'

    Per ulteriori informazioni, consulta CloudWatch osservabilità tra più account.

    La funzione SearchTerm può includere uno o più identificatori, ad esempio MetricName= come in questo esempio, ma l'utilizzo di tali identificatori non è obbligatorio.

    Lo schema dei parametri e la funzione SearchTerm devono essere racchiusi insieme fra virgolette singole.

  • StatisticÈ il nome di qualsiasi statistica valida CloudWatch . Deve essere racchiusa tra virgolette singole. Per ulteriori informazioni, consulta Statistiche.

Nell'esempio precedente, era stata effettuata una ricerca nello spazio dei nomi AWS/EC2 dei parametri con InstanceId come nome di dimensione. Restituisce tutti i parametri CPUUtilization individuati e il grafico mostra la statistica Average.

Un'espressione di ricerca può trovare solo i parametri che hanno riportato dati nelle ultime due settimane.

Limiti dell'espressione di ricerca

Le dimensioni massime della query dell'espressione di ricerca è di 1024 caratteri. In un grafico puoi avere fino a 100 espressioni di ricerca. Un grafico può possibile visualizzare fino a 500 serie temporali.

CloudWatch espressioni di ricerca: tokenizzazione

Quando si specifica aSearchTerm, la funzione di ricerca cerca i token, che sono sottostringhe generate CloudWatch automaticamente da nomi di metriche completi, nomi di dimensione, valori di dimensione e namespace. CloudWatch genera token distinti dalla maiuscola camel-case nella stringa originale. I caratteri numerici fungono anche da inizio dei nuovi token, mentre i caratteri non alfanumerici fungono da delimitatori, creando token prima e dopo i caratteri non alfanumerici.

Una stringa continua dello stesso tipo del carattere di delimitazione del token crea un token.

Tutti i token generati sono in lettere minuscole. La tabella seguente mostra alcuni esempi di token generati.

Stringa originale Token generato

CustomCount1

customcount1, custom, count, 1

SDBFailure

sdbfailure, sdb, failure

Project2-trial333

project2trial333, project, 2, trial, 333

CloudWatch espressioni di ricerca: corrispondenze parziali

Quando si specifica aSearchTerm, anche il termine di ricerca viene tokenizzato. CloudWatchtrova le metriche in base alle corrispondenze parziali, ovvero le corrispondenze di un singolo token generato dal termine di ricerca a un singolo token generato da un nome di metrica, uno spazio dei nomi, un nome di dimensione o un valore di dimensione.

Le ricerche di corrispondenze parziali di un singolo token prevedono una distinzione tra lettere maiuscole e minuscole. Ad esempio, l'utilizzo di uno dei seguenti termini di ricerca può restituire il parametro CustomCount1:

  • count

  • Count

  • COUNT

Tuttavia, utilizzando couNT come termine di ricerca non sarà possibile trovare CustomCount1 perché l'uso di lettere maiuscole e minuscole nel termine di ricerca couNT è tokenizzato in cou e in NT.

Le ricerche, inoltre, possono restituire token compositi, ovvero più token che appaiono consecutivamente nel nome originale. Per individuare un token composito, la ricerca prevede una distinzione tra lettere maiuscole e minuscole. Ad esempio, se il termine originale è CustomCount1, le ricerche CustomCount o Count1 andranno a buon fine, mentre quelle di customcount o count1 non produrranno risultati.

CloudWatch espressioni di ricerca: corrispondenze esatte

Puoi definire una ricerca per trovare solo le corrispondenze esatte del termine di ricerca racchiudendo fra virgolette doppie la parte del termine di ricerca che richiede una corrispondenza esatta. Le virgolette doppie vengono racchiuse nelle virgolette singole utilizzate per l'intero termine di ricerca. Ad esempio, SEARCH(' {MyNamespace}, "CustomCount1" ', 'Maximum') trova la stringa esatta CustomCount1 se esiste come nome parametro, nome o valore di dimensione nello spazio dei nomi MyNamespace. Tuttavia, le ricerche di SEARCH(' {MyNamespace}, "customcount1" ', 'Maximum') o SEARCH(' {MyNamespace}, "Custom" ', 'Maximum') non troveranno questa stringa.

Puoi combinare termini di corrispondenza parziale e di corrispondenza esatta in una sola espressione di ricerca. Ad esempio, SEARCH(' {AWS/NetworkELB, LoadBalancer} "ConsumedLCUs" OR flow ', 'Maximum') restituisce il parametro Elastic Load Balancing denominato ConsumedLCUs così come tutti i parametri o le dimensioni Elastic Load Balancer che includono il token flow.

L'utilizzo della corrispondenza esatta rappresenta un buon metodo per individuare nomi con caratteri speciali, come caratteri non alfanumerici o spazi, come nell'esempio seguente.

SEARCH(' {"My Namespace", "Dimension@Name"}, "Custom:Name[Special_Characters" ', 'Maximum')

CloudWatch espressioni di ricerca: esclusione di uno schema metrico

Tutti gli esempi mostrati finora includono uno schema di parametri, racchiuso fra parentesi graffe. Anche le ricerche che escludono uno schema di parametri sono valide.

Ad esempio, SEARCH(' "CPUUtilization" ', 'Average') restituisce tutti i nomi parametro, i nomi e i valori delle dimensioni e gli spazi dei nomi che rappresentano una corrispondenza esatta della stringa CPUUtilization. Nei namespace delle AWS metriche, questo può includere metriche di diversi servizi tra cui Amazon EC2, Amazon ECS e altri. SageMaker

Per restringere questa ricerca a un solo AWS servizio, la best practice consiste nello specificare lo spazio dei nomi e tutte le dimensioni necessarie nello schema delle metriche, come nell'esempio seguente. Benché questa soluzione restringa la ricerca allo spazio dei nomi AWS/EC2, restituirà comunque i risultati di altri parametri se hai definito CPUUtilization come un valore di dimensione per tali parametri.

SEARCH(' {AWS/EC2, InstanceType} "CPUUtilization" ', 'Average')

In alternativa, puoi aggiungere lo spazio dei nomi in SearchTerm, come nell'esempio seguente. Tuttavia, in questo esempio, la ricerca restituirebbe come corrispondenza qualsiasi stringa AWS/EC2, anche se si fosse trattato di un valore o di un nome di dimensione personalizzato.

SEARCH(' "AWS/EC2" MetricName="CPUUtilization" ', 'Average')

CloudWatch espressioni di ricerca: specificazione dei nomi delle proprietà nella ricerca

La seguente ricerca di corrispondenze esatte di "CustomCount1" restituisce tutti i parametri che hanno stesso nome.

SEARCH(' "CustomCount1" ', 'Maximum')

Tuttavia, restituisce anche parametri con i nomi e valori di dimensioni o spazi dei nomi di CustomCount1. Per strutturare ulteriormente la ricerca, puoi specificare il nome della proprietà del tipo dell'oggetto da trovare nelle ricerche. L'esempio seguente ricerca tutti gli spazi dei nomi e restituisce i parametri denominati CustomCount1.

SEARCH(' MetricName="CustomCount1" ', 'Maximum')

Puoi anche utilizzare gli spazi dei nomi e le coppie nome/valore delle dimensioni come nomi delle proprietà, come negli esempi seguenti. Il primo di questi esempi mostra che come sia possibile utilizzare i nomi delle proprietà con ricerche di corrispondenze parziali.

SEARCH(' InstanceType=micro ', 'Average')
SEARCH(' InstanceType="t2.micro" Namespace="AWS/EC2" ', 'Average')

CloudWatch espressioni di ricerca: caratteri non alfanumerici

I caratteri non alfanumerici fungono da delimitatori e contrassegnano il punto in cui i nomi parametro, le dimensioni, gli spazi dei nomi e i termini di ricerca devono essere separati in token. Quando termini sono tokenizzati, i caratteri non alfanumerici vengono esclusi e non vengono visualizzati nei token. Ad esempio, Network-Errors_2 genera i token network, errors e 2.

Il termine di ricerca può includere caratteri non alfanumerici. Se questi caratteri appaiono nel termine di ricerca, possono specificare token compositi in una corrispondenza parziale. Ad esempio, tutte le ricerche seguenti individuerebbero i parametri denominati Network-Errors-2 o NetworkErrors2.

network/errors network+errors network-errors Network_Errors

Quando effettui la ricerca di valore esatto, gli eventuali caratteri non alfanumerici utilizzate nella ricerca esatta devono essere i caratteri corretti che appaiono nella stringa da ricercare. Ad esempio, per trovare Network-Errors-2, la ricerca "Network-Errors-2" andrà a buon fine, a differenza di quella di "Network_Errors_2".

Quando esegui una ricerca di corrispondenze esatte, i seguenti caratteri devono essere preceduti da barra rovesciata.

" \ ( )

Ad esempio, per trovare il nome parametro Europe\France Traffic(Network) con corrispondenza esatta, utilizza il termine di ricerca "Europe\\France Traffic\(Network\)"

CloudWatch espressioni di ricerca: operatori booleani

La ricerca supporta l'utilizzo degli operatori booleani AND, OR e NOT all'interno del SearchTerm. Gli operatori booleani sono racchiusi fra le stesse virgolette singole utilizzate per racchiudere l'intero termine di ricerca. Gli operatori booleani prevedono una distinzione tra lettere maiuscole e minuscole. Pertanto, and, or e not non sono operatori booleani validi.

Puoi utilizzare AND esplicitamente nella ricerca, ad esempio SEARCH('{AWS/EC2,InstanceId} network AND packets', 'Average'). Il mancato utilizzo di operatori booleani fra i termini di ricerca ne implica la relativa ricerca come se si trattasse di un operatore AND. Pertanto, SEARCH(' {AWS/EC2,InstanceId} network packets ', 'Average') restituirà gli stessi risultati di ricerca.

Utilizza NOT per escludere sottoinsiemi di dati dai risultati. Ad esempio, SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" NOT i-1234567890123456 ', 'Average') restituirà CPUUtilization per tutte le istanze, tranne per quella i-1234567890123456. Puoi anche utilizzare una clausola NOT come unico termine di ricerca. Ad esempio, SEARCH( 'NOT Namespace=AWS ', 'Maximum') restituisce tutti i parametri personalizzati (parametri con spazi dei nomi che non includono AWS).

Puoi utilizzare più frasi NOT in una query. Ad esempio, SEARCH(' {AWS/EC2,InstanceId} MetricName="CPUUtilization" NOT "ProjectA" NOT "ProjectB" ', 'Average') restituirà CPUUtilization per tutte le istanze nella regione, tranne per quelle con valori di dimensioni pari a ProjectA o ProjectB.

Puoi combinare operatori booleani per ricerche più potenti e dettagliate, come negli esempi seguenti. Utilizza le parentesi per raggruppare gli operatori.

I prossimi due esempi restituiscono tutti i nomi parametro contenenti ReadOps dagli spazi dei nomi EC2 ed EBS.

SEARCH(' (EC2 OR EBS) AND MetricName=ReadOps ', 'Maximum')
SEARCH(' (EC2 OR EBS) MetricName=ReadOps ', 'Maximum')

L'esempio seguente restringe la precedente ricerca solo ai risultati che includono ProjectA, che potrebbe essere il valore di una dimensione.

SEARCH(' (EC2 OR EBS) AND ReadOps AND ProjectA ', 'Maximum')

L'esempio seguente utilizza il raggruppamento nidificato. Restituisce i parametri Lambda per Errors da tutte le funzioni e Invocations di funzioni con nomi che includono le stringhe ProjectA o ProjectB.

SEARCH(' {AWS/Lambda,FunctionName} MetricName="Errors" OR (MetricName="Invocations" AND (ProjectA OR ProjectB)) ', 'Average')

CloudWatch espressioni di ricerca: utilizzo di espressioni matematiche

Puoi utilizzare un'espressione di ricerca all'interno di una matematica in un grafico.

Ad esempio, SUM(SEARCH(' {AWS/Lambda, FunctionName} MetricName="Errors" ', 'Sum')) restituisce la somma del parametro Errors di tutte le funzioni Lambda.

Utilizzando righe separate per l'espressione di ricerca e quella matematica potrebbe produrre risultati più utili. Ad esempio, supponi di utilizzare le seguenti due espressioni in un grafico. Nella prima riga sono visualizzare righe Errors separate per tutte le funzioni Lambda. L'ID di questa espressione è e1. La seconda riga aggiunge un'altra riga in cui è mostrata la somma degli errori di tutte le funzioni.

SEARCH(' {AWS/Lambda, FunctionName}, MetricName="Errors" ', 'Sum') SUM(e1)