UtilizzandoPromQL
Usa ilPrometheus Linguaggio della query (PromQL ) per selezionare e aggregare i dati metrici delle serie temporaliPrometheus.
Per ulteriori informazioni suPromQL, vedere il documentazione open source.
Creare unPromQL domanda
Creare unPromQL eseguire una query per una metrica in un dashboard esistente.
- Dal Cruscotto di monitoraggio, fare clic Apri il cruscotto per la tua istanza del servizio.
- Da Cruscotti, seleziona la dashboard che contiene le metriche su cui vuoi eseguire la query.
- Per un pannello nel dashboard, fare clic su_ modificare_ icona.
- Seleziona il PromQL tipo di interrogazione.
- Nel modulo di richiesta, inserisci_ Schermo_ dati, come il nome della query e il nome della serie temporale.
- Inserisci il tuoPromQL_ Domanda_ , ad esempio
avg(avg_over_time(host_cpu_used_percent[$__interval])) by(kubernetes_cluster_name). Specifica i seguenti campi nella tua query:- Metrica: specifica la metrica che desideri interrogare, ad esempio
host_cpu_used_percent. Nota: i valori generati nella tabella rappresentano la metrica più recente. - Intervallo di tempo: specificare un intervallo di tempo o un intervallo di tempo, ad esempio
5m. Per utilizzare l'intervallo di tempo selezionato nell'interfaccia utente, specificare$__range. Per utilizzare l'intervallo di tempo basato sull'intervallo di tempo selezionato nell'interfaccia utente, specificare$__interval. IL$__rangeE$__intervalle variabili in questa query si aggiornano automaticamente quando l'intervallo di tempo viene modificato nell'interfaccia utente. Per ulteriori informazioni, vedere Applicazione degli ambiti del dashboard aPromQL interrogazioni. - Segmentazione: scegli un valore per segmentare l'aggregatoPromQL dati, come
kubernetes_cluster_name.
- Metrica: specifica la metrica che desideri interrogare, ad esempio
- Fai clic su Run Query.
- Ottimizza i risultati configurando eventuali ulteriori_ Opzioni_ , ad esempio le unità in cui vengono restituiti i dati e il modo in cui i dati vengono visualizzati.
Applicazione degli ambiti del dashboard
Per definire l'ambito di un pannello creato da aPromQL query, è necessario utilizzare una variabile di ambito all'interno della query.
Esistono due variabili predefinite per gli ambiti basati sul tempo che è possibile specificare nella query. Queste variabili vengono aggiornate automaticamente man mano che l'intervallo di tempo per il tratteggio viene modificato nell'interfaccia utente.
$__range: rappresenta l'intervallo di tempo selezionato nell'interfaccia utente del dashboard. Ad esempio, potresti utilizzare questa variabile per calcolare una media per l'intervallo di tempo selezionato.$__interval: rappresenta l'intervallo basato sull'intervallo di tempo selezionato nell'interfaccia utente del dashboard. Ad esempio, potresti utilizzare questa variabile per adattare l'intervallo di tempo per diverse operazioni, come la tariffa o la media nel tempo.
Ad esempio, supponiamo di utilizzare la seguente query per restituire la percentuale utilizzata della CPU per tutti gli host:
avg_over_time(host_cpu_used_percent[$__interval])
Questa query utilizza il file $__interval variabile, che definisce l'ambito dei dati nell'intervallo di tempo dinamico in base all'intervallo di tempo selezionato nell'interfaccia utente del dashboard.
Puoi anche specificare le tue variabili nella query per definire l'ambito del suo output. Ad esempio, per definire ulteriormente l'ambito della query precedente su un'etichetta specifica come hostname, devi prima definire una variabile di ambito a livello di dashboard. Quindi, puoi specificare quella variabile nella query:
avg_over_time(host_cpu_used_percent{host_name=$hostname}[$__interval])
Utilizzo delle etichette
Quando corriPromQL query, i dati vengono restituiti con un set minimo di etichette. Per aggiungere più etichette, ad esempio un nome di cluster, utilizzare un'operazione di corrispondenza vettoriale.
Prometheus restituisce le metriche delle informazioni che hanno un valore pari a 1 con diversilabels.Joining le etichette di una metrica informativa con una metrica non informativa possono fornire informazioni utili, come il valore di una metrica in un'applicazione. È possibile utilizzare un'operazione di corrispondenza vettoriale, simile a un join SQL, per aggiungere le etichette informative ai dati metrici.
Esempio: filtraggio di una metrica dell'applicazione per cluster
In questo esempio, una metrica restituita da un'applicazione viene filtrata in base al cluster. ILPromQL aggrega un valore di quella metrica per un cluster avendo selezionato un solo cluster nell'ambito.
sum (myapp_metric * on (container_id) kube_pod_container_info{cluster=$cluster})
Questa domanda:
- Filtra il
kube_pod_container_infometrica informativa solo per un cluster specifico ($cluster, che viene impostata come variabile del dashboard) in base aclusteretichetta e per una serie temporale specifica. - Corrisponde a
myapp_metricmetrica non informativa al filtratokube_pod_container_infometrica informativa quando ilcontainer_idl'etichetta ha lo stesso valore. I valori vengono moltiplicati, ma poiché la metrica delle informazioni ha un valore pari a 1, il risultato rimane invariato. L'etichetta del cluster viene aggiunta ai dati risultanti. - Aggrega le serie temporali di valore
myapp_metricutilizzando ilsumfunzione e restituisce il risultato.
Esempio: filtraggio della CPU media utilizzata per account e regione
In questo esempio, la CPU media utilizzata (percentuale) viene calcolata per uno specificoIBM Cloud conto e regione.
avg by(region,account_id) (host_cpu_used_percent * on (host_mac) group_left(region,account_id) sysdig_cloud_provider_info{account_id=~$account, region=~$region})
Questa domanda:
- Filtra il
sysdig_cloud_provider_infometrica informativa solo per una regione specifica ($region) e conto ($account) impostati come variabili del dashboard in base aregionEaccount_idetichette. - Corrisponde a
host_cpu_used_percentmetrica non informativa al filtratosysdig_cloud_provider_infometrica informativa quando ilhost_macl'etichetta ha lo stesso valore. I valori vengono moltiplicati, ma poiché la metrica delle informazioni ha un valore pari a 1, il risultato rimane invariato. Le etichette della regione e dell'account vengono aggiunte ai dati risultanti. - Calcola la media delle nuove metriche per account e regione.
cURL campione per estrarre la metrica più recente
Per ottenere il valore più recente di una metrica, specificare solo il nome della metrica. Viene restituito il valore più recente generato non più di 5 minuti fa.
Ad esempio, per ottenere il valore più recente di host_cpu_used_percent :
curl <SYSDIG_REST_API_ENDPOINT>/prometheus/api/v1/query?query=sysdig_host_cpu_used_percent -H "Authorization: $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "SysdigTeamID: $TEAM_ID" -H "content-type: application/json"
Dove
-
<SYSDIG_REST_API_ENDPOINT>indica l'endpoint target dalla chiamata API REST. Per ulteriori informazioni, vedere Monitoraggio degli endpoint API REST. Ad esempio, l'endpoint pubblico per un'istanza disponibile negli Stati Uniti del sud è il seguente:https://us-south.monitoring.cloud.ibm.com/api -
Puoi passare più intestazioni utilizzando
-H.AuthorizationEIBMInstanceIDsono intestazioni necessarie per l'autenticazione.SysdigTeamIDè facoltativo. Quando specifichi questa intestazione, limiti la richiesta ai dati e alle risorse disponibili per il team specificato.Per ottenere un
AUTH_TOKENe ilGUIDVedere,Intestazioni per token IAM.
Tutti i dashboard supportano completamentePromQL API. Per ulteriori informazioni su cosa è possibile fare conPromQL, vedere il Prometheus documentazione.