Настройка подавленных проверок с помощью Terraform
Конфигурации подавленных проверок позволяют отключать определённые алерты или проверки на основе сопоставления меток в Knowledge Graph. Это полезно для окон обслуживания, тестовых сред или когда нужно временно подавить определённые типы алертов.
Сведения о подавлении инсайтов в интерфейсе Knowledge Graph см. в разделе Suppress insights.
Базовая настройка подавленных проверок
Создайте файл с именем suppressed-assertions.tf и добавьте следующее:
# Basic suppressed alert configuration for maintenance
resource "grafana_asserts_suppressed_assertions_config" "maintenance_window" {
provider = grafana.asserts
name = "MaintenanceWindow"
match_labels = {
service = "api-service"
maintenance = "true"
}
}
# Suppress specific alertname during deployment
resource "grafana_asserts_suppressed_assertions_config" "deployment_suppression" {
provider = grafana.asserts
name = "DeploymentSuppression"
match_labels = {
alertname = "HighLatency"
job = "web-service"
env = "staging"
}
}
# Suppress alerts for specific test environment
resource "grafana_asserts_suppressed_assertions_config" "test_environment_suppression" {
provider = grafana.asserts
name = "TestEnvironmentSuppression"
match_labels = {
alertgroup = "test.alerts"
environment = "test"
}
}
Конфигурации подавления для конкретных сервисов
Подавляйте алерты для отдельных сервисов во время обслуживания или операционных работ:
# Suppress alerts for specific services during maintenance
resource "grafana_asserts_suppressed_assertions_config" "api_service_maintenance" {
provider = grafana.asserts
name = "APIServiceMaintenance"
match_labels = {
service = "api-gateway"
job = "api-gateway"
maintenance = "scheduled"
}
}
# Suppress database alerts during backup operations
resource "grafana_asserts_suppressed_assertions_config" "database_backup" {
provider = grafana.asserts
name = "DatabaseBackupSuppression"
match_labels = {
service = "postgresql"
job = "postgres-exporter"
backup_mode = "active"
}
}
# Suppress monitoring system alerts during updates
resource "grafana_asserts_suppressed_assertions_config" "monitoring_update" {
provider = grafana.asserts
name = "MonitoringSystemUpdate"
match_labels = {
service = "prometheus"
job = "prometheus"
update = "in_progress"
}
}
Подавление по среде и команде
Создавайте правила подавления на основе среды или команды:
# Suppress all alerts for development environment
resource "grafana_asserts_suppressed_assertions_config" "dev_environment" {
provider = grafana.asserts
name = "DevelopmentEnvironmentSuppression"
match_labels = {
environment = "development"
team = "platform"
}
}
# Suppress alerts for specific team during their maintenance window
resource "grafana_asserts_suppressed_assertions_config" "team_maintenance" {
provider = grafana.asserts
name = "TeamMaintenanceWindow"
match_labels = {
team = "backend"
maintenance = "team_scheduled"
timezone = "UTC"
}
}
# Suppress alerts for staging environment during testing
resource "grafana_asserts_suppressed_assertions_config" "staging_testing" {
provider = grafana.asserts
name = "StagingTestingSuppression"
match_labels = {
environment = "staging"
testing = "automated"
job = "integration-tests"
}
}
Подавление по типу и важности алерта
Подавляйте алерты на основе их типа или важности:
# Suppress low severity alerts during business hours
resource "grafana_asserts_suppressed_assertions_config" "low_severity_business_hours" {
provider = grafana.asserts
name = "LowSeverityBusinessHours"
match_labels = {
severity = "warning"
timezone = "business_hours"
}
}
# Suppress specific alert types during known issues
resource "grafana_asserts_suppressed_assertions_config" "known_issue_suppression" {
provider = grafana.asserts
name = "KnownIssueSuppression"
match_labels = {
alertname = "HighMemoryUsage"
service = "legacy-service"
issue_id = "LEG-123"
}
}
# Suppress infrastructure alerts during planned maintenance
resource "grafana_asserts_suppressed_assertions_config" "infrastructure_maintenance" {
provider = grafana.asserts
name = "InfrastructureMaintenance"
match_labels = {
alertgroup = "infrastructure.alerts"
maintenance_type = "planned"
affected_services = "all"
}
}
Сложное подавление по нескольким меткам
Определите сложные правила подавления с несколькими метками:
# Complex suppression for multi-service deployments
resource "grafana_asserts_suppressed_assertions_config" "multi_service_deployment" {
provider = grafana.asserts
name = "MultiServiceDeploymentSuppression"
match_labels = {
deployment_id = "deploy-2024-01-15"
services = "api,worker,frontend"
environment = "production"
deployment_type = "blue_green"
}
}
# Suppress alerts for specific cluster during maintenance
resource "grafana_asserts_suppressed_assertions_config" "cluster_maintenance" {
provider = grafana.asserts
name = "ClusterMaintenanceSuppression"
match_labels = {
cluster = "production-cluster-1"
maintenance = "cluster_upgrade"
affected_nodes = "all"
estimated_duration = "2h"
}
}
# Suppress alerts for specific region during network issues
resource "grafana_asserts_suppressed_assertions_config" "regional_network_issue" {
provider = grafana.asserts
name = "RegionalNetworkIssueSuppression"
match_labels = {
region = "us-west-2"
issue_type = "network"
affected_services = "external_dependencies"
incident_id = "NET-456"
}
}
Справочник по ресурсам
grafana_asserts_suppressed_assertions_config
Управление конфигурациями подавленных проверок Knowledge Graph через API Grafana.
Аргументы
Пример
resource "grafana_asserts_suppressed_assertions_config" "example" {
provider = grafana.asserts
name = "ExampleSuppression"
match_labels = {
alertname = "TestAlert"
env = "development"
}
}
Рекомендации
При управлении подавленными проверками с помощью Terraform учитывайте следующие рекомендации.
Стратегия подавления
- Используйте правила подавления для временных ситуаций, а не как постоянное решение
- Документируйте причину подавления в комментариях к вашей конфигурации Terraform
- Устанавливайте даты истечения или напоминания для пересмотра правил подавления
- Предпочитайте исправление порогов алертов подавлению повторяющихся ложных срабатываний
Правила сопоставления меток
- Будьте конкретны в метках соответствия, чтобы не подавить непреднамеренные алерты
- Сначала протестируйте правила подавления в средах, отличных от продакшена
- Используйте описательные имена, отражающие цель и область действия подавления
- Включайте в метки соответствующий контекст (например, идентификаторы инцидентов, окна обслуживания)
Управление жизненным циклом
- Регулярно проверяйте активные правила подавления, чтобы убедиться, что они всё ещё нужны
- Удаляйте или обновляйте правила подавления после окон обслуживания или развёртываний
- Используйте систему контроля версий, чтобы отслеживать, когда и почему были добавлены правила подавления
- Рассмотрите использование автоматизации на основе времени для включения или отключения правил подавления
Проверка
После применения конфигурации Terraform убедитесь, что:
- Конфигурации подавленных проверок активны в вашем экземпляре Knowledge Graph
- Конфигурации отображаются в интерфейсе Knowledge Graph в разделе Observability > Rules > Suppress
- Соответствующие алерты корректно подавляются
- Правила подавления не затрагивают непреднамеренные алерты