I criteri di avviso per la burn rate del budget di errore si basano sul
selettore di serie temporali select_slo_burn_rate, descritto in Recuperare i dati SLO
data. Esistono altri selettori di 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 sulla burn rate.
Puoi creare criteri di avviso utilizzando il
alertPolicies.create metodo. L'utilizzo generale di
questo metodo è documentato in Gestire i criteri di avviso.
I criteri di avviso per gli SLO sono simili ad altri criteri di avviso basati su soglie di metriche, ma differiscono in un modo specifico: il filter
nella MetricThreshold specifica della
condizione utilizza un selettore di serie temporali anziché una coppia di tipi di metriche e
risorse monitorate.
Condizioni per i criteri di avviso basati su SLO
Una criterio di avviso deve avere almeno una condizione. Per una condizione basata su SLO, utilizza una condizione di tipo MetricThreshold.
Una condizione di soglia di metrica può contenere due coppie di configurazioni di serie temporali: filter e aggregations. Poiché i dati SLO vengono recuperati in modo diverso rispetto ad altri dati di serie temporali, l'unico campo utilizzato in una condizione per uno SLO è il campo filter.
Una condizione per uno SLO imposta i campi comparison, thresholdValue, duration e trigger.
Questo esempio crea una condizione che viene violata quando la burn rate supera di due volte la velocità normale. La struttura è la seguente:
"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 uno SLO specifico. Questo valore ha il formato projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}.
Per informazioni su come trovare l'ID SLO, consulta Elencare gli SLO.
Per creare un avviso sulla burn rate, utilizza il selettore di serie temporali select_slo_burn_rate. Questo selettore accetta due valori: lo SLO di destinazione e il periodo di riferimento. Per saperne di più, consulta
select_slo_burn_rate.
Ad esempio, il seguente filtro recupera la burn rate dello SLO di destinazione con un periodo di riferimento di 1 ora:
"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"
Il resto della criterio di avviso
Per completare la criterio di avviso, specifica i valori per i campi rimanenti:
displayName: una descrizione del criterio di avviso.combiner: descrive la logica per combinare le condizioni. Questo criterio ha una sola condizione, quindi funziona siaANDcheOR.notificationChannels: un array di canali di notifica esistenti 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 quando la condizione viene violata per aiutare i destinatari a diagnosticare il problema. Per maggiori dettagli, consultaDocumentation.
Creare il criterio di avviso
L'esempio seguente utilizza l'API per creare un criterio di avviso per la burn rate. Per informazioni su come elencare, modificare ed eliminare i criteri di avviso, consulta Gestire i criteri di avviso tramite l'API.
Ad esempio, per creare la criterio di avviso utilizzando curl, invia un messaggio POST all'endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies e fornisci la criterio di avviso nel corpo della richiesta. Il JSON nel corpo della richiesta descrive una criterio di avviso che utilizza una condizione di soglia basata sul 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 )Invia la richiesta all'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