View a markdown version of this page

Salva e riesegui le query di Logs Insights CloudWatch - CloudWatch Registri Amazon

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

Salva e riesegui le query di Logs Insights CloudWatch

Dopo aver creato una query, è possibile salvarla in modo da poterla eseguire di nuovo in un secondo momento. Le interrogazioni vengono salvate in una struttura di cartelle, in modo da poterle organizzare. Puoi salvare fino a 1000 query per regione per account.

Le interrogazioni vengono salvate a un Region-specific livello, non a un livello specifico dell'utente. Se si crea e si salva una query, gli altri utenti con accesso ai CloudWatch log nella stessa regione possono visualizzare tutte le query salvate e le relative strutture di cartelle nella regione.

Per salvare una query, è necessario accedere a un ruolo che dispone dell'autorizzazione logs:PutQueryDefinition. Per visualizzare un elenco di query salvate, è necessario accedere a un ruolo che dispone dell'autorizzazione logs:DescribeQueryDefinitions.

Nota

È possibile creare e salvare query con parametri, ovvero modelli riutilizzabili con segnaposto denominati. Invece di salvare più varianti della stessa query con valori diversi, create un modello e fornite valori di parametro diversi quando lo eseguite. Questa funzionalità è attualmente supportata per le query che utilizzano solo il linguaggio di interrogazione Logs Insights. Per ulteriori informazioni, consulta Utilizzo delle query salvate con parametri.

Console

Per salvare un'interrogazione

  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel pannello di navigazione scegli Logs (Registri), quindi Logs Insights.

  3. Nell'editor di query, crea una query.

  4. Scegli Save (Salva).

  5. Immettere un nome per la query.

  6. (Facoltativo) Scegliere una cartella in cui si desidera salvare la query. Selezionare Create new (Crea nuova) per creare una cartella. Se si crea una nuova cartella, è possibile utilizzare i caratteri barra (/) nel nome della cartella per definire una struttura di cartelle. Ad esempio, la denominazione di una nuova cartella folder-level-1/folder-level-2 crea una cartella di livello superiore denominata folder-level-1, con un'altra cartella chiamata folder-level-2 all'interno di tale cartella. La query viene salvata in folder-level-2.

  7. (Facoltativo) Modificare i gruppi di log o il testo della query.

  8. (Facoltativo) Per utilizzare i parametri nella tua query, segui questi passaggi aggiuntivi:

    1. Aggiungi parametri alla tua query. Sostituisci i valori statici con segnaposto utilizzando la {{parameter}} sintassi (doppie parentesi graffe prima e dopo il nome del parametro).

      Esempio: interrogazione originale con valori statici:

      fields @timestamp, @message | filter level = "Error" | filter applicationName = "OrderService"

      Query aggiornata con parametri:

      fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}
    2. Definisci i parametri utilizzati nella tua query. Per ogni parametro segnaposto, specificare:

      • Nome: deve corrispondere esattamente al nome del segnaposto (ad esempio,). logLevel applicationName

      • Valore predefinito (opzionale): il valore da utilizzare se non viene fornito alcun valore di parametro.

      • Descrizione (opzionale): spiega lo scopo del parametro.

    3. Le interrogazioni con parametri possono essere eseguite utilizzando il nome della query con un $ prefisso e passando i nomi dei parametri come coppie chiave-valore. Per informazioni dettagliate, vedere Per eseguire una query salvata.

  9. Scegli Save (Salva).

AWS CLI

Per salvare un'interrogazione, usaput-query-definition:

aws logs put-query-definition \ --name "ErrorsByLevel" \ --query-string "fields @timestamp, @message | filter level = \"ERROR\"" \ --log-group-names "/aws/lambda/my-function" \ --region us-east-1

(Facoltativo) Per salvare una query con parametri, aggiungete l'--parametersopzione e utilizzate i {{parameterName}} segnaposto nella stringa di query:

aws logs put-query-definition \ --name "ErrorsByLevel" \ --query-string "fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}" \ --parameters '[{"name":"logLevel","defaultValue":"ERROR","description":"Log level to filter"},{"name":"applicationName","defaultValue":"OrderService","description":"Application name to filter"}]' \ --log-group-names "/aws/lambda/my-function" \ --region us-east-1

Per salvare un'interrogazione in una cartella, anteponete al nome della query il percorso della cartella:

