Crear métricas a partir de métricas ya disponibles

En esta página se describe cómo generar métricas nuevas a partir de métricas que ya existen desplegando un recurso personalizado MonitoringRule en Google Distributed Cloud (GDC) air-gapped.

Las reglas de grabación te permiten precalcular expresiones que se usan con frecuencia o que requieren muchos recursos computacionales, lo que mejora el rendimiento de los paneles de control y las alertas. Estas reglas, definidas en recursos personalizados MonitoringRule, generan nuevas métricas de series temporales a partir de métricas que ya existen, lo que mejora la observabilidad de los datos.

Al almacenar los resultados precalculados, las reglas de grabación eliminan los cálculos redundantes cada vez que se necesita una expresión. Este método acelera significativamente los tiempos de consulta, sobre todo en el caso de los paneles de control y las alertas complejos que requieren evaluaciones repetidas de la misma expresión. En esencia, los recursos MonitoringRule te permiten derivar métricas nuevas a partir de las que ya existen especificando los cálculos necesarios en sus reglas de grabación.

Antes de empezar

Para gestionar recursos personalizados MonitoringRule, debes tener los permisos necesarios.

Solicitar roles de gestión de identidades y accesos de la organización

Ponte en contacto con el administrador de gestión de identidades y accesos de tu organización para solicitar los siguientes roles:

  • Creador de PA de MonitoringRule (monitoringrule-pa-creator): crea recursos personalizados MonitoringRule.
  • Editor de PA de MonitoringRule (monitoringrule-pa-editor): edita o elimina recursos personalizados MonitoringRule.
  • Visualizador de PA de MonitoringRule (monitoringrule-pa-viewer): visualiza recursos personalizados MonitoringRule.

Solicitar roles de gestión de identidades y accesos del proyecto

Ponte en contacto con el administrador de gestión de identidades y accesos de tu proyecto para solicitar los siguientes roles:

  • Editor de MonitoringRule (monitoringrule-editor): edita o elimina recursos personalizados MonitoringRule en el espacio de nombres del proyecto.
  • Visualizador de MonitoringRule (monitoringrule-viewer): visualiza recursos personalizados MonitoringRule en el espacio de nombres del proyecto.

Crear reglas de grabación

Para crear una regla de grabación, define un nombre para la métrica grabada y una expresión válida que produzca un valor numérico. Cuando se evalúa esta expresión, se genera la nueva métrica. Despliega el recurso personalizado MonitoringRule en el espacio de nombres de tu proyecto en el servidor de la API Management para activar la regla de grabación.

Para obtener más información sobre las reglas de grabación, consulta https://grafana.com/docs/loki/latest/rules/.

Sigue estos pasos para crear reglas de grabación en el espacio de nombres de tu proyecto:

  1. Determina el proyecto de GDC en el que quieres crear reglas de grabación.
  2. Crea un archivo YAML que defina el recurso personalizado MonitoringRule.

    La especificación completa de MonitoringRule muestra un ejemplo de reglas de grabación basadas en métricas. Para obtener más información, consulta la documentación de referencia sobre la API.

  3. Sustituye los siguientes valores del archivo YAML según tus necesidades:

    Nombre del campo Descripción
    namespace El espacio de nombres del proyecto.
    name El nombre de la configuración de la regla.
    interval La duración del intervalo de evaluación de la regla en segundos.
    limit Opcional. El número máximo de alertas. Define el valor 0 para que las alertas sean ilimitadas.
    recordRules Las definiciones para calcular métricas nuevas.
    recordRules.record El nombre de registro de la nueva métrica. El valor debe ser un nombre de métrica válido que defina la serie temporal en la que se almacenan los resultados.
    recordRules.expr Una expresión PromQL para la regla de métrica, que debe dar como resultado un valor numérico.
    recordRules.labels Opcional. Los pares clave-valor de las etiquetas que se añadirán a la nueva métrica o que la sobrescribirán.
  4. Guarda el archivo YAML.

  5. Aplica la configuración de MonitoringRule al servidor de la API Management en el mismo espacio de nombres que tus reglas de grabación:

    kubectl --kubeconfig KUBECONFIG_PATH apply -f MONITORING_RULE_NAME.yaml
    

    Haz los cambios siguientes:

    • KUBECONFIG_PATH: la ruta al archivo kubeconfig del servidor de la API Management.
    • MONITORING_RULE_NAME: el nombre del archivo de definición de MonitoringRule.

Especificación completa de MonitoringRule

Un recurso personalizado MonitoringRule contiene reglas de grabación que describen las condiciones para crear métricas nuevas basadas en métricas que ya existen con el fin de mejorar la observabilidad.

En el siguiente archivo YAML se muestra una plantilla del recurso personalizado MonitoringRule. Para obtener más información, consulta la documentación de referencia sobre la API.

# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
  # Choose a namespace that matches the project namespace.
  # The alert or record is produced in the same namespace.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_RULE_NAME
spec:
  # 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 metrics.
  # 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 PromQL 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

Haz los cambios siguientes:

  • PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.
  • MONITORING_RULE_NAME: el nombre del archivo de definición de MonitoringRule.