Calcular métricas com base em registros

Calcular métricas significa gerar novas métricas com base em registros ou métricas preexistentes para observabilidade de dados. Para calcular métricas no GDC, configure regras de gravação em um recurso personalizado LoggingRule. As regras de gravação pré-calculam expressões que são necessárias com frequência ou que exigem muita computação. Essas regras salvam o resultado como um novo conjunto de série temporal. Consultar o resultado pré-calculado é mais rápido do que executar a expressão original sempre que necessário. Essa pré-computação é especialmente útil para painéis e alertas complexos, que precisam consultar a mesma expressão repetidamente sempre que são atualizados ou avaliados.

Você configura regras de gravação no recurso personalizado LoggingRule para calcular métricas com base em dados de geração de registros do sistema. O recurso personalizado LoggingRule contém regras de gravação que descrevem as condições para calcular novas métricas com base em registros preexistentes.

Antes de começar

Para receber as permissões necessárias para calcular métricas com base em registros, peça ao administrador do IAM do projeto para conceder a você um dos seguintes papéis no namespace do projeto:

  • Criador de regras de geração de registros: cria recursos personalizados LoggingRule. Solicite o papel de criador de regras do Logging (loggingrule-creator).
  • Editor de regras de geração de registros: edita ou modifica recursos personalizados LoggingRule. Solicite o papel de editor de regras de geração de registros (loggingrule-editor).
  • Visualizador de regras de geração de registros: mostra recursos personalizados LoggingRule. Solicite o papel de leitor de regras do Logging (loggingrule-viewer).

Criar regras de gravação

Defina um nome de registro e uma expressão válida que avalie a regra. A expressão precisa ser resolvida como um valor numérico para ser registrada como uma nova métrica. Implante o recurso personalizado no namespace do projeto no cluster de administrador da organização para criar as regras de gravação da plataforma de observabilidade.

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

Siga as etapas abaixo para criar regras de registro e calcular métricas no namespace do seu projeto:

  1. Abra ou crie o arquivo YAML para o CR usando o modelo CR LoggingRule para regras de registros de registros.
  2. No campo namespace do CR, insira o namespace do projeto.
  3. No campo name, insira o nome da configuração de regra.
  4. Opcional: você pode escolher a origem do registro no campo source. Por exemplo, insira um valor como operational ou audit.
  5. No campo interval, insira o número de segundos para a duração do intervalo de avaliação da regra.
  6. Opcional: no campo limit, insira o número máximo de alertas. Insira 0 para alertas ilimitados.
  7. No campo recordRules, insira as seguintes informações para calcular métricas:

    • No campo record, insira o nome do registro. Esse valor define a série temporal em que a regra de gravação será escrita e precisa ser um nome de métrica válido.
    • No campo expr, insira uma expressão LogQL para a regra de registro.

      Essa expressão precisa ser resolvida como um valor numérico para ser registrada como uma nova métrica.

    • Opcional: no campo labels, defina os rótulos que você quer adicionar ou substituir como pares de chave-valor.

  8. Salve o arquivo YAML da CR.

  9. Implante o CR no namespace do projeto do cluster de administrador para criar as regras de registro.

As regras de registro LoggingRule

Um recurso personalizado LoggingRule contém regras de gravação que descrevem as condições para calcular novas métricas com base em dados de registro do sistema preexistentes para observabilidade.

O arquivo YAML a seguir mostra um modelo para o campo recordRules da CR LoggingRule.

# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1alpha1
kind: LoggingRule
metadata:
  # Choose namespace that matches the project's namespace
  # Note: The alert or record will be produced in the same namespace
  namespace: PROJECT_NAMESPACE
  name: alerting-config
spec:
  # Choose which log source to base alerts on (Operational/Audit/Security Logs)
  # Optional, Default: Operational
  source: <string>

  # Rule evaluation interval
  interval: <duration>

  # Configure limit for number of alerts (0: no limit)
  # Optional, Default: 0 (no limit)
  limit: <int>

  # Configure record rules to generate new metrics based on pre-existing logs.
  # Record rules generate metrics based on logs.
  # Use record rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
  recordRules:
    # Define which timeseries to write to (must be a valid metric name)
  - record: <string>

    # Define LogQL expression to evaluate for this rule
    # https://grafana.com/docs/loki/latest/rules/
    expr: <string>

    # Define labels to add or overwrite
    # Optional, Map of {key, value} pairs
    labels:
      <labelname>: <labelvalue>
...

Substitua PROJECT_NAMESPACE pelo namespace do projeto.