求可用且语法正确的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字段定义告警触发的持续时间 - 通知策略:设置告警分组等待时间、重复通知间隔等规则
运行步骤
- 将上述代码保存为
main.py - 初始化CDKTF项目(首次运行):
cdktf init --template=python --local
- 部署配置:
cdktf deploy
内容的提问来源于stack exchange,提问作者Christoph
相关产品推荐
相关产品推荐

