Rapporti di telemetria

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Introduzione

Questa pagina descrive come utilizzare l'API Service Control v2 per i rapporti di telemetria per i servizi gestiti integrati con Service Infrastructure. È destinato ai produttori di servizi che vogliono integrare profondamente i loro servizi con Google Cloud.

Service Infrastructure è una piattaforma fondamentale per cui gli sviluppatori possono produrre, gestire, proteggere e utilizzare API e servizi. Utilizza un semplice modello di utilizzo dei servizi generico: un consumatore consuma un servizio gestito da un producer. Tutte le API di Google e le API di Google Cloud utilizzano questo modello, poiché sono anch'esse basate su Infrastruttura di servizi.

Quando un utente accede a un servizio, questo segnala i dati di telemetria pertinenti alla piattaforma, in modo che sia il consumatore che il produttore possano osservare l'accesso. Con Service Infrastructure, questo processo è chiamato reporting di telemetria, che include analisi, controllo, fatturazione, logging e monitoraggio.

API Service Control v2

L'API Service Control v2 fornisce un semplice metodo services.report che fornisce i rapporti sulla telemetria a tutti i servizi integrati con Service Infrastructure. Questo metodo ti permette di:

  • Analisi
  • Controllo
  • Fatturazione
  • Logging
  • Monitoraggio

Quando un servizio segnala i dati di telemetria all'API Service Control, questi vengono distribuiti al consumatore, al producer o a entrambi, a seconda della configurazione del servizio. Per ulteriori informazioni sulla configurazione della telemetria, consulta le sezioni sul logging e sul monitoraggio della google.api.Service.

Affinché un servizio chiami l'API Service Control, il producer deve abilitare l'API Service Control nel progetto producer e il chiamante deve disporre delle autorizzazioni appropriate sul servizio. Per ulteriori informazioni, consulta la guida introduttiva a Cloud API e il controllo dell'accesso dell'API Service Control.

Attributi della richiesta

Quando un client accede a un servizio, questo deve modellarlo in termini di set di richieste API e descrivere ogni richiesta utilizzando una AttributeContext.

Per segnalare le metriche dell'API utilizzando l'API Service Control, il servizio deve chiamare il metodo services.report per ogni richiesta con i seguenti attributi. L'API Service Control genererà le metriche dell'API e le invierà a Cloud Monitoring.

Attributo Descrizione Esempio
origin.ip L'indirizzo IP del chiamante. "1.2.3.4"
api.service Il nome del servizio API. "endpointsapis.appspot.com"
api.operation Il nome del metodo API. "google.example.hello.v1.HelloService.GetHello"
api.version La stringa della versione API. "v1"
api.protocol Il nome del protocollo API. "https"
request.id Un ID richiesta univoco. "123e4567-e89b-12d3-a456-426655440000"
request.time Il timestamp della richiesta. "2019-07-31T05:20:00Z"
request.method Il nome del metodo HTTP. "POST"
request.scheme Lo schema URL. "https"
request.host L'intestazione host HTTP. "endpointsapis.appspot.com"
request.path Percorso dell'URL. "/v1/hello"
response.code Il codice di stato della risposta. 200
response.size Le dimensioni della risposta in byte. 100
response.time Il timestamp della risposta. "2019-07-31T05:20:02Z"
response.backend_latency La latenza del backend. "0,007s"

Esecuzione dei rapporti sulla telemetria

Dopo aver eseguito il deployment della configurazione del servizio nell'API Service Management, e dopo che il servizio è pronto per soddisfare le richieste dei client, puoi iniziare a chiamare services.report per il servizio distribuito. Devi chiamare services.report per eseguire i report sulla telemetria dopo che il servizio ha ricevuto una richiesta.

Per testare rapidamente i report di telemetria, puoi utilizzare il comando gcurl per chiamare il metodo services.report. Consulta la guida introduttiva all'utilizzo dell'API Service Control per i passaggi di configurazione iniziali.

L'esempio seguente mostra come utilizzare il comando gcurl per chiamare services.report tramite HTTP.

gcurl -d '{
  "service_config_id": "latest",
  "operations": [{
    "origin": {
      "ip": "1.2.3.4"
    },
    "api": {
      "service": "endpointsapis.appspot.com",
      "operation", "google.example.endpointsapis.v1.Workspaces.GetWorkspace",
      "version": "v1",
      "protocol": "https"
    },
    "request": {
      "id": "123e4567-e89b-12d3-a456-426655440000",
      "size": 50,
      "time": "2019-07-31T05:20:00Z",
    },
    "response": {
      "size": 100,
      "code": 200,
      "time": "2019-07-31T05:20:02Z",
      "backend_latency": "0.007s"
    },
    "destination": {
      "region_code": "us-central1"
    }
    "resource": {
      "name": "projects/123/locations/us-central1/workspaces/default"
    }
  }]
}' https://servicecontrol.googleapis.com/v2/services/endpointsapis.appspot.com:report

In caso di esito positivo, la risposta del metodo services.report deve essere vuota. In caso contrario, l'errore API dovrebbe contenere informazioni dettagliate sull'errore. Per ulteriori informazioni sulla gestione degli errori, consulta la sezione Errori nella progettazione delle API.

Per i servizi di produzione, devi utilizzare una delle librerie client fornite da Google per chiamare l'API Service Control. Tali librerie offrono una grande usabilità e gestiscono automaticamente le funzionalità comuni, come l'autenticazione. Per ulteriori informazioni, consulta la sezione Spiegazione delle librerie client.