I criteri di avviso per il burn rate del budget di errore si basano sul
selettore delle serie temporali select_slo_burn_rate
, descritto in Recupero dello SLO
di archiviazione dati. Esistono altri selettori delle serie temporali e puoi utilizzarne alcuni come base per i criteri di avviso. Per una discussione sui criteri di avviso basati su SLO, consulta Avvisi sul burn rate.
Puoi creare criteri di avviso utilizzando il metodo
alertPolicies.create
. L'utilizzo generale di questo metodo è descritto in Gestire i criteri di avviso.
I criteri di avviso per gli SLO sono simili ad altri avvisi di soglia delle metriche
norme, ma differiscono in modo specifico: il filter
nella specifica MetricThreshold
del
utilizza un selettore di serie temporali invece di una coppia di metriche
tipi di risorse monitorate.
Condizioni per i criteri di avviso basati su SLO
Un criterio di avviso deve avere almeno una condizione. Per una condizione basata su SLO, utilizza una condizione di tipo MetricThreshold
.
Una condizione soglia metrica può contenere due coppie di serie temporali
configurazioni: filter
e aggregations
. Poiché i dati SLO vengono recuperati in modo diverso rispetto ad altri dati delle serie temporali, l'unico campo utilizzato in una condizione per uno SLO è il campo filter
.
Una condizione per un SLO imposta i campi comparison
, thresholdValue
, duration
e trigger
.
Questo esempio crea una condizione che viene violata quando il tasso di combustione supera il doppio del tasso normale. La struttura ha il seguente aspetto:
"conditions": [ { "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2", "conditionThreshold": { "filter": DATA_RETRIEVAL_FILTER_FOR_SLO, "comparison":"COMPARISON_GT", "thresholdValue": 2, "duration": { "seconds":"0", }, }, } ],
Per impostare il campo filter
, devi avere il nome della risorsa di un SLO specifico. Questo
sono nel formato
projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}
.
Per informazioni su come trovare l'ID SLO, consulta la sezione Elenco degli SLO.
Per creare un avviso sul tasso di bruciatura, utilizza il selettore delle serie temporali
select_slo_burn_rate
. Questo selettore accetta due valori: l'obiettivo SLO target
e il periodo di riferimento. Per ulteriori informazioni, consulta
select_slo_burn_rate
.
Ad esempio, il seguente filtro recupera il tasso di burn dello SLO target con un periodo di riferimento di 1 ora:
"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"
Il resto del criterio di avviso
Per completare il criterio di avviso, specifica i valori per i campi rimanenti:
displayName
: una descrizione del criterio di avviso.combiner
: descrive la logica di combinazione delle condizioni. Queste norme ha una sola condizione, pertantoAND
oOR
funziona.notificationChannels
: un array di canali di notifica esistenti per da utilizzare quando viene attivato il criterio di avviso. Per informazioni su come trovare e creare canali di notifica, consulta Canali di notifica.documentation
: informazioni inviate in caso di violazione della condizione per aiutare i destinatari a diagnosticare il problema. Per maggiori dettagli, consultaDocumentation
.
Creazione del criterio di avviso
L'esempio seguente utilizza l'API per creare un criterio di avviso relativo al tasso di utilizzo. Per informazioni su come elencare, modificare ed eliminare i criteri di avviso, consulta Gestire i criteri di avviso in base all'API.
Protocollo
Per creare il criterio di avviso utilizzandocurl
, invia un messaggio POST
all'endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies
e fornisci il criterio di avviso nel corpo della richiesta. Il codice JSON nel corpo della richiesta descrive
un criterio di avviso che utilizza una condizione di soglia basata
Selettore di serie temporali select_slo_burn_rate
con un periodo di riferimento di un'ora.
Crea una variabile per contenere il corpo della richiesta:
CREATE_ALERT_POST_BODY=$(cat <<EOF { "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2", "combiner":"AND", "conditions": [ { "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2", "conditionThreshold": { "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")", "comparison":"COMPARISON_GT", "thresholdValue": 2, "duration": { "seconds":"0", }, }, } ], "notificationChannels": ["${NOTIFICATION_CHANNEL}", ], "documentation": { "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.", "mime_type": "text/markdown", }, } EOF )
Pubblica la richiesta nell'endpoint:
curl --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies