用途:通过查询 Honeycomb 找出最近测试生成的 trace,用于验证实现或排查测试结果。
何时使用:用户要求“在 Honeycomb 中显示一个 trace”、完成需要可观测性验证的实现步骤,或需要查找最近 trace 时自动激活。
验证输出格式:报告为 Queried [VIZ] where [FILTERS] by [GROUP_BY] over [TIME_RANGE],并给出 Honeycomb 查询链接。
查询模式:
- 获取特定 trace:确定被测服务(决定 dataset),确认期望的 span 名称。查询 dataset、filter name = [expected span name]、time_range、calculation COUNT、include_samples true;取最近样本后使用 get_trace 获取完整 trace。输出包括查询链接、最近 trace 链接、根 span 名称、span 总数和服务列表。
- 查找测试开始以来的所有 trace:查询所有 dataset、filter trace.parent_id does-not-exist、time_range、COUNT、breakdowns name、include_samples true,逐条打印 Trace ID、Span 名称等信息,并按给定 URL 模板构造 trace 链接。
- 精确查找最近 trace:使用 calculated_fields event_time=EVENT_TIMESTAMP()、COUNT、breakdowns event_time, trace.trace_id、order event_time DESC、limit 1、include_samples false;打印摘要后用 trace_id 调用 get_trace。
- 看不到 trace 时:在生成 trace 的测试前打印当前时间 start_time=$(date +%s),运行测试后计算时间范围 echo $(( $(date +%s) - $start_time + 20)),据此调整查询。
限制:默认时间范围 1200 秒(20 分钟),可根据测试开始时间调整;需要 Honeycomb 环境、数据集与相应查询权限,具体可用性暂未提供。