Introdução
Esta página descreve como usar a API Service Control v2 para relatórios de telemetria para serviços geridos que estão integrados com a infraestrutura de serviços. Destina-se a produtores de serviços que queiram integrar profundamente os respetivos serviços com o Google Cloud.
A Service Infrastructure é uma plataforma fundamental para os programadores produzirem, gerirem, protegerem e consumirem APIs e serviços. Usa um modelo de utilização de serviços simples e genérico: um consumidor consome um serviço gerido por um produtor. Todas as APIs Google e as APIs Google Cloud usam este modelo, uma vez que também são criadas com base na infraestrutura de serviços.
Quando um consumidor acede a um serviço, o serviço comunica dados de telemetria relevantes à plataforma, para que o consumidor e o produtor possam observar o acesso. Com a infraestrutura de serviços, este processo é denominado relatórios de telemetria, que incluem estatísticas, auditoria, faturação, registo e monitorização.
API Service Control v2
A API Service Control v2 oferece um método simples
services.report
que fornece relatórios de telemetria a todos os serviços integrados com a
infraestrutura de serviços. Este método permite-lhe fazer o seguinte numa única chamada de método:
- Google Analytics
- Auditorias
- Faturação
- Registo
- Monitorização
Quando um serviço comunica dados de telemetria à API Service Control, os dados são distribuídos ao consumidor, ao produtor ou a ambos, consoante a configuração do serviço. Para mais informações sobre a configuração da telemetria, consulte as secções de registo e monitorização de google.api.Service
.
Para que um serviço chame a API Service Control, o produtor tem de ativar a API Service Control no projeto do produtor e o autor da chamada tem de ter as autorizações adequadas no serviço. Para mais informações, consulte os artigos Introdução às APIs Cloud e Controlo de acesso da API Service Control.
Atributos de pedido
Quando um cliente acede a um serviço, o serviço tem de modelar o acesso em termos de um conjunto de pedidos de API e descrever cada pedido através de um AttributeContext
.
Para comunicar métricas da API através da API Service Control, o serviço tem de chamar o método services.report
para cada pedido com os seguintes atributos. A API Service Control
gera as métricas da API e envia-as para o Cloud Monitoring.
Atributo | Descrição | Exemplo |
---|---|---|
origin.ip |
O endereço IP do autor da chamada. | "1.2.3.4" |
api.service |
O nome do serviço da API. | "endpointsapis.appspot.com" |
api.operation |
O nome do método da API. | "google.example.hello.v1.HelloService.GetHello" |
api.version |
A string da versão da API. | "v1" |
api.protocol |
O nome do protocolo da API. | "https" |
request.id |
Um ID do pedido exclusivo. | "123e4567-e89b-12d3-a456-426655440000" |
request.time |
A data/hora do pedido. | "2019-07-31T05:20:00Z" |
request.method |
O nome do método HTTP. | "POST" |
request.scheme |
O esquema de URL. | "https" |
request.host |
O cabeçalho do anfitrião HTTP. | "endpointsapis.appspot.com" |
request.path |
O caminho de URL. | "/v1/hello" |
response.code |
O código de estado da resposta. | 200 |
response.size |
O tamanho da resposta em bytes. | 100 |
response.time |
A data/hora da resposta. | "2019-07-31T05:20:02Z" |
response.backend_latency |
A latência do back-end. | "0,007 s" |
Realizar relatórios de telemetria
Depois de implementar a configuração do serviço na API Service Management e o serviço estiver pronto para processar pedidos de clientes, pode começar a chamar services.report
para o serviço implementado. Deve chamar services.report
para fazer relatórios de telemetria depois de o seu serviço receber um pedido.
Para experimentar rapidamente os relatórios de telemetria, pode usar o comando gcurl
para chamar o método services.report
. Consulte o artigo
Introdução à API Service Control
para ver os passos de configuração iniciais.
O exemplo seguinte mostra como usar o comando gcurl
para chamar
services.report
atravé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
Se for bem-sucedido, a resposta do método services.report
deve estar vazia. Se falhar, o erro da API deve conter informações detalhadas sobre o erro.
Para mais informações sobre o processamento de erros, consulte o
guia de design de APIs > erros.
Para serviços de produção, deve usar uma das bibliotecas cliente fornecidas pela Google para chamar a API Service Control. Estas bibliotecas oferecem uma excelente usabilidade e processam automaticamente a funcionalidade comum, como a autenticação. Para mais informações, consulte o artigo Bibliotecas de cliente explicadas.