aws logs put-query-definition \ --name "my-folder/ErrorsByLevel" \ --query-string "fields @timestamp, @message | filter level = {{logLevel}}" \ --parameters '[{"name":"logLevel","defaultValue":"ERROR","description":"Log level to filter"}]' \ --log-group-names "/aws/lambda/my-function" \ --region us-east-1
API

Per salvare un'interrogazione, chiama PutQueryDefinition:

{ "name": "ErrorsByLevel", "queryString": "fields @timestamp, @message | filter level = \"ERROR\"", "logGroupNames": ["/aws/lambda/my-function"] }

(Facoltativo) Per salvare una query con parametri, includi il parameters campo e utilizza i {{parameterName}} segnaposto nella stringa di query:

{ "name": "ErrorsByLevel", "queryString": "fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}", "logGroupNames": ["/aws/lambda/my-function"], "parameters": [ { "name": "logLevel", "defaultValue": "ERROR", "description": "Log level to filter" }, { "name": "applicationName", "defaultValue": "OrderService", "description": "Application name to filter" } ] }
Suggerimento

Puoi creare una cartella per le query salvate conPutQueryDefinition. Per creare una cartella per le query salvate, utilizza una barra (/) per anteporre al nome della query desiderata il nome della cartella: <folder-name>/<query-name>. Per ulteriori informazioni su questa azione, vedere. PutQueryDefinition

Console
Per eseguire una query salvata
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel pannello di navigazione scegli Logs (Registri), quindi Logs Insights.

  3. A destra, scegliere Query.

  4. Seleziona la tua richiesta dall'elenco Query salvate. Il testo dell'interrogazione viene visualizzato nell'editor delle query.

  5. (Facoltativo) Per utilizzare un'interrogazione con parametri:

    1. Scegli l'icona + accanto al nome della query nel pannello laterale Query salvate.

    2. L'interrogazione con i parametri viene visualizzata nell'editor delle query. Ad esempio, se si sceglie l'icona + accanto aErrorsByLevel, l'editor di query viene popolato con: $ErrorsByLevel(level=, applicationName=)

    3. Fornisci i valori per i parametri (level, applicationName) ed esegui la query. Ad esempio: $ErrorsByLevel(level= "ERROR", applicationName= "OrderService")

  6. Scegli Esegui.

AWS CLI

Per eseguire una query salvata con parametri

Usare start-query con la $QueryName() sintassi:

aws logs start-query \ --log-group-names "/aws/lambda/my-function" \ --start-time 1707566400 --end-time 1707570000 \ --query-string '$ErrorsByLevel(level= "ERROR", applicationName= "OrderService")' \ --region us-east-1
API

Per eseguire una query salvata con parametri

Chiama StartQuery con la $QueryName() sintassi nel queryString campo:

{ "logGroupNames": ["/aws/lambda/my-function"], "startTime": 1707566400, "endTime": 1707570000, "queryString": "$ErrorsByLevel(level=\"ERROR\", applicationName= \"OrderService\")" }
Per salvare una nuova versione di una query salvata
  1. Apri la CloudWatch console all'indirizzo. https://console.aws.amazon.com/cloudwatch/

  2. Nel pannello di navigazione scegli Logs (Registri), quindi Logs Insights.

  3. A destra, scegliere Query.

  4. Selezionare la query dall'elenco Saved queries (Query salvate). Viene visualizzata nell'editor di query.

  5. Modificare la query. Se è necessario eseguire la query per controllare il proprio lavoro, scegliere Run query (Esegui query).

  6. Quando si è pronti per salvare la nuova versione, scegliere Actions (Operazioni), Save as (Salva con nome).

  7. Immettere un nome per la query.

  8. (Facoltativo) Scegliere una cartella in cui si desidera salvare la query. Selezionare Create new (Crea nuova) per creare una cartella. Se si crea una nuova cartella, è possibile utilizzare i caratteri barra (/) nel nome della cartella per definire una struttura di cartelle. Ad esempio, la denominazione di una nuova cartella folder-level-1/folder-level-2 crea una cartella di livello superiore denominata folder-level-1, con un'altra cartella chiamata folder-level-2 all'interno di tale cartella. La query viene salvata in folder-level-2.

  9. (Facoltativo) Modificare i gruppi di log o il testo della query.

  10. Scegli Save (Salva).

