Nesta página, você aprende a usar a Service Infrastructure a fim de permitir que os serviços gerenciados gerem dados de monitoramento a serem enviados para projetos de produtor e consumidor de serviço. O Monitoring permite ver informações sobre desempenho, tempo de atividade e integridade geral de serviços gerenciados individuais.
A API Service Control aceita métricas, que são agrupadas e encaminhadas para o Cloud Monitoring. O Monitoring ingere essas métricas e gera insights por meio de painéis, gráficos e alertas.
Assim como o Monitoring permite que um serviço gerenciado gere dados de monitoramento para uso por você como desenvolvedor do serviço gerenciado, a API Service Control também permite gerar dados de monitoramento destinados a seus usuários. Isso possibilita que seus usuários entendam e diagnostiquem o uso do seu serviço gerenciado.
Observe que este guia é para métricas de monitoramento definidas por serviços gerenciados. Não é possível relatar métricas personalizadas do Monitoring por meio da API Service Control. Para gerar relatórios de métricas personalizadas, siga o guia do Monitoring.
Como configurar o monitoramento
Antes de enviar dados de monitoramento para a API Service Control, você precisa especificar três informações diferentes na sua configuração de serviço:
Recursos monitorados: um recurso monitorado representa uma entidade de nuvem que produz alguns dados de monitoramento. Para definir um recurso monitorado na configuração do serviço, consulte monitored_resource.proto para ver a especificação técnica. Recomendamos que você use o mesmo recurso monitorado para monitoramento e geração de registros.
Métricas: você pode relatar uma ou mais métricas. Cada métrica representa um estado cujo valor é rastreado ao longo do tempo. Consulte metric.proto para a especificação técnica a fim de definir uma métrica.
Configuração de monitoramento: permite especificar as métricas associadas a recursos monitorados individuais e ao projeto do produtor ou consumidor de serviço para o qual cada métrica deve ser enviada. Consulte monitoring.proto para mais detalhes.
O exemplo a seguir da configuração de serviço define um recurso monitorado e uma métrica.
# The definition of the monitored resource to be used.
monitored_resources:
- type: library.appspot.com/Branch
description: A library branch.
display_name: Library Branch
launch_stage: ALPHA
labels:
- key: resource_container
description: The Google Cloud resource container (ie. project id) for
the branch.
- key: location
description: The Google Cloud region the branch is located.
- key: branch_id
description: The ID of the branch.
# The definition of the metrics to be used.
metrics:
- name: library.appspot.com/book/num_overdue
display_name: Books Overdue
description: The current number of overdue books.
launch_stage: ALPHA
metric_kind: GAUGE
value_type: INT64
unit: 1
- name: library.googleapis.com/book/returned_count
display_name: Books Returned
description: The count of books that have been returned.
launch_stage: ALPHA
metric_kind: DELTA
value_type: INT64
unit: 1
# The monitoring configuration.
monitoring:
producer_destinations:
- monitored_resource: library.appspot.com/Branch
metrics:
- library.googleapis.com/book/returned_count
consumer_destinations:
- monitored_resource: library.appspot.com/Branch
metrics:
- library.appspot.com/book/num_overdue
Depois de criar essa configuração, você precisará seguir as instruções de Como gerenciar configurações de serviço e Como gerenciar distribuições de serviço para enviar a configuração de serviço à API Service Management, que configurará o recurso monitorado e as definições de métricas no Cloud Monitoring.
Como relatar métricas
Depois que o push da configuração do serviço for concluído, será possível chamar a
API Service Control para gerar relatórios de métricas. O exemplo a seguir usa o
comando gcurl
para demonstrar a chamada. Para informações sobre como fazer a configuração, consulte
Primeiros passos com a API Service Control.
gcurl -d "{ 'operations': [ { 'operationId': '8356d3c5-f9b5-4274-b4f9-079a3731e6e5', 'operationName': 'Return books', 'consumerId': 'projects/library-consumer', 'startTime': '`date +%FT%T%:z`', 'endTime': '`date +%FT%T%:z --date="5 seconds"`', 'labels': { 'location': 'us-east1', 'branch_id': 'my-test-library-branch' }, 'metricValueSets': [ { 'metricName': 'library.googleapis.com/book/returned_count', 'metricValues': [ { 'int64Value': '23' } ] } ] } ] }" https://servicecontrol.googleapis.com/v1/services/endpointsapis.appspot.com:report