-
wsn123 数据达人Lv4
发表于2024-4-2 09:20
悬赏1
已解决
如图:
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "tags": [ { "key": "monitorObject", "value": "xxx" }, { "key": "namespace", "value": "ElasticCloudServer" } ], "startTime": <#=asint(STRTODATE(datetostr(od(today(),'d-30'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "endTime": <#=asint(STRTODATE(datetostr(today(),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "downsample": "1s-mimmax", "aggregator": "mimmax" }
上面红色字体需要在报表动态获取,如有三个参数,@a ,@b,@c 我想把xxx设置为,if(@a=1,@b,@c)这种逻辑,在接口数据源怎么写呢?
问题:接口数据源的body,如何动态获取报表中的参数
如下示例如何根据报表参数控制value的值:
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "tags": [ { "key": "monitorObject", "value": "xxx" }, { "key": "namespace", "value": "ElasticCloudServer" } ], "startTime": <#=asint(STRTODATE(datetostr(od(today(),'d-30'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "endTime": <#=asint(STRTODATE(datetostr(today(),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "downsample": "1s-mimmax", "aggregator": "mimmax" }
解决方案:
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "tags": [ { "key": "monitorObject", "value": "<#=@ci_name#>" }, { "key": "namespace", "value": "ElasticCloudServer" } ], "startTime": <#=if(@sj='3天',asint(STRTODATE(datetostr(od(today(),'d-3'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime()),if(@sj='7天',asint(STRTODATE(datetostr(od(today(),'d-7'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime()),asint(STRTODATE(datetostr(od(today(),'d-1'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())))#>, "endTime": <#=asint(STRTODATE(datetostr(today(),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "downsample": "1s-mimmax", "aggregator": "mimmax" }
3个回答
已经解决 :
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "tags": [ { "key": "monitorObject", "value": "<#=@ci_name#>" }, { "key": "namespace", "value": "ElasticCloudServer" } ], "startTime": <#=if(@sj='3天',asint(STRTODATE(datetostr(od(today(),'d-3'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime()),if(@sj='7天',asint(STRTODATE(datetostr(od(today(),'d-7'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime()),asint(STRTODATE(datetostr(od(today(),'d-1'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())))#>, "endTime": <#=asint(STRTODATE(datetostr(today(),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "downsample": "1s-mimmax", "aggregator": "mimmax" }
可以做到 选择不同的时间 动态查询不同时间范围的数据 传不同的ci_name
wsn123 发表于 2024-4-2 16:03
已经解决 :
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "ta ...
厉害
关帖总结:
问题:接口数据源的body,如何动态获取报表中的参数
如下示例如何根据报表参数控制value的值:
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "tags": [ { "key": "monitorObject", "value": "xxx" }, { "key": "namespace", "value": "ElasticCloudServer" } ], "startTime": <#=asint(STRTODATE(datetostr(od(today(),'d-30'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "endTime": <#=asint(STRTODATE(datetostr(today(),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "downsample": "1s-mimmax", "aggregator": "mimmax" }
解决方案:
{ "metricNames": [ "cpu_usage", "memory_usage", "disk_usage" ], "tags": [ { "key": "monitorObject", "value": "<#=@ci_name#>" }, { "key": "namespace", "value": "ElasticCloudServer" } ], "startTime": <#=if(@sj='3天',asint(STRTODATE(datetostr(od(today(),'d-3'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime()),if(@sj='7天',asint(STRTODATE(datetostr(od(today(),'d-7'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime()),asint(STRTODATE(datetostr(od(today(),'d-1'),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())))#>, "endTime": <#=asint(STRTODATE(datetostr(today(),'yyyy-mm-dd hh:nn:ss'),'yyyy-mm-dd hh:nn:ss').getTime())#>, "downsample": "1s-mimmax", "aggregator": "mimmax" }