本页提供了一些有关采用 SMT 的订阅的常见问题排查提示。
监控 SMT
如需了解 SMT 对订阅的性能和影响,请使用以下监控指标:
subscription/message_transform_latencies 指标用于衡量将 SMT 应用于消息所需的时间。此指标仅衡量 SMT 延迟时间,不包括消息传送时间的其他部分。
该指标提供两个关键标签:
status:报告转换是否成功或遇到问题。filtered:指示 SMT 是否导致消息被过滤掉。当 SMT 过滤订阅中的消息时,Pub/Sub 会确认该消息,并且该消息永远不会发送给订阅者。只有当 SMT 执行过滤时,此filtered标签才为 true。使用 Pub/Sub 的内置过滤功能过滤的消息不会反映在此特定指标中。
subscription/byte_cost 指标用于标识被 SMT 过滤或 SMT 失败的消息。查找以下特定值:
当 SMT 过滤消息时,operation_type 为
smt_subscribe_filter_drop。如果 SMT 未能转换消息,您会看到一个不是
OK的response_code。
积压的工作越来越多
如果您发现订阅中积压的消息越来越多,请检查 subscription/message_transform_latencies 中报告的 INVALID_ARGUMENT 错误。
如需排查 INVALID_ARGUMENT 错误,请向相关订阅添加死信主题。死信主题会捕获无法传送给订阅方的消息,以及一个名为 CloudPubSubDeadLetterSourceSMTErrorMessage 的属性,用于说明失败原因。
后续步骤
- 如果您在订阅 SMT 方面仍遇到问题,请参阅获取支持。