用途:查询与分析 Coralogix 中的分布式追踪数据。trace 不是单独存储的实体,而是共享同一 traceID 的 span 的逻辑分组,因此分析 trace 即查询其组成 span。
主要能力:通过 cx spans '<dataprime_query>' 执行 DataPrime 查询,支持按服务名、操作名、traceID、耗时、错误标签等筛选,并可用 groupby、orderby 等做聚合排序。命令选项包括 --start(默认 now-1h,支持 ISO 8601 或相对时间)、--end(默认 now)、--limit(默认 200)、--tier(frequent 热存储或 archive 冷存储)、-o/--output(text、json 或 agents)。
数据模型:始终可用的字段有 $m.timestamp、$m.duration(微秒)、$l.applicationName、$l.subsystemName、$l.serviceName、$l.operationName、$d.traceID、$d.spanID、$d.parentSpanID;$d.* 为各服务自定义标签,使用前需确认是否存在。duration 为微秒,展示时应换算为毫秒/秒/分钟并标注单位。spans 没有类似日志的 $m.severity,错误通常以 $d.tags.error == true 或自定义状态码字段表示。
字段发现:仅使用标准字段或用户已明确字段时可跳过。可通过源码中的 OpenTelemetry 埋点推断,或用 cx search-fields "关键字" --dataset spans 语义搜索,也可用样例查询检查:cx spans "filter $l.serviceName == 'api'" --limit 5 -o json。
限制:wildfind 默认应避免,因其扫描全部字段、开销高,仅在用户给出具体字符串且不知字段位置时使用。查询无结果时逐一调整:延长时间范围、放宽过滤、确认字段可用性、核对字段名、注意服务名大小写、尝试 archive 层。$l.applicationName 与 $l.subsystemName 的含义因客户而异,不要假设其映射。内联帮助可用 cx dataprime list 与 cx dataprime show filter。