Stackdriver会将日志中的不同时间单位转换为毫秒吗?

问题描述 投票:1回答:2

我有粗略格式的日志数据:

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转换为double)

当我绘制这些数据时,它似乎在我的图表上显示值“1539.32”和“1845.52”,表明那些s值正在转换为ms

这就是我想要的,但我找不到任何说Stackdriver实际读取单位后缀的地方(它肯定不是我的正则表达式的一部分)并将时间转换为标准单位。这是Stackdriver的实际行为吗?

google-cloud-platform stackdriver
2个回答
1
投票

Stackdriver肯定不是为你换时间单位,它只是提取double值并将其视为你在自定义指标中指定的任何单位,在我的情况下ms。我们最终改变了我们的日志记录代码,总是在ms中输出,并且永远不会将值“漂亮地打印”成3.293s2m51s,这是处理golang time.Duration时的默认值。

图表胜过千言万语,看看你是否可以发现我们部署代码更改的位置。

the true latency is revealed


0
投票

过滤例如,可能更好。对于httpRequest.latency,请参阅https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#HttpRequest

延迟 - 以秒为单位的持续时间,最多9个小数位,以's'结尾。示例:“3.5s”。

agent metrics

© www.soinside.com 2019 - 2024. All rights reserved.