Creazione di un indicatore del livello del servizio

Se crei servizi personalizzati, devi anche creare obiettivi del livello di servizio (SLO) per questi servizi. Non esistono SLO predefiniti per i servizi personalizzati.

Puoi anche creare SLO personalizzati per i servizi rilevati automaticamente, ma è 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 ignorare questa pagina.

Caratteristiche dei tipi di metriche adatti

Esistono due tipi di SLO che puoi creare per i tuoi servizi:

  • SLO basati su richiesta.
  • SLO basati su finestre.

Gli SLO si basano sui tipi di metriche che scegli come indicatori SLI. I valori nei tipi di metriche sono classificati in base alla loro relazione reciproca. Questa classificazione è chiamata tipo di metrica e ha tre valori possibili: GAUGE, DELTA, e CUMULATIVE. Per ulteriori informazioni, vedi MetricKind.

Per gli SLO basati su richiesta, l'SLI rappresenta un rapporto tra le richieste soddisfacenti e le richieste totali. Il tipo di metrica del tuo SLI deve essere DELTA o CUMULATIVE. Non puoi utilizzare le metriche GAUGE negli SLI basati sulle richieste.

Per gli SLO basati su finestre, l'SLI rappresenta un conteggio dei risultati positivi in un determinato periodo. I tipi di metrica accettabili dipendono dalla struttura degli indicatori SLI. Tuttavia, se utilizzi un SLI basato su richiesta, il tipo di metrica dell'SLI deve essere DELTA o CUMULATIVE. Non puoi utilizzare le metriche GAUGE negli SLI basati sulle richieste. Per maggiori informazioni, consulta Strutture per gli indicatori SLI basati su finestre.

Per ulteriori informazioni sui tipi di SLO, consulta Concetti nel monitoraggio dei servizi.

Puoi utilizzare i tipi di metriche forniti da Cloud Monitoring oppure utilizzare i tipi di metrica personalizzata che hai creato. In entrambi i casi, i valori sono adatti all'SLI che vuoi creare.

Tipi di metriche non adatti

Quando scegli un tipo di metrica da utilizzare come indicatore 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 le etichette delle metriche possono assumere. Per una discussione sulla cardinalità, vedi Cardinalità: serie temporali ed etichette.

I tipi di metrica con etichette che accettano valori come timestamp hanno probabilmente una cardinalità molto elevata e non sono scelte ottimali 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à. Queste possono includere metriche basate su log e metriche personalizzate definite dall'utente.

Trovare i 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 funziona per le metriche personalizzate e integrate.

    Ad esempio, lo screenshot seguente mostra il biglietto da visita per il tipo di metrica loadbalancing.googleapis.com/https/request_count visualizzato in Metrics Explorer:

    Una metrica di bilanciamento del carico in Metrics Explorer con un biglietto da visita che mostra il tipo di metrica.

    Con Esplora metriche, puoi anche configurare la metrica in modo che imiti il comportamento dell'API SLO e puoi ottenere una rappresentazione JSON di questa configurazione. Questo JSON è utile per creare un indicatore SLI manualmente.

  • Le pagine dell'elenco delle metriche contengono tabelle per ogni servizio che descrivono in dettaglio i tipi di metrica associati ai servizi. Queste tabelle includono tutti i tipi di metriche integrate, ma non mostrano i tipimetrica personalizzatae.

    Ad esempio, lo screenshot seguente mostra la voce per il tipo di metrica loadbalancing.googleapis.com/https/request_count come visualizzata nell'elenco delle metriche di bilanciamento del carico. Queste voci spesso forniscono maggiori dettagli rispetto alle schede popup in Metrics Explorer.

    Una metrica di bilanciamento del carico nella tabella di riferimento.

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 ulteriori informazioni, consulta Esplora metriche.

Per creare un SLI basato su richiesta basato su un rapporto tra serie temporali, hai bisogno di due serie temporali: una che rappresenti tutte le richieste e una che rappresenti 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:

  1. Seleziona il tipo di risorsa monitorata e il tipo di metrica. Ricorda che il tipo di metrica deve essere DELTA o CUMULATIVE. Il risultato potrebbe includere molte serie temporali diverse.

    Ad esempio, seleziona il tipo di risorsa http_lb_rule e il tipo di metrica loadbalancing.googleapis.com/https/request_count.

  2. Utilizza il campo Filtro per impostare l'etichetta response_code_class su 200. Questo filtro rimuove qualsiasi serie temporale con altri valori per questa etichetta. Potrebbero comunque esserci più serie temporali corrispondenti.

  3. Scegli l'aggregatore sum per creare una singola serie temporale. Il grafico nella pagina Esplora metriche mostra la serie temporale risultante.

  4. Fai clic su Altre opzioni sopra il grafico e seleziona Visualizza come JSON dal menu.

    Il JSON recuperato è simile al seguente:

    "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:

  1. Inserisci questo valore nella struttura dell'indicatore di livello del servizio come valore del campo goodServiceFilter.

  2. Inserisci questo valore anche nella struttura SLI come valore di totalServiceFilter, ma poi rimuovi la parte dell'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 Creazione di un SLO.