首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用不同的时间戳将两个不同的源组合在进水/流量中

用不同的时间戳将两个不同的源组合在进水/流量中
EN

Stack Overflow用户
提问于 2022-06-02 09:10:47
回答 1查看 436关注 0票数 0

我有2项测量数据如下:

代码语言:javascript
复制
metrics,app=app1 cpu=10 1654150510
metrics,app=app1 cpu=12 1654150512
metrics,app=app1 cpu=13 1654150514
metrics,app=app1 cpu=14 1654150516
metrics,app=app1 cpu=15 1654150519

“度量”测量的频率约为2/3秒。第二个是:

代码语言:javascript
复制
http_requests,app=app1 response_time=12 1654150509
http_requests,app=app1 response_time=11 1654150510
http_requests,app=app1 response_time=15 1654150511
http_requests,app=app1 response_time=14 1654150512
http_requests,app=app1 response_time=13 1654150513
http_requests,app=app1 response_time=10 1654150514
http_requests,app=app1 response_time=12 1654150515
http_requests,app=app1 response_time=11 1654150516
http_requests,app=app1 response_time=13 1654150517
http_requests,app=app1 response_time=12 1654150518

http_requests的频率约为1秒。

我想将这两个指标合并到一个表中。

代码语言:javascript
复制
_time,value_cpu,value_response_time
1654150509,10,12
1654150510,10,11
1654150511,12,15

由于时间戳可能是不同的,是否有办法将它们结合在一起?fill就是这条路。我不确定timeshift是否会在这里有所帮助。虽然我没有完全理解它。我假设需要某种类型的下采样(在不断变化的情况下,不确定如何做到这一点)。有没有办法根据最近的时间差来计算测量值?伊..。如果response测量是在时间上出现的

代码语言:javascript
复制
1654150510,app=app1 response_time=10
1654150513,app=app1 response_time=12
1654150514,app=app1 response_time=11
1654150516,app=app1 response_time=13

中央处理器来了

代码语言:javascript
复制
1654150512,app=app1 cpu=20
1654150515,app=app1 cpu=30

那么结果表是

代码语言:javascript
复制
_time,response_time,cpu
1654150510,10,
1654150513,12,20
1654150514,11,
1654150516,13,30

CPU值与最近的时间戳(+/-差分)结合到一起,如何在进水数据库中的flux中实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2022-06-02 14:18:50

我想aggregateWindowfill的低采样可能会奏效。

另一种方法是枢轴,然后使用以前的值填充缺失的值。至少从性能的角度来看,这样做的好处是,当在给定的时间内都没有记录时,就不会创建包含以前值的新行。

使用

代码语言:javascript
复制
from(bucket: "stackx")
 |> range(start: -1d)
 |> filter(fn: (r) => r._measurement == "metrics" or r._measurement == "http_requests")
 |> drop(columns: ["_measurement"]) // or remove from group other way
 |> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")
 |> sort(columns: ["_time"], desc: false)
 |> fill(column: "cpu", usePrevious: true)
 |> fill(column: "response_time", usePrevious: true)

结果将是

代码语言:javascript
复制
_time,app,cpu,response_time
2022-06-02T06:15:09Z,app1,,12
2022-06-02T06:15:10Z,app1,10,11
2022-06-02T06:15:11Z,app1,10,15
2022-06-02T06:15:12Z,app1,12,14
2022-06-02T06:15:13Z,app1,12,13
2022-06-02T06:15:14Z,app1,13,10
2022-06-02T06:15:15Z,app1,13,12
2022-06-02T06:15:16Z,app1,14,11
2022-06-02T06:15:17Z,app1,14,13
2022-06-02T06:15:18Z,app1,14,12
2022-06-02T06:15:19Z,app1,15,12
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72473642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档