我有粗略格式的日志数据:
textPayload: "latency=1.539325257s method=GET"
textPayload: "latency=355.376208ms method=GET"
textPayload: "latency=704.816053ms method=GET"
textPayload: "latency=751.597856ms method=GET"
textPayload: "latency=1.845525343s method=GET"
我已经使用正则表达式latency=([0-9.]+)
在Stackdriver中创建了一个分配指标,该度量提取了延迟(并由stackdriver转换为double)
当我绘制此数据的图形时,它似乎在图表上显示了值“ 1539.32”和“ 1845.52”,表明这些s
值已转换为ms
。
这就是我想要的,但是我找不到任何显示Stackdriver actually 的地方,即读取单元的后缀(它绝对不是我的正则表达式的一部分)并将时间转换为标准单位。这是Stackdriver的 actual 行为吗?
答案 0 :(得分:1)
Stackdriver绝对不会为您在时间单位之间进行转换,它只是提取double
值并将其视为您在自定义指标中指定的任何单位,在我的情况下为ms
。我们最终将记录代码更改为始终以ms
输出,并且永远不会“漂亮地打印”该值到类似3.293s
和2m51s
的位置,这是处理golang {{1 }}。
一个图形值一千个单词,看看您是否能发现我们将代码更改部署到何处。
答案 1 :(得分:0)
最好过滤例如httpRequest.latency
,请参见https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#HttpRequest。
等待时间-持续时间(以秒为单位),最多9个小数位,以's'结尾。例如:“ 3.5s”。
请参见agent metrics。