如何在GKE的Pub/Sub订阅中创建通知过滤器筛选JSON日志指定字段
在Pub/Sub订阅中创建JSON日志字段筛选过滤器的方法
核心语法说明
Pub/Sub订阅支持基于JSON格式消息的payload字段编写过滤器,使用payload关键字配合JSON字段路径即可实现精准筛选。
针对示例JSON的过滤器示例
给定示例JSON日志:
{ "incident_type": "Bla bla", "incident_state": "Open", "message": "GKE Cluster upgrading, Can't perform update operation", "run": "Unsuccessful" }
以下是常用筛选场景及对应的过滤器表达式:
- 筛选
run字段为Unsuccessful的消息:payload.run = "Unsuccessful" - 筛选
incident_state为Open的消息:payload.incident_state = "Open" - 同时满足
run=Unsuccessful且incident_state=Open的消息:payload.run = "Unsuccessful" AND payload.incident_state = "Open" - 筛选
message字段包含upgrading关键词的消息:payload.message : "upgrading"
应用过滤器的方式
1. 使用gcloud命令行创建订阅
gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME] --filter='payload.run = "Unsuccessful"'
替换[SUBSCRIPTION_NAME]和[TOPIC_NAME]为你的实际资源名称。
2. 通过GCP控制台操作
创建或编辑订阅时,找到「过滤器」输入框,直接填入对应的表达式即可。
注意事项
- 确保消息payload是合法JSON,否则过滤器无法解析字段路径。
- 字符串匹配默认大小写敏感,需严格匹配字段值的大小写。
- 若JSON存在嵌套字段,使用
.层级遍历,比如payload.nested_field.child_key。
内容的提问来源于stack exchange,提问作者theGreatRegression
相关产品推荐
相关产品推荐

