El cálculo de métricas implica generar métricas nuevas basadas en registros o métricas preexistentes para la observabilidad de los datos. Para calcular las métricas en GDC, debes configurar reglas de grabación en un recurso personalizado MonitoringRule
. Las reglas de registro precalculan expresiones que se necesitan con frecuencia o que son costosas desde el punto de vista computacional. Estas reglas guardan su resultado como un nuevo conjunto de series temporales. Consultar el resultado precalculado es más rápido que ejecutar la expresión original cuando sea necesario. Esta precomputación es especialmente útil para los paneles y las alertas complejas, que deben consultar la misma expresión repetidamente cada vez que se actualizan o evalúan.
Configuras reglas de grabación en el recurso personalizado MonitoringRule
para calcular métricas basadas en otras métricas de supervisión del sistema. El recurso personalizado MonitoringRule
contiene reglas de grabación que describen las condiciones para calcular métricas nuevas basadas en métricas preexistentes.
Antes de comenzar
Para obtener los permisos que necesitas para calcular métricas a partir de otras métricas, pídele al administrador de IAM del proyecto que te otorgue uno de los siguientes roles:
- Editor de reglas de supervisión: Edita o modifica recursos personalizados
MonitoringRule
. Solicita el rol de editor de reglas de Monitoring (monitoringrule-editor
). - Visualizador de reglas de Monitoring: Visualiza recursos personalizados de
MonitoringRule
. Solicita el rol de Visualizador de reglas de Monitoring (monitoringrule-viewer
).
Cómo crear reglas de grabación
Define un nombre de registro y una expresión válida que evalúe la regla. La expresión debe resolverse en un valor numérico para registrarse como una métrica nueva. Implementa el recurso personalizado en el espacio de nombres de tu proyecto en el clúster de administrador 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 registro y calcular métricas en el espacio de nombres de tu proyecto:
- Abre o crea el archivo YAML para el CR con la plantilla CR de
MonitoringRule
para las reglas de registros de supervisión. - En el campo
namespace
del CR, ingresa el espacio de nombres de tu proyecto. - En el campo
name
, ingresa el nombre de la configuración de la regla. - Opcional: Puedes elegir la fuente de registro en el campo
source
. Las opciones válidas sonoperational
yaudit
. - En el campo
interval
, ingresa la cantidad de segundos para la duración del intervalo de evaluación de la regla. - Opcional: En el campo
limit
, ingresa la cantidad máxima de alertas. Ingresa0
para recibir alertas ilimitadas. En el campo
recordRules
, ingresa la siguiente información para calcular las métricas:- En el campo
record
, ingresa el nombre del registro. Este valor define la serie temporal en la que se escribirá la regla de registro y debe ser un nombre de métrica válido. En el campo
expr
, ingresa una expresión de PromQL para la regla de métricas.Esta expresión debe resolverse en un valor numérico para registrarse como una métrica nueva.
Opcional: En el campo
labels
, define las etiquetas que deseas agregar o reemplazar como pares clave-valor.
- En el campo
Guarda el archivo YAML del CR.
Implementa el CR en el espacio de nombres del proyecto del clúster de administrador para crear las reglas de registro.
Las reglas de registro de MonitoringRule
Un recurso personalizado MonitoringRule
contiene reglas de grabación que describen las condiciones para calcular métricas nuevas basadas en métricas de supervisión del sistema preexistentes.
En el siguiente archivo YAML, se muestra una plantilla para el campo recordRules
del CR MonitoringRule
.
# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1alpha1
kind: MonitoringRule
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:
# 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 metrics.
# Record rules precompute expressions that are frequently needed or computationally expensive.
# These rules save their result as a new set of time series.
recordRules:
# Define which timeseries to write to (must be a valid metric name)
- record: <string>
# Define PromQL expression to evaluate for this rule
expr: <string>
# Define labels to add or overwrite
# Optional, Map of {key, value} pairs
labels:
<labelname>: <labelvalue>
...
Reemplaza PROJECT_NAMESPACE por el espacio de nombres de tu proyecto.
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>
...