Se crei servizi personalizzati, devi creare anche obiettivi del livello di servizio (SLO) per questi servizi. Non sono disponibili SLO predefinite per i servizi personalizzati.
Puoi anche creare SLO personalizzati per i servizi rilevati automaticamente, ma questo è meno comune.
Gli SLO si basano su metriche che misurano le prestazioni e vengono utilizzati come indicatori del livello del servizio (SLI). Per gli SLO personalizzati, devi identificare le metriche che vuoi utilizzare negli SLI.
Se non stai creando SLO personalizzati, puoi saltare questa pagina.
Caratteristiche dei tipi di metriche idonee
Puoi creare due tipi di SLO per i tuoi servizi:
- SLO basati su richiesta.
- SLO basati su Windows.
Gli SLO si basano sui tipi di metriche che scegli come SLI. I valori nei tipi di
metriche sono classificati in base alla loro relazione tra loro. Questa classificazione è chiamata tipo di metrica e ha tre possibili valori: GAUGE
, DELTA,
e CUMULATIVE
. Per ulteriori informazioni, consulta
MetricKind
.
Per gli SLO basati su richiesta, lo SLI rappresenta un rapporto tra le richieste valide
e le richieste totali. Il tipo di metrica dell'SLI deve essere
DELTA
o CUMULATIVE
. Non puoi utilizzare le metriche GAUGE
nei SLI basati su richiesta.
Per gli SLO basati su finestre, lo SLI rappresenta un conteggio di risultati positivi in un determinato periodo. I tipi di metriche accettabili dipendono dalla struttura degli SLI. Tuttavia, se utilizzi un SLI basato su richieste, il tipo di metrica dell'SLI deve essere DELTA
o CUMULATIVE
. Non puoi utilizzare le metriche GAUGE
nei SLI basati su richiesta.
Per ulteriori informazioni, consulta la pagina Strutture per gli SLI basati su Windows.
Per ulteriori informazioni sui tipi di SLO, consulta Concetti di monitoraggio del servizio.
Puoi utilizzare i tipi di metriche forniti da Cloud Monitoring oppure quelli personalizzati che hai creato. In entrambi i casi, i valori sono adatti allo SLI che vuoi creare.
Tipi di metriche non adatti
Quando valuti un tipo di metrica da utilizzare come SLI, evita i tipi di metrica ad alta cardinalità. La cardinalità descrive il numero di possibili serie temporali che possono essere associate al tipo di metrica ed è correlata alla granularità dei valori che possono assumere le etichette delle metriche. Per una discussione sulla cardinalità, consulta Cardinalità: serie temporali ed etichette.
I tipi di metriche con etichette che prendono valori come i timestamp hanno probabilmente una cardinalità molto elevata e non sono una buona scelta per l'utilizzo come SLI. Le metriche ad alta cardinalità sono spesso metriche definite dall'utente che non sono state progettate per evitare problemi di cardinalità. Potrebbero essere incluse le metriche basate su log e le metriche personalizzate definite dall'utente.
Trovare tipi di metriche adatti
Le informazioni sui tipi di metriche, incluso il tipo di metrica, sono disponibili in più posizioni:
Il selettore delle metriche utilizzato in strumenti come Metrics Explorer mostra un biglietto da visita per il tipo di metrica evidenziato. Questo strumento è adatto per le metriche personalizzate e integrate.
Ad esempio, lo screenshot seguente mostra la scheda popup per il tipo di metrica
loadbalancing.googleapis.com/https/request_count
in Metrics Explorer:Con Esplora metriche, puoi anche configurare la metrica in modo da simulare il funzionamento dell'API SLO e ottenere una rappresentazione JSON di questa configurazione. Questo JSON è utile per creare un SLI manualmente.
Le pagine dell'elenco Metriche contengono tabelle per ogni servizio che descrivono i tipi di metriche associate ai servizi. Queste tabelle includono tutti i tipi di metriche integrate, ma non mostrano i tipi di metrica personalizzata.
Ad esempio, lo screenshot seguente mostra la voce per il tipo di metrica
loadbalancing.googleapis.com/https/request_count
, come indicato nell'elenco delle metriche di bilanciamento del carico. Queste voci spesso forniscono più dettagli delle schede popup in Metrics Explorer.
Creazione dell'SLI
Per il monitoraggio dei servizi, i dati delle metriche vengono elaborati in modi specifici, che puoi replicare in Metrics Explorer. Questa pagina presuppone che tu abbia familiarità con l'utilizzo di Metrics Explorer. Per saperne di più, consulta Esplora metriche.
Per creare un SLI basato su richiesta in base a un rapporto tra serie temporali, sono necessarie due serie temporali: una che rappresenta tutte le richieste e una che rappresenta le richieste valide (o non valide). Questo tipo di SLI ha la seguente struttura:
"requestBased": { "goodTotalRatio": { "totalServiceFilter": TO_BE_IDENTIFIED, "goodServiceFilter": TO_BE_IDENTIFIED, } }
Per ottenere il valore del campo goodServiceFilter
:
Seleziona il tipo di risorsa monitorata e il tipo di metrica. Ricorda che il tipo di metrica deve essere
DELTA
oCUMULATIVE
. Il risultato potrebbe includere molte serie temporali diverse.Ad esempio, seleziona il tipo di risorsa
http_lb_rule
e il tipo di metricaloadbalancing.googleapis.com/https/request_count
.Utilizza il campo Filtro per impostare l'etichetta
response_code_class
su200
. Questo filtro rimuove tutte le serie temporali con altri valori per questa etichetta. Potrebbero comunque esserci più serie temporali corrispondenti.Scegli l'aggregatore
sum
per creare una singola serie temporale. Il grafico nella pagina Metrics Explorer mostra la serie temporale risultante.Fai clic su Altre opzioni more_vert sopra il grafico e seleziona Visualizza come JSON dal menu.
Il JSON recuperato ha il seguente aspetto:
"dataSets": [ { "timeSeriesFilter": { "filter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200"" "perSeriesAligner": "ALIGN_RATE", "crossSeriesReducer": "REDUCE_SUM", "secondaryCrossSeriesReducer": "REDUCE_NONE", "minAlignmentPeriod": "60s", "groupByFields": [], "unitOverride": "1" }, "targetAxis": "Y1", "plotType": "LINE" } ],
La parte che ti interessa è il valore del campo filter
incorporato
nell'oggetto dataSets
:
"filter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200""
Per creare la struttura dell'SLI:
Inserisci questo valore nella struttura SLI come valore del campo
goodServiceFilter
.Inserisci questo valore anche nella struttura SLI come valore di
totalServiceFilter
, ma rimuovi la parte di etichetta del filtro,metric.label.\"response_code_class\"=\"200\"
.
L'indicatore del livello del servizio risultante è il seguente:
"requestBased": { "goodTotalRatio": { "totalServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule"", "goodServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200"", } }
Puoi quindi inserire questo SLI in uno SLO, ad esempio:
{ "serviceLevelIndicator": { "requestBased": { "goodTotalRatio": { "totalServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule"", "goodServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200"", } } }, "goal": 0.98, "calendarPeriod": "WEEK", "displayName": "98% Successful requests in a calendar week" }
Puoi utilizzare questo JSON per creare un SLO, come descritto in Creare un SLO.