前言
我一定要发出来,很气人的,关于jaeger查询不到结果的问题,事情是这样的,从前天开始,jaeger-query就查询不出东西来了,而且每次生成span后,都要等好久才能查询出来,或者只能查询出service但是span没有显示,于是猜想是不是有些参数需要设置,因为是非all-in-one,所以翻看了官网查找,但是无果,然后开始了下面的操作.
一、重新启动容器
修改es,kafka以及的日志级别到debug,其实反过来看的时候只修改query的就够了,然后查看日志发现
{"level":"debug","ts":1652260335.2791715,"caller":"zapgrpc/zapgrpc.go:129","msg":"POST /jaeger-span-2022-05-11/_search?ignore_unavailable=true&rest_total_hits_as_int=true HTTP/1.1\r\nHost: es2:9200\r\nUser-Agent: elastic/6.2.37 (linux-amd64)\r\nTransfer-Encoding: chunked\r\nAccept: application/json\r\nContent-Type: application/json\r\nAccept-Encoding: gzip\r\n\r\n169\r\n{\"aggregations\":{\"traceIDs\":{\"aggregations\":{\"startTime\":{\"max\":{\"field\":\"startTime\"}}},\"terms\":{\"field\":\"traceID\",\"order\":[{\"startTime\":\"desc\"}],\"size\":20}}},\"query\":{\"bool\":{\"must\":[{\"range\":{\"startTimeMillis\":{\"from\":1652238734656,\"include_lower\":true,\"include_upper\":true,\"to\":1652260334656}}},{\"match\":{\"process.serviceName\":{\"query\":\"demo\"}}}]}},\"size\":0}\r\n0\r\n\r\n\n"}
{"level":"debug","ts":1652260335.288804,"caller":"zapgrpc/zapgrpc.go:129","msg":"HTTP/1.1 200 OK\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n{\"took\":6,\"timed_out\":false,\"_shards\":{\"total\":5,\"successful\":5,\"skipped\":0,\"failed\":0},\"hits\":{\"total\":0,\"max_score\":null,\"hits\":[]},\"aggregations\":{\"traceIDs\":{\"doc_count_error_upper_bound\":0,\"sum_other_doc_count\":0,\"buckets\":[]}}}\n"}
二、保存出es数据到本地进行对比
导出到excel对比发现,检查请求参数到startTimeMillis时候发现值
“from”: 1652238734656, ----> “to”: 1652260334656
的时候
查看es中span的startTimeMillis最小值为1652281785748
最大值为1652288275692
query发送的请求中from和to的time比es中最小的startTimeMillis
还要小,所以查询数据为空,将请求体的startTimeMillis参数改为es中
处于有效区间的数据就查询出结果了
找到原因了
但是想不通为什么,于是在query的查询条件多限制一下,也查询出all了
然后…
…
发现agent和query是部署在本地win的虚拟机,其他环境部署在云主机上面,而本地虚拟机的时间为
[root@k8s-master1 ~]# date
2022年 05月 12日 星期四 01:37:26 CST
而当前时间为
2022年 05月 11日 星期四 01:39:26 CST
我吐了 …