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.