Informes de telemetría

Introducción

En esta página se describe cómo usar la API Service Control v2 para generar informes de telemetría de servicios gestionados integrados con Service Infrastructure. Está dirigido a los productores de servicios que quieran integrar sus servicios en profundidad con Google Cloud.

Service Infrastructure es una plataforma fundamental para que los desarrolladores produzcan, gestionen, protejan y consuman APIs y servicios. Utiliza un modelo de uso de servicios sencillo y genérico: un consumidor usa un servicio gestionado por un productor. Todas las APIs de Google y las APIs de Google Cloud usan este modelo, ya que también se han creado sobre la infraestructura de servicios.

Cuando un consumidor accede a un servicio, este envía datos de telemetría relevantes a la plataforma para que tanto el consumidor como el productor puedan observar el acceso. En Infraestructura de Servicios, este proceso se denomina "informes de telemetría", que incluye analíticas, auditorías, facturación, registro y monitorización.

API Service Control v2

La API Service Control v2 proporciona un método sencillo services.report que ofrece informes de telemetría a todos los servicios integrados con Service Infrastructure. Este método te permite hacer lo siguiente en una sola llamada de método:

  • Analytics
  • Auditoría
  • Facturación
  • Almacenamiento de registros
  • Supervisión

Cuando un servicio envía datos de telemetría a la API Service Control, los datos se distribuyen al consumidor, al productor o a ambos, en función de la configuración del servicio. Para obtener más información sobre cómo configurar la telemetría, consulta las secciones de registro y monitorización de google.api.Service.

Para que un servicio pueda llamar a la API Service Control, el productor debe habilitar la API Service Control en el proyecto del productor y el llamante debe tener los permisos adecuados en el servicio. Para obtener más información, consulta los artículos Primeros pasos y Control de acceso a la API Service Control de las APIs de Cloud.

Atributos request

Cuando un cliente accede a un servicio, este debe modelar el acceso en términos de un conjunto de solicitudes a la API y describir cada solicitud mediante un AttributeContext.

Para registrar métricas de API mediante la API Service Control, el servicio debe llamar al método services.report por cada solicitud con los siguientes atributos. La API Service Control generará las métricas de la API y las enviará a Cloud Monitoring.

Atributo Descripción Ejemplo
origin.ip La dirección IP de la persona que llama. "1.2.3.4"
api.service El nombre del servicio de la API. "endpointsapis.appspot.com"
api.operation Nombre del método de la API. "google.example.hello.v1.HelloService.GetHello"
api.version Cadena de versión de la API. "v1"
api.protocol Nombre del protocolo de la API. "https"
request.id Un ID de solicitud único. "123e4567-e89b-12d3-a456-426655440000"
request.time Marca de tiempo de la solicitud. "2019-07-31T05:20:00Z"
request.method Nombre del método HTTP. "POST"
request.scheme El esquema de la URL. "https"
request.host El encabezado de host HTTP. "endpointsapis.appspot.com"
request.path La ruta de la URL. "/v1/hello"
response.code El código de estado de la respuesta. 200
response.size Tamaño de la respuesta en bytes. 100
response.time Marca de tiempo de la respuesta. "2019-07-31T05:20:02Z"
response.backend_latency La latencia de backend. "0,007 s"

Realizar informes de telemetría

Una vez que hayas implementado la configuración de tu servicio en la API Service Management y tu servicio esté listo para atender las solicitudes de los clientes, podrás empezar a llamar a services.report para tu servicio implementado. Debes llamar a services.report para generar informes de telemetría después de que tu servicio reciba una solicitud.

Para experimentar rápidamente con los informes de telemetría, puedes usar el comando gcurl para llamar al método services.report. Consulta los primeros pasos con la API Service Control para ver los pasos de configuración inicial.

En el siguiente ejemplo se muestra cómo usar el comando gcurl para llamar a services.report a través de 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

Si la solicitud se hace correctamente, la respuesta del método services.report debe estar vacía. Si falla, el error de la API debe contener información detallada sobre el error. Para obtener más información sobre la gestión de errores, consulta la guía de diseño de APIs > Errores.

En el caso de los servicios de producción, debes usar una de las bibliotecas de cliente proporcionadas por Google para llamar a la API Service Control. Estas bibliotecas ofrecen una gran usabilidad y gestionan automáticamente funciones comunes, como la autenticación. Para obtener más información, consulta el artículo Explicación de las bibliotecas de cliente.