如何获取Snowflake中Resource Monitor的通知历史记录
Snowflake Resource Monitor通知历史获取方法
Snowflake原生提供系统视图可直接查询全量资源监控告警历史,无需额外配置,具体使用方法如下:
核心查询方案
通过SNOWFLAKE.ACCOUNT_USAGE.NOTIFICATION_HISTORY系统视图查询,该视图存储了账号内所有类型的通知记录,包含资源监控触发的所有告警的触发时间、告警级别、已用额度、接收人、通知状态等全量信息。
可直接使用以下SQL查询最近30天的资源监控告警:
SELECT CREATED AS 告警触发时间, RESOURCE_MONITOR_NAME AS 关联资源监控名称, PAYLOAD:thresholdLevel::STRING AS 告警阈值级别, PAYLOAD:creditsUsed::FLOAT AS 触发时已消耗信用额度, PAYLOAD:creditQuota::FLOAT AS 资源监控总配额, RECIPIENTS AS 告警接收人, STATUS AS 通知发送状态, PAYLOAD AS 完整告警内容(JSON格式) FROM SNOWFLAKE.ACCOUNT_USAGE.NOTIFICATION_HISTORY WHERE NOTIFICATION_TYPE = 'RESOURCE_MONITOR_ALERT' -- 可按需调整时间范围 AND CREATED >= DATEADD('day', -30, CURRENT_TIMESTAMP()) ORDER BY CREATED DESC;
注意事项
- 权限要求:执行查询的角色需要拥有
SNOWFLAKE.ACCOUNT_USAGEschema的SELECT权限,可通过ACCOUNTADMIN角色执行以下语句授权:GRANT SELECT ON SCHEMA SNOWFLAKE.ACCOUNT_USAGE TO ROLE <待授权角色名>; - 数据延迟:系统视图的数据存在最长2小时的同步延迟,无法查询刚刚触发的实时告警
- 保留周期:默认保留365天的历史记录,若需存储更长时间的告警数据,建议定期将查询结果同步到自定义表中持久化存储
- 若需要关联资源监控的用量趋势进行分析,可搭配
SNOWFLAKE.ACCOUNT_USAGE.RESOURCE_MONITOR_USAGE视图联合查询,获取对应时间段内的信用消耗明细
内容的提问来源于stack exchange,提问作者jerifortune
相关产品推荐
相关产品推荐

