Questo documento descrive come bloccare i filtri a livello di dashboard in modo che questi filtri siano permanenti. I filtri bloccati, che consentono di modificare i dati visualizzati da una dashboard senza dover modificare ogni widget, hanno uno stato predefinito e vengono applicati all'intera dashboard. La barra degli strumenti della dashboard mostra ogni filtro bloccato, insieme a un menu che consente di modificare temporaneamente il valore del filtro.
Le variabili sono simili ai filtri bloccati, ma si applicano solo a widget specifici. Questo documento descrive come creare variabili e come applicarle
con un widget. Una variabile può modificare la query del widget o può
controllarne la visibilità. La barra degli strumenti della dashboard mostra
ogni variabile per nome, insieme a un menu che consente di modificare temporaneamente
il valore della variabile. Per aiutarti a distinguere i filtri dalle variabili,
nella barra degli strumenti, il nome di una variabile è preceduto dal simbolo del dollaro $
.
Questo documento descrive come utilizzare la console Google Cloud per creare variabili e filtri bloccati. Per informazioni sull'utilizzo dell'API Cloud Monitoring, consulta Crea e gestisci le dashboard tramite API: filtri della dashboard.
Per informazioni su come aggiungere e modificare raggruppamenti e filtri temporanei, che si applicano solo alla sessione corrente, vedi Aggiungere filtri temporanei a una dashboard personalizzata.
Questa funzionalità è supportata solo per i progetti Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
Informazioni sui filtri bloccati
Un filtro bloccato contiene un'etichetta, uno o più valori predefiniti e
un elenco di tutti i valori possibili. L'elenco di tutti i valori possibili viene derivato
dinamicamente dai dati delle serie temporali visualizzati nella dashboard.
Per informazioni sulla struttura di un filtro,
vedi DashboardFilter
.
Non applichi un filtro bloccato ai singoli widget. Vengono invece utilizzate le seguenti regole per determinare se il filtro bloccato può modificare i dati visualizzati dal widget:
Se il widget mostra dati che includono la chiave di etichetta specificata da un filtro bloccato e se il widget non specifica un valore per quella chiave di etichetta, il filtro bloccato può modificare i dati visualizzati.
Ad esempio, supponiamo che tu aggiunga il filtro bloccato cluster_name: mycluster. I grafici mostrano automaticamente solo le serie temporali che hanno un'etichetta cluster_name con il valore mycluster. Allo stesso modo, le query sui widget del pannello dei log vengono modificate in resource.labels."cluster_name"="mycluster" e i grafici mostrano automaticamente solo le serie temporali che includono l'etichetta nel filtro bloccato.
Un filtro bloccato viene ignorato da un widget quando il widget include un filtro per la stessa chiave dell'etichetta o quando i dati visualizzati dal widget non contengono la chiave dell'etichetta specificata nel filtro bloccato.
Informazioni sulle variabili
Una variabile ha un nome e un tipo. Una variabile viene applicata a un determinato widget
modificando la query contenuta nel widget.
Per informazioni sulla struttura di un filtro,
vedi DashboardFilter
.
Nella barra degli strumenti della dashboard, i nomi delle variabili sono preceduti dal simbolo del dollaro $
.
Se vedi anche l'icona visibility Visibile, la variabile
controlla la visibilità di almeno un widget.
Le variabili possono essere basate su etichette o avere solo un valore:
Le variabili basate su etichette sono come filtri bloccati. Queste variabili contengono una chiave di etichetta, uno o più valori di etichetta predefiniti e un elenco di tutti i valori di etichetta possibili. L'elenco di tutti i valori possibili viene derivato dinamicamente dai dati delle serie temporali visualizzati nella dashboard.
Le variabili solo valore contengono uno o più valori predefiniti e potrebbero elencare tutti i valori possibili. Se non specifichi un valore predefinito, viene selezionato l'operatore jolly
(*)
per il valore predefinito. Per definire l'insieme di tutti i valori possibili, fornisci una matrice di valori o scrivi una query SQL.Esistono tre tipi di variabili di solo valore: personalizzata, input di testo e query SQL.
Personalizzato: da utilizzare quando vuoi enumerare sia l'elenco di tutti i valori possibili sia impostare uno o più valori predefiniti. Ad esempio, puoi impostare l'elenco di tutti i valori possibili su
prod, staging, dev
e impostare il valore predefinito suprod
.Input di testo: da utilizzare quando non si conoscono tutti i valori possibili. Ad esempio, potresti voler filtrare per URL, ma quando crei la variabile, non conosci l'elenco esatto degli URL. Poi, quando utilizzi il menu dei filtri per il widget, puoi inserire nuovi URL e salvare le modifiche per la sessione corrente o nella definizione della variabile.
Query SQL: utilizza questa opzione quando vuoi generare l'elenco dei valori possibili utilizzando una query SQL. Queste variabili sono destinate a essere applicate ai grafici creati utilizzando l'analisi dei log.
Per queste variabili, assicurati che il risultato della query sia una tabella con una colonna, che il tipo di dati di questa colonna sia stringa e che ogni riga della tabella contenga un valore stringa univoco:
SELECT log_name FROM `TABLE_NAME_OF_LOG_VIEW` GROUP BY log_name
La query SQL non può dipendere da una variabile.
Per applicare una variabile a un widget, aggiorna la query emessa dal widget o la visibilità del widget. Puoi sempre modificare il widget per aggiornare la query. Tuttavia, per le variabili basate su etichette e alcuni tipi di widget, puoi aggiornare la query effettuando selezioni di menu. Per controllare la visibilità, devi modificare il widget. Per saperne di più, consulta le seguenti sezioni di questo documento:
Prima di iniziare
Completa i seguenti passaggi per il Google Cloud progetto in cui vuoi configurare filtri e variabili:
-
Per ottenere le autorizzazioni necessarie per aggiungere o modificare variabili o filtri bloccati utilizzando la console Google Cloud , chiedi all'amministratore di concederti il ruolo IAM Editor Monitoring (
roles/monitoring.editor
) sul progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Per saperne di più sui ruoli, consulta Controllare l'accesso con Identity and Access Management.
Creare e bloccare un filtro
Per creare e bloccare un filtro che si applica a tutti i widget della dashboard che supportano i filtri:
-
Nella console Google Cloud , vai alla pagina
Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
- Seleziona una dashboard, vai alla barra degli strumenti della dashboard e poi fai clic su settings Impostazioni.
- Nella sezione Filtri, fai clic su Aggiungi un filtro.
- Fai clic su arrow_drop_down Etichetta e poi seleziona un'etichetta. Ad esempio, potresti selezionare
zone
. - Per consentire a un utente di selezionare più valori dal menu dei valori della variabile, seleziona Selezione multipla. Quando l'opzione Selezione multipla non è attivata, gli utenti possono selezionare una sola opzione dal menu dei valori.
Fai clic su arrow_drop_down Valore predefinito e poi seleziona il valore o i valori predefiniti per l'etichetta. Per trovare la corrispondenza di tutti i valori, seleziona
*
.Una volta creato, il filtro viene aggiunto alla barra degli strumenti della dashboard. Per modificare temporaneamente il valore del filtro, seleziona il filtro e poi effettua una selezione dal menu.
Fai clic su Fine, quindi su Applica.
Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.
Creare una variabile
Per creare una variabile che si applichi a widget specifici della dashboard:
-
Nella console Google Cloud , vai alla pagina
Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
- Seleziona una dashboard, vai alla barra degli strumenti della dashboard e poi fai clic su settings Impostazioni.
- Nella sezione Variabili, fai clic su Aggiungi una variabile.
Seleziona il tipo di variabile e poi completa la finestra di dialogo.
Per creare una variabile basata su un'etichetta, seleziona Etichetta. Utilizza questa opzione quando vuoi una variabile con una chiave e un valore di etichetta e che possa essere utilizzata come filtro. L'elenco di tutti i valori possibili viene derivato dinamicamente dai dati delle serie temporali visualizzati nella dashboard. Il menu Applica ai grafici consente di selezionare i widget la cui query deve essere modificata dalla variabile. Puoi anche aggiornare la query modificando il widget.
Per le variabili solo valore, hai le seguenti opzioni:
SQL: utilizza questa opzione quando vuoi che i risultati di una query SQL generino l'elenco di tutti i valori possibili.
Inserisci uno o più valori predefiniti e una query SQL che generi l'elenco di tutti i valori possibili. Assicurati che il risultato della query sia una tabella con una colonna, che il tipo di dati di questa colonna sia stringa e che ogni riga della tabella contenga un valore stringa univoco.
Personalizzato: utilizza questa opzione quando vuoi specificare sia l'elenco dei valori possibili sia un valore predefinito. Ad esempio, puoi impostare il campo Valori su
prod, staging, dev
e il Valore predefinito suprod
.Input di testo: utilizza questa opzione quando vuoi specificare un elenco di valori che vengono applicati come predefiniti.
Fai clic su Fine, quindi su Applica.
Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.
Applica la variabile ai widget. Se aggiorni la query di un widget, quando modifichi il valore della variabile, la query viene modificata e i dati visualizzati dal widget vengono modificati. Puoi anche utilizzare una variabile per controllare se un widget è visibile. Per ulteriori informazioni, consulta le seguenti sezioni di questo documento:
Impostare la visibilità di un widget
Quando un widget esegue una query sui dati, puoi utilizzare una variabile per controllare se il widget è visibile in una dashboard. Ad esempio, supponiamo che un dashboard contenga widget che mostrano i dati per i tuoi sistemi di produzione e un altro insieme di widget che mostrano i dati per i tuoi sistemi di staging. Durante il debug durante lo sviluppo, potresti voler visualizzare solo i dati di staging. Configurando la visibilità dei widget della dashboard con una variabile, puoi passare dai soli dati di produzione ai soli dati di staging e a tutti i dati.
Qualsiasi tipo di variabile può controllare se un widget è visibile o nascosto.
Per configurare la visibilità di un widget:
-
Nella console Google Cloud , vai alla pagina
Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Seleziona una dashboard.
- Vai alla barra degli strumenti del widget di cui vuoi configurare la visibilità e fai clic su edit Modifica.
- Nel riquadro Display, espandi Visibilità widget.
Seleziona una variabile e completa la finestra di dialogo.
Fai clic su Fine, quindi su Applica.
Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.
La dashboard viene aggiornata. Quando almeno un widget della dashboard è nascosto a causa dei controlli di visibilità, la dashboard mostra un banner. Per visualizzare tutti i widget, fai clic su Mostra tutti i widget.
Quando utilizzi una variabile per controllare la visibilità di almeno un widget nella dashboard, nella barra degli strumenti il nome della variabile è annotato con un'icona visibility Visibile.
Limitazioni
Quando configuri la visibilità di un widget, si applicano le seguenti limitazioni:
I widget organizzativi come gruppo comprimibile, intestazione di sezione e visualizzazione singola sono sempre visibili.
Puoi eliminare una variabile a cui fanno riferimento i controlli di visibilità di un widget. L'azione di eliminazione della variabile rimuove anche qualsiasi riferimento alla variabile.
Non tutte le dashboard supportano la creazione di variabili. Tuttavia, se una dashboard contiene variabili, puoi utilizzarle per gestire la visibilità dei widget nella dashboard.
Aggiornare la query di un widget
Questa sezione descrive come includere variabili nella query emessa dal widget. Di conseguenza, quando modifichi il valore della variabile, la query viene modificata e anche i dati visualizzati dal widget vengono modificati:
Per i grafici che utilizzano query SQL o PromQL e per i widget del pannello dei log, devi modificare il widget e la query. Questa sezione descrive come apportare queste modifiche.
Per i grafici che hai configurato utilizzando i menu o la modalità di filtro diretto, Monitoring modifica la query quando selezioni il widget utilizzando il menu Applica ai grafici. In alternativa, puoi modificare il widget, andare al campo Filtro e selezionare la variabile.
Per scoprire come aggiornare la query di un widget con una variabile basata su etichetta o una variabile solo con valori, consulta le seguenti sezioni:
- Sintassi generale per dereferenziare una variabile
- Widget del pannello dei log
- Grafici con query PromQL
- Grafici con query SQL
Grafici con query di filtro di Monitoring
Quando utilizzi l'interfaccia basata su menu per creare un grafico che mostri dati delle serie temporali, le tue selezioni vengono convertite in un filtro di Monitoring.
Creare filtri e variabili
Console
Per informazioni su come utilizzare la console Google Cloud per creare filtri e variabili bloccati, consulta i seguenti documenti:
API
Per definire filtri e variabili bloccati, utilizza la struttura dei dati
dashboardFilters
.
- Per creare una variabile, imposta il valore del campo
templateVariable
sul nome della variabile. Ometti questo campo o imposta il valore su una stringa vuota quando vuoi creare un filtro bloccato. - Per creare un filtro bloccato o una variabile basata su etichette, devi specificare
il campo
labelKey
. Ometti questo campo quando vuoi una variabile solo con valori. Imposta il valore predefinito per il filtro o la variabile. La configurazione di questo campo determina se un utente può selezionare esattamente un'opzione dal menu di valori o se può selezionare più valori.
- Per impostare un singolo valore predefinito e limitare la selezione di una sola opzione nel menu dei valori, imposta il campo
valueType
comeSTRING
e anche il campostringValue
:
"valueType": "STRING", "stringValue": "my-default-value",
- Per impostare almeno un valore predefinito e consentire agli utenti di selezionare più opzioni
nel menu dei valori, imposta il campo
valueType
comeSTRING_ARRAY
e imposta anche il campostringArrayValue
. Nell'esempio seguente, sono presenti tre valori predefiniti.
"valueType": "STRING_ARRAY", "stringArrayValue": { "values": [ "a", "b", "c" ] },
- Per impostare un singolo valore predefinito e limitare la selezione di una sola opzione nel menu dei valori, imposta il campo
(Facoltativo) Per specificare l'elenco di tutti i valori possibili per una variabile solo valore, imposta il campo
stringArray
o il campotimeSeriesQuery
. Se specifichi una query, deve essere una query di analisi.
Ad esempio, considera il seguente oggetto dashboardFilters
:
{ "dashboardFilters": [ { "labelKey": "zone" "stringValue": "us-central1-c", "valueType": "STRING", "filterType": "RESOURCE_LABEL" }, { "labelKey": "instance_id", "stringValue": "3133577226154888113", "valueType": "STRING", "filterType": "RESOURCE_LABEL", "templateVariable": "my_label_based_variable" }, { "filterType": "VALUE_ONLY", "templateVariable": "my_value_only_variable", timeSeriesQuery: { opsAnalyticsQuery: { sql: " SELECT log_name FROM `MY_TABLE` GROUP BY log_name ", } } } ], "displayName": "Illustrate Variables", ... }
Il JSON precedente definisce un filtro bloccato e due variabili:
Il filtro bloccato ha la chiave dell'etichetta
zone
, che viene visualizzata sulla barra degli strumenti. I campivalueType
estringValue
specificano il singolo valore predefinito. Per maggiori informazioni, consulta la pagina dei riferimenti API per la struttura dei datidashboardFilters
.La variabile basata su etichette ha il nome
my_label_based_variable
e la relativa chiave di etichetta èinstance_id
. Il valore predefinito di questa variabile è impostato su un ID istanza specifico. Puoi anche configurare il valore predefinito utilizzando un array. Nella barra degli strumenti, il filtro viene visualizzato con il nomemy_label_based_variable
.La variabile solo valore è denominata
my_value_only_variable
. Questa voce non specifica un valore predefinito, quindi viene applicato automaticamente il carattere jolly(*)
. Inoltre, questa variabile utilizza una query SQL per generare l'elenco dei possibili valori per la variabile.
Tieni presente che l'oggetto dashboardFilters
non elenca i widget a cui si applica la variabile. Invece, aggiorni la query di un widget in modo che dipenda
da una variabile.
Sintassi generale per dereferenziare una variabile
Per tutti i widget, ad eccezione di quelli definiti da SQL, utilizza la seguente sintassi per applicare una variabile a una query:
Per applicare una variabile basata su etichette e risolvere la chiave e il valore dell'etichetta in un'espressione di filtro valida per il linguaggio di query, utilizza
${my_label_based_variable}
.Per applicare solo il valore di una variabile basata su etichette, utilizza
${my_label_based_variable.value}
. Il confronto deve utilizzare un'espressione regolare.Per applicare solo il valore di una variabile solo valore, utilizza
${my_value_only_variable}
. Per le variabili di solo valore, non includere una clausola.value
. Il confronto deve utilizzare un'espressione regolare.
Widget del riquadro dei log
Per applicare una variabile a un widget del pannello dei log, aggiorna il riquadro delle query. La sintassi di questi widget segue quella specificata in Sintassi generale.
Console
Ad esempio, la seguente query utilizza un'espressione regolare per confrontare
il valore del campo jsonPayload.message
con un valore stringa che include
il valore di una variabile basata su etichetta:
jsonPayload.message=~"Connected to instance: ${my_label_based_variable.value}"
Come altro esempio, considera una variabile solo con valori,
value_only_severity_variable
, e supponi che nel menu dei valori siano selezionati tre
valori: ERROR
, INFO
e NOTICE
.
Successivamente, aggiungi quanto segue al riquadro della query del widget del pannello dei log:
severity =~ "${value_only_severity_variable}"
Di seguito è illustrato il modulo visualizzato:
severity =~ "^(ERROR|INFO|NOTICE)$"
API
Ad esempio, il seguente JSON mostra come aggiornare la query di un widget del pannello dei log con una variabile basata su etichette:
"logsPanel": { "filter": "${my_label_based_variable}", "resourceNames": [ "projects/1234512345" ] },
Ad esempio, la seguente query utilizza un'espressione regolare per confrontare
il valore del campo jsonPayload.message
con un valore stringa che include
il valore di una variabile basata su etichetta:
"logsPanel": { "filter": "resource.type=\"gce_instance\"\n resource.labels.project_id=~\"${my_label_based_variable.value}\"\n", "resourceNames": [ "projects/012345" ] }
Come altro esempio, considera una variabile solo con valori, value_only_severity_variable
, e supponi che nel menu siano selezionati tre valori: ERROR
, INFO
e NOTICE
.
Successivamente, aggiungi quanto segue al riquadro della query del widget del pannello dei log:
"logsPanel": {
"filter": "severity =~ \"${value_only_severity_variable}\"\n",
...
}
Di seguito è illustrata la query eseguita dal widget del riquadro dei log:
severity =~ "^(ERROR|INFO|NOTICE)$"
Se hai configurato una query per il pannello dei log e poi selezioni il pulsante per aprire Esplora log, le variabili vengono risolte prima dell'apertura di Esplora log.
La tabella seguente mostra come vengono risolte le variabili di esempio nel riquadro dei log. Come accennato in precedenza, quando viene utilizzato solo il valore di una variabile, devi utilizzare un'espressione regolare come operatore di confronto:
Sintassi | Selected Value |
Espressione del riquadro dei log risolta |
---|---|---|
${my_label_based_variable} |
12345 |
resource.labels."instance_id"="12345"
La variabile di esempio si basa sull'etichetta della risorsa
|
${my_label_based_variable} |
* |
"" |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.* |
Grafici con query PromQL
Per aggiornare un grafico con una query PromQL in modo che dipenda da una variabile basata su etichette, segui le indicazioni riportate in Sintassi generale.
Console
Ad esempio, la seguente query si basa sulla variabile basata su etichette,
my_label_based_variable
, che viene risolta in un'espressione di filtro:
compute_googleapis_com:instance_cpu_utilization{ monitored_resource="gce_instance", ${my_label_based_variable} }
Puoi anche modificare la query per risolvere solo il valore di una variabile.
L'esempio seguente utilizza un'espressione regolare per confrontare il valore
di una query basata su etichette con instance_id
:
compute_googleapis_com:instance_cpu_utilization{ instance_id=~"${my_label_based_variable.value}" }
Se hai una variabile solo con valori, ometti la clausola .value
. Ad esempio,
per filtrare per zona utilizzando una variabile di solo valore, la query includerebbe
qualcosa di simile a quanto segue:
zone=~"${my_value_only_variable}"
API
Ad esempio, il seguente JSON illustra una query che si basa sulla variabile basata su etichetta, my_label_based_variable
, che viene risolta in un'espressione di filtro:
"timeSeriesQuery": { "prometheusQuery": "avg_over_time( compute_googleapis_com:instance_cpu_utilization{ monitored_resource=\"gce_instance\", ${my_label_based_variable} }[${__interval}])", "unitOverride": "", "outputFullDuration": false },
Puoi anche modificare la query per risolvere solo il valore di una variabile.
L'esempio seguente utilizza un'espressione regolare per confrontare il valore
di una query basata su etichette con instance_id
:
"timeSeriesQuery": { "prometheusQuery": "avg_over_time( compute_googleapis_com:instance_cpu_utilization{ monitored_resource=\"gce_instance\", instance_id=~\"${my_label_based_variable.value}\" }[${__interval}])", "unitOverride": "", "outputFullDuration": false },
Se hai una variabile solo con valori, ometti la clausola .value
. Ad esempio,
per filtrare per zona utilizzando una variabile di solo valore, la query includerebbe
qualcosa di simile a quanto segue:
zone=~\"${my_value_only_variable}\"
La seguente tabella mostra come vengono risolte le variabili di esempio da PromQL. Come accennato in precedenza, quando viene utilizzato solo il valore di una variabile, devi utilizzare un'espressione regolare come operatore di confronto:
Sintassi | Selected Value |
Espressione PromQL risolta |
---|---|---|
${my_label_based_variable} |
12345 |
instance_id == '12345'
La variabile di esempio si basa sull'etichetta della risorsa
|
${my_label_based_variable} |
* |
noop_filter=~".*" |
${my_label_based_variable.value} ${my_value_based_variable} |
12345 |
12345 |
${my_label_based_variable.value} ${my_value_based_variable} |
* |
.+ |
Grafici con query SQL
Quando vuoi aggiornare un widget definito da SQL in modo che dipenda da una variabile,
aggiorna la clausola WHERE
in modo che faccia riferimento al valore della variabile.
Per tutte le variabili, aggiungi il prefisso "@" al nome della variabile, ad esempio:
@variable_name
. Per le variabili basate sulle etichette, aggiungi .value
al
nome della variabile, @my_label_based_variabe.value
.
Per le query SQL, la sostituzione delle variabili si basa su BigQuery ed è sicura contro l'SQL injection. Per ulteriori informazioni, consulta la sezione Esecuzione di query parametrizzate.
Console
Poiché SQL non interpreta l'operatore jolly come "qualsiasi valore", ti
consigliamo di utilizzare sempre un'istruzione IF
quando utilizzi
variabili in una query SQL. Il seguente esempio illustra l'utilizzo di
una variabile solo valore il cui tipo di dati è una stringa:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
Quando l'opzione di menu per la variabile consente agli utenti di selezionare più valori,
devi eseguire il cast
del valore della variabile a un tipo di dati GoogleSQL utilizzando la
funzione CAST
.
La seguente query illustra questa sintassi:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
L'istruzione IF
mostrata negli esempi precedenti è consigliata perché SQL
non interpreta l'operatore jolly come "qualsiasi valore". Pertanto, se ometti l'istruzione IF
e selezioni l'operatore jolly, il risultato della query è una tabella vuota. Nel secondo esempio,
la funzione UNNEST
converte
l'array in una tabella.
Per aggiungere una clausola WHERE
formattata correttamente:
- Modifica il widget.
- Nella barra degli strumenti, seleziona Inserisci filtro variabile, quindi seleziona la variabile di cui vuoi aggiornare la clausola
WHERE
. - Nella finestra di dialogo che si apre, esamina il codice generato e fai clic su Copia e chiudi.
Incolla il codice copiato nel riquadro Query e apporta le modifiche necessarie.
Ad esempio, supponiamo di creare una variabile denominata
LogName
che genera un elenco di nomi di log e restituisce il risultato in una tabella con una sola colonna denominatalog_name
. Successivamente, crea un grafico, seleziona Inserisci filtro variabile e poi seleziona la variabileLogName
. Viene generato il seguente codice:WHERE IF(@LogName = '*', TRUE, LogName = @LogName)
In questo esempio, devi modificare il codice generato e sostituire
LogName =
conlog_name =
, in modo che possa verificarsi l'unione delle tabelle:WHERE IF(@LogName = '*', TRUE, log_name = @LogName)
Fai clic su Esegui e poi su Applica.
Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.
API
Poiché SQL non interpreta l'operatore jolly come "qualsiasi valore", ti
consigliamo di utilizzare sempre un'istruzione IF
quando utilizzi
variabili in una query SQL. Il seguente esempio illustra l'utilizzo di
una variabile solo valore il cui tipo di dati è una stringa:
WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)
Ad esempio, di seguito è riportata una rappresentazione JSON parziale di un grafico
che mostra i risultati di una query SQL. Per supportare il filtraggio dei risultati
in base al nome di un log, è stata aggiunta una clausola WHERE
che fa riferimento alla variabile
denominata LogName
:
"plotType": "STACKED_BAR", "targetAxis": "Y1", "timeSeriesQuery": { "opsAnalyticsQuery": { "queryExecutionRules": {}, "queryHandle": "", "sql": "SELECT\n timestamp, severity, resource.type, log_name, text_payload, proto_payload, json_payload\n FROM\n `my-project.global._Default._Default`\n WHERE \n IF (@LogName = \"*\", TRUE, log_name=@LogName)\nLIMIT 10000" } }
La variabile LogName
esegue anche una query per determinare l'elenco dei
possibili nomi dei log:
"dashboardFilters": [ { "filterType": "VALUE_ONLY", "templateVariable": "LogName", "valueType": "STRING", "timeSeriesQuery": { "opsAnalyticsQuery": { "savedQueryId": "", "sql": "SELECT log_name FROM `my-project.global._Default._Default` GROUP BY log_name LIMIT 1000", "queryHandle": "" }, "unitOverride": "", "outputFullDuration": false } } ],
Quando l'opzione di menu per la variabile consente agli utenti di selezionare più valori,
devi eseguire il cast
del valore della variabile a un tipo di dati GoogleSQL utilizzando la
funzione CAST
.
La seguente query illustra questa sintassi:
IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE, severity IN UNNEST(@my_value_only_variable))
L'istruzione IF
mostrata negli esempi precedenti è consigliata perché SQL
non interpreta l'operatore jolly come "qualsiasi valore". Pertanto, se ometti l'istruzione IF
e selezioni l'operatore jolly, il risultato della query è una tabella vuota. Nel secondo esempio,
la funzione UNNEST
converte
l'array in una tabella.
Grafici con query di filtri di monitoraggio
Per aggiornare un grafico con una query sotto forma di filtro di monitoraggio in modo che dipenda da una variabile basata su etichette, segui le indicazioni riportate in Sintassi generale.
Console
Se utilizzi la console Google Cloud per creare i grafici e se utilizzi l'interfaccia basata su menu, puoi aggiornare la query del grafico utilizzando il campo Applica ai grafici della variabile o modificando il widget e selezionando la variabile basata sull'etichetta dal menu Filtro. Il menu Filtro elenca tutte le variabili basate su etichette e tutte le chiavi di etichetta.
Per aggiornare la query di un grafico in modo che dipenda da una variabile basata sul valore, segui questi passaggi:
- Modifica il grafico.
- Nel riquadro della query, fai clic su Aggiungi filtro e seleziona una chiave dell'etichetta. Ad esempio, potresti selezionare zona.
- Nel menu Valore, seleziona la variabile solo valore.
- Fai clic su Applica.
- Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.
Ad esempio, il seguente JSON illustra una query che si basa su una variabile basata su etichetta, my_label_based_variable
, che viene risolta in un'espressione di filtro:
metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" ${my_label_based_variable}"
I widget che utilizzano una query sotto forma di filtro di monitoraggio
non possono filtrare la serie temporale in base al valore di una variabile basata su etichette;
tuttavia, puoi filtrare in base a variabili di solo valore.
Ad esempio, la seguente query mostra il valore del campo Filtri
di una query che filtra in base a zone
, in base al valore di una variabile di solo valore:
metric.type="compute.googleapis.com/instance/cpu/utilization" resource.type="gce_instance" resource.label."zone"=monitoring.regex.full_match(${my_value_only_variable})
API
Ad esempio, il seguente JSON illustra una query che si basa su una variabile basata su etichetta, my_label_based_variable
, che viene risolta in un'espressione di filtro:
"timeSeriesQuery": { "timeSeriesFilter": { "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" ${my_label_based_variable} ", "aggregation": { "alignmentPeriod": "60s", "perSeriesAligner": "ALIGN_MEAN", "groupByFields": [] } }, "unitOverride": "", "outputFullDuration": false },
I widget che utilizzano una query sotto forma di filtro di monitoraggio
non possono filtrare la serie temporale in base al valore di una variabile basata su etichette;
tuttavia, puoi filtrare in base a variabili di solo valore.
Ad esempio, la seguente query mostra il campo "filter"
di una query che
filtra in base a zone
, in base al valore di una variabile solo valore:
"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" resource.type=\"gce_instance\" resource.labels.\"zone\"=monitoring.regex.full_match(${my_value_only_variable})"
La seguente tabella mostra come le variabili di esempio vengono risolte dal filtro Monitoring. Come accennato in precedenza, quando viene utilizzato solo il valore di una variabile, devi utilizzare un'espressione regolare come operatore di confronto:
Sintassi | Selected Value |
Espressione di filtro risolta |
---|---|---|
${my_label_based_variable} |
12345 |
resource.instance_id == "12345"
La variabile di esempio si basa sull'etichetta della risorsa
|
${my_label_based_variable} |
* |
Omessa |
${my_label_based_variable.value} |
12345 |
Non supportata |
${my_label_based_variable.value} |
* |
Non supportata |
${my_value_based_variable} |
12345 |
"12345" |
${my_value_based_variable} |
* |
".*" |
Modificare un filtro o una variabile bloccati
Per modificare temporaneamente il valore di un filtro visualizzato nella barra degli strumenti della dashboard, fai clic sul nome del filtro e inserisci un valore o effettua una selezione dal menu.
Se la dashboard contiene una tabella che mostra dati delle serie temporali, puoi aggiungere filtri temporanei o modificare filtri e variabili permanenti utilizzando il pulsante Filtra dashboard in base a questo valore filter_list di una cella. Se selezionato, questo pulsante applica un nuovo filtro temporaneo o aggiorna il valore di un filtro o di una variabile esistente. I filtri e le variabili esistenti vengono aggiornati quando la chiave dell'etichetta per la colonna della tabella corrisponde alla chiave dell'etichetta per un filtro o una variabile.
Per modificare la configurazione di un filtro bloccato o di una variabile:
-
Nella console Google Cloud , vai alla pagina
Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
- Nella barra degli strumenti della dashboard, fai clic su settings Impostazioni.
- Trova il filtro o la variabile che vuoi modificare ed espandi la relativa definizione.
- Dopo aver completato le modifiche, fai clic su Applica.
- Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.
Eliminare un filtro o una variabile bloccati
Per eliminare un filtro o una variabile bloccati:
-
Nella console Google Cloud , vai alla pagina
Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella barra degli strumenti della console Google Cloud , seleziona il tuo progetto Google Cloud . Per le configurazioni di App Hub, seleziona il progetto host di App Hub o il progetto di gestione della cartella app.
- Nella barra degli strumenti della dashboard, fai clic su settings Impostazioni.
- Individua il filtro o la variabile che vuoi rimuovere, quindi fai clic su Elimina.
- Fai clic su Applica.
- Per salvare la dashboard modificata, fai clic su Salva nella barra degli strumenti.