You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可用且语法正确的CDKTF Python版Grafana统一告警配置示例

使用CDKTF Python配置Grafana统一告警示例

前提准备

先安装所需依赖包:

pip install cdktf-cdktf-provider-grafana

完整可运行代码示例

from constructs import Construct
from cdktf import App, TerraformStack
from cdktf_cdktf_provider_grafana import GrafanaProvider, RuleGroup, ContactPoint, NotificationPolicy, ContactPointEmailConfig

class GrafanaAlertingStack(TerraformStack):
    def __init__(self, scope: Construct, id: str):
        super().__init__(scope, id)

        # 配置Grafana Provider
        GrafanaProvider(self, "grafana",
            url="http://your-grafana-instance:3000",
            auth="your-api-key"
        )

        # 创建邮件通知联系人点
        email_contact = ContactPoint(self, "email-contact",
            name="Email-Alerts",
            email_config=[ContactPointEmailConfig(
                addresses=["alerts@example.com"]
            )]
        )

        # 设置默认通知策略
        NotificationPolicy(self, "default-policy",
            contact_point=email_contact.name,
            group_wait="30s",
            group_interval="5m",
            repeat_interval="1h"
        )

        # 创建统一告警规则组
        RuleGroup(self, "cpu-high-alert",
            name="CPU-High",
            folder="General",
            rule=[{
                "for": "2m",
                "name": "High CPU Usage",
                "condition": "A",
                "data": [{
                    "datasource_uid": "prometheus",
                    "query_type": "range",
                    "expr": "100 - (avg by (instance) (irate(node_cpu_seconds_total{mode='idle'}[1m])) * 100) > 80"
                }],
                "labels": {
                    "severity": "critical"
                },
                "annotations": {
                    "summary": "Instance {{ $labels.instance }} has high CPU usage",
                    "description": "CPU usage is above 80% for more than 2 minutes."
                }
            }]
        )

app = App()
GrafanaAlertingStack(app, "grafana-alerting")
app.synth()

关键说明

  • Provider配置:替换url和auth为你的Grafana实例地址和API密钥
  • 联系人点:示例使用邮件通知,可根据需求替换为Slack、Teams等其他类型的*_config参数
  • 告警规则:expr为Prometheus查询语句,可根据监控指标调整;for字段定义告警触发的持续时间
  • 通知策略:设置告警分组等待时间、重复通知间隔等规则

运行步骤

  1. 将上述代码保存为main.py
  2. 初始化CDKTF项目(首次运行):
cdktf init --template=python --local
  1. 部署配置:
cdktf deploy

内容的提问来源于stack exchange,提问作者Christoph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 07:05:28