

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
<a name="search-expression-syntax"></a>

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. `SearchTerm`Di solito contiene uno o più account IDs, nomi di metriche o valori di dimensione. 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](CloudWatch-Unified-Cross-Account.md).

  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](cloudwatch_concepts.md#Statistic).

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
<a name="search-expression-syntax-tokenization"></a>

Quando specificate a`SearchTerm`, 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
<a name="search-expression-partial-match"></a>

Quando specifichi un `SearchTerm`, anche il termine di ricerca viene tokenizzato. CloudWatch trova i parametri in base alle corrispondenze parziali, ovvero corrispondenze di un singolo token generato dal termine di ricerca fino a un singolo token generato da un nome parametro, dallo spazio dei nomi, dal nome o dal valore delle dimensioni.

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
<a name="search-expression-exact-match"></a>

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(' \$1MyNamespace\$1, "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(' \$1MyNamespace\$1, "customcount1" ', 'Maximum')** o **SEARCH(' \$1MyNamespace\$1, "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(' \$1AWS/NetworkELB, LoadBalancer\$1 "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
<a name="search-expression-no-schema"></a>

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, AI 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 metrico, 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
<a name="search-expression-type-of-search-term"></a>

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')
```

È inoltre possibile utilizzare namespace e name/value coppie di dimensioni come nomi di 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
<a name="search-expression-syntax-characters"></a>

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\$1\$1France Traffic\$1(Network\$1)"**

## CloudWatch espressioni di ricerca: operatori booleani
<a name="search-expression-boolean-operators"></a>

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('\$1AWS/EC2,InstanceId\$1 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(' \$1AWS/EC2,InstanceId\$1 network packets ', 'Average')** restituirà gli stessi risultati di ricerca.

Utilizza `NOT` per escludere sottoinsiemi di dati dai risultati. Ad esempio, **SEARCH(' \$1AWS/EC2,InstanceId\$1 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(' \$1AWS/EC2,InstanceId\$1 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
<a name="search-expression-math-expressions"></a>

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

Ad esempio, **SUM(SEARCH(' \$1AWS/Lambda, FunctionName\$1 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)
```