En esta página, se describe cómo generar métricas nuevas a partir de métricas existentes implementando un recurso personalizado MonitoringRule
en el dispositivo aislado de Google Distributed Cloud (GDC).
Las reglas de registro te permiten precalcular expresiones que se usan con frecuencia o que son costosas desde el punto de vista computacional, lo que mejora el rendimiento de los paneles y las alertas. Definidas dentro de los recursos personalizados de MonitoringRule
, estas reglas generan nuevas métricas de series temporales a partir de métricas existentes, lo que mejora la observabilidad de los datos.
Al almacenar resultados precalculados, las reglas de registro eliminan los cálculos redundantes cada vez que se necesita una expresión. Este método acelera significativamente los tiempos de consulta, en especial para los paneles y las alertas complejos que requieren evaluaciones repetidas de la misma expresión. Básicamente, los recursos MonitoringRule
te permiten derivar métricas nuevas a partir de las existentes especificando los cálculos necesarios dentro de sus reglas de registro.
Antes de comenzar
Para obtener los permisos que necesitas para administrar recursos personalizados de MonitoringRule
, pídele al administrador de IAM de la organización o al administrador de IAM del proyecto que te otorgue uno de los roles de MonitoringRule
asociados.
Según el nivel de acceso y los permisos que necesites, es posible que obtengas roles de creador, editor o visualizador para este recurso en una organización o un proyecto. Para obtener más información, consulta Prepara los permisos de IAM.
Cómo crear reglas de grabación
Para crear una regla de registro, define un nombre para la métrica registrada y una expresión válida que produzca un valor numérico. Esta expresión, cuando se evalúa, genera la nueva métrica. Implementa el recurso personalizado en el espacio de nombres de tu proyecto en el servidor de la API de Management para crear las reglas 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:
- Determina el proyecto de GDC desde el que deseas crear reglas de grabación.
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 de la API.Reemplaza los siguientes valores en el archivo YAML según tus necesidades:
Nombre del campo Descripción namespace
Es el espacio de nombres del proyecto. name
Es el nombre de la configuración de la regla. interval
Es la duración del intervalo de evaluación de la regla en segundos. limit
Opcional. Es la cantidad máxima de alertas. Establécelo en 0
para recibir alertas ilimitadas.recordRules
Son las definiciones para calcular métricas nuevas. recordRules.record
Es el nombre del registro de la métrica nueva. 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
Es una expresión PromQL para la regla de métrica, que debe evaluarse como un valor numérico. recordRules.labels
Opcional. Son los pares clave-valor de las etiquetas que se agregarán a la métrica nueva o que la reemplazarán. Guarda el archivo YAML.
Aplica la configuración de
MonitoringRule
al servidor de la API de Management dentro del mismo espacio de nombres que tus reglas de grabación:kubectl --kubeconfig KUBECONFIG_PATH apply -f MONITORING_RULE_NAME.yaml
Reemplaza lo siguiente:
KUBECONFIG_PATH
: Es la ruta al archivo kubeconfig del servidor de la API de administración.MONITORING_RULE_NAME
: Es el nombre del archivo de definición deMonitoringRule
.
Especificación de MonitoringRule
completa
Un recurso personalizado MonitoringRule
contiene reglas de grabación que describen las condiciones para crear métricas nuevas basadas en métricas existentes para la observabilidad.
En el siguiente archivo YAML, se muestra una plantilla para el recurso personalizado MonitoringRule
. Para obtener más información, consulta la documentación de referencia de 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
Reemplaza lo siguiente:
PROJECT_NAMESPACE
: Es el espacio de nombres de tu proyecto.MONITORING_RULE_NAME
: Es el nombre del archivo de definición deMonitoringRule
.
Las reglas de registro de LoggingRule
Un CR de LoggingRule
contiene reglas de registro que describen las condiciones para calcular métricas nuevas basadas en registros preexistentes.
En el siguiente archivo YAML, se muestra una plantilla para el campo recordRules
del 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: g-fleetns-a
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>
...