Per eliminare una query, è necessario accedere a un ruolo che dispone dell'autorizzazione logs:DeleteQueryDefinition.

Per modificare o eliminare una query salvata
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel pannello di navigazione scegli Logs (Registri), quindi Logs Insights.

  3. A destra, scegliere Query.

  4. Selezionare la query dall'elenco Saved queries (Query salvate). Viene visualizzata nell'editor di query.

  5. Scegliere Actions (Operazioni), Edit (Modifica) oppure Actions (Operazioni), Delete (Elimina).

Utilizzo di interrogazioni salvate con parametri

Le interrogazioni salvate con parametri sono modelli di query riutilizzabili con segnaposto denominati. Invece di conservare più copie di interrogazioni quasi identiche, è possibile salvare un modello e fornire valori di parametro diversi durante l'esecuzione della query. I parametri sono supportati solo nel linguaggio di interrogazione CloudWatch Logs Insights.

Come funziona

Quando si salva un'interrogazione, i segnaposto identificano i valori che è possibile fornire al momento dell'esecuzione della query. I segnaposto utilizzano la sintassi. {{parameterName}} Di seguito è riportato un esempio di interrogazione salvata denominata ErrorsByLevel con due parametri e. logLevel applicationName

fields @timestamp, @message | filter level = {{logLevel}} | filter applicationName = {{applicationName}}

Per eseguire un'interrogazione salvata, è possibile richiamarla utilizzando il nome della query preceduto $ e passando i valori dei parametri. Il motore di interrogazione CloudWatch Logs Insights sostituisce ogni segnaposto. Se un parametro contiene valori predefiniti, tali valori vengono utilizzati se non vengono forniti altri valori.

# Run query by using query name and passing parameter values explicitly $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService") # Run query without specifying parameter values - default values are used in this case. $ErrorsByLevel()

I nomi delle query salvate contenenti spazi o caratteri speciali devono essere racchiusi con un segno di spunta inversa:

$`Errors By Level`(logLevel = "WARN")

Esempio di interrogazioni salvate con parametri

Aggiungere un limite di risultati come parametro

Nome della query: ErrorsByLevel con parametri logLevel (predefinito:"ERROR"), applicationName (predefinito:"OrderService") e maxResults (predefinito:50)

fields @timestamp, @message, @logStream | filter level = {{logLevel}} | filter applicationName = {{applicationName}} | sort @timestamp desc | limit {{maxResults}}
# Run the query using the query name and passing parameter values $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService", maxResults = 100)

Utilizzo di più interrogazioni salvate con parametri

L'esempio seguente utilizza ErrorsByLevel una seconda query salvata RecentN che è definita come sort @timestamp desc | limit {{count}} (con parametrocount, impostazione predefinita20). Il motore di interrogazione CloudWatch Logs Insights espande ogni query prima di eseguirla.

# Using multiple queries with parameters in sequence $ErrorsByLevel(logLevel = "WARN", applicationName = "OrderService") | $RecentN(count = 10) # Each of the queries is expanded, resulting in the following query when it is run. fields @timestamp, @message | filter level = "WARN" | filter applicationName = "OrderService" | sort @timestamp desc | limit 10

Quote e gestione degli errori

Nota

Ogni interrogazione salvata può avere un massimo di 20 parametri.

La stringa di query espansa non può superare i 10.000 caratteri. I nomi dei parametri devono iniziare con una lettera o un trattino basso. Una query salvata non può fare riferimento a un'altra query salvata (le invocazioni annidate non sono supportate).

Errori comuni
Errore Causa

I parametri sono supportati solo per il linguaggio di interrogazione CWLI

I parametri sono supportati solo nel linguaggio di interrogazione CloudWatch Logs Insights.

Parametri obbligatori non trovati in QueryString

Il nome di un parametro in --parameters non ha una corrispondenza {{placeholder}} nella stringa di query.

Il numero di parametri supera il massimo di 20

Le query salvate attualmente supportano solo 20 parametri.

Nome del parametro duplicato

La definizione della query contiene parametri duplicati in. parameters

Nota

Per creare o aggiornare una query salvata con parametri, è necessaria l'logs:PutQueryDefinitionautorizzazione. Per eseguirne una, è necessario logs:StartQuery elogs:DescribeQueryDefinitions.