Criar métricas a partir de registros

Nesta página, descrevemos como gerar novas métricas de registros atuais implantando um recurso personalizado LoggingRule no dispositivo isolado do Google Distributed Cloud (GDC).

Com as regras de gravação, é possível pré-calcular expressões usadas com frequência ou computacionalmente caras, melhorando o desempenho de painéis e alertas. Definidas em recursos personalizados LoggingRule, essas regras geram novas métricas de série temporal com base em registros atuais, melhorando a observabilidade dos dados.

Ao armazenar resultados pré-calculados, as regras de gravação eliminam cálculos redundantes sempre que uma expressão é necessária. Esse método acelera significativamente os tempos de consulta, principalmente para painéis e alertas complexos que exigem avaliações repetidas da mesma expressão. Basicamente, os recursos LoggingRule permitem derivar novas métricas dos dados de registros atuais especificando os cálculos necessários nas regras de gravação.

Antes de começar

Para receber as permissões necessárias para gerenciar recursos personalizados do LoggingRule, peça ao administrador do IAM da organização ou do projeto para conceder a você uma das funções associadas do LoggingRule.

Dependendo do nível de acesso e das permissões necessárias, você pode receber papéis de criador, editor ou leitor para esse recurso em uma organização ou um projeto. Para mais informações, consulte Preparar permissões do IAM.

Criar regras de gravação

Para criar uma regra de gravação, defina um nome para o registro gravado e uma expressão válida que produza um valor numérico. Essa expressão, quando avaliada, gera a nova métrica. Implante o recurso personalizado LoggingRule no namespace do projeto no servidor da API Management para ativar a regra de gravação.

Para mais informações sobre regras de gravação, consulte https://grafana.com/docs/loki/latest/rules/.

Siga estas etapas para criar regras de gravação no namespace do projeto:

  1. Determine o projeto do GDC em que você quer criar regras de gravação.
  2. Crie um arquivo YAML definindo o recurso personalizado LoggingRule.

    A especificação completa do LoggingRule mostra um exemplo de regras de gravação com base em registros. Para mais informações, consulte a documentação de referência da API.

  3. Substitua os seguintes valores no arquivo YAML de acordo com suas necessidades:

    Nome do campo Descrição
    namespace O namespace do projeto.
    name O nome da configuração de regra.
    source A origem do registro para a regra de gravação. As opções válidas são operational e audit.
    interval A duração do intervalo de avaliação da regra em segundos.
    limit Opcional. O número máximo de alertas. Defina como 0 para alertas ilimitados.
    recordRules As definições para calcular novas métricas.
    recordRules.record O nome do registro da nova métrica. O valor precisa ser um nome de métrica válido que defina a série temporal em que os resultados são armazenados.
    recordRules.expr Uma expressão LogQL para a regra de registro, que precisa ser avaliada como um valor numérico.
    recordRules.labels Opcional. Os pares de chave-valor de rótulos a serem adicionados ou substituídos na nova métrica.
  4. Salve o arquivo YAML.

  5. Aplique a configuração LoggingRule ao servidor da API Management no mesmo namespace das regras de gravação:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_RULE_NAME.yaml
    

    Substitua:

    • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management.
    • LOGGING_RULE_NAME: o nome do arquivo de definição de LoggingRule.

Especificação completa de LoggingRule

Um recurso personalizado LoggingRule contém regras de gravação que descrevem as condições para criar novas métricas com base em registros atuais para observabilidade.

O arquivo YAML a seguir mostra um modelo para o recurso personalizado LoggingRule. Para mais informações, consulte a documentação de referência da API.

# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
  # Choose a namespace that matches the project namespace.
  # The alert or record is produced in the same namespace.
  namespace: PROJECT_NAMESPACE
  name: LOGGING_RULE_NAME
spec:
  # Choose the log source to base alerts on (operational or audit logs).
  # Optional.
  # Valid options: 'operational' and 'audit'
  # Default value: 'operational'
  source: operational

  # Rule evaluation interval.
  interval: 60s

  # Configure the limit for the number of alerts.
  # A value of '0' means no limit.
  # Optional.
  # Default value: '0'
  limit: 0

  # Configure recording rules to generate new metrics based on existing logs.
  # Recording rules precompute expressions that are frequently needed or computationally expensive.
  # Results are saved as a new set of time series.
  recordRules:
    # Define the time series where you want to write the recording rule.
    # The value must be a valid metric name.
  - record: MyMetricsName

    # Define the LogQL expression to evaluate for this rule.
    expr: rate({service_name="bob-service"} [1m])

    # Define labels to add or overwrite.
    # Map of key-value pairs.
    # Optional.
    labels:
      verb: read

Substitua:

  • PROJECT_NAMESPACE: o namespace do projeto.
  • LOGGING_RULE_NAME: o nome do arquivo de definição LoggingRule.