Como relatar métricas de monitoramento

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: A 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