1

这个查询给了我指标/秒:

fetch https_lb_rule::loadbalancing.googleapis.com/https/request_count
                | within 5m
                | align rate(1m)
                | every 1m
                | group_by
                    [ metric.cache_result,metric.proxy_continent,metric.response_code_class,metric.response_code,metric.protocol,resource.backend_name,resource.backend_type,resource.backend_scope,resource.backend_scope_type,resource.backend_target_type,resource.backend_target_name,resource.forwarding_rule_name,resource.matched_url_path_rule,resource.target_proxy_name,resource.url_map_name,resource.region,resource.project_id ],
                    [value_request_count_aggregate: aggregate(value.request_count)]

如何获得指标/分钟?

4

1 回答 1

2

指标的单位是"1"(就像大多数计数器指标一样)。速率校准器的结果始终是每秒。所以对齐器的输出有单位"1/s"。MQL 有一个scale[ 可用于缩放值的函数。在这种情况下,| value scale(val(), "1/min")在对齐步骤之后添加可用于将其缩放为具有单位“1/min”。(一种快捷的说法是| scale "1/min"

对此的一种变体是将 替换为"1"正在计数的事物的注释:“{requests}/min”。单位是根据UCUM 单位标准给出的

那么查询是

fetch https_lb_rule::loadbalancing.googleapis.com/https/request_count
                | align rate(1m)
                | scale "{requests}/min"
                | every 1m
                | group_by
                    [metric.cache_result,metric.proxy_continent,
                     metric.response_code_class,metric.response_code,
                     metric.protocol,resource.backend_name,
                     resource.backend_type,resource.backend_scope,
                     resource.backend_scope_type, resource.backend_target_type,
                     resource.backend_target_name, resource.forwarding_rule_name, 
                     resource.matched_url_path_rule,
                     resource.target_proxy_name, resource.url_map_name,
                     resource.region,resource.project_id ],
                    [value_request_count_aggregate:
                       aggregate(val(0))]
                | div 60
                | within 5m

最终样式注释: within给出查询输出的范围(即使最后没有给出)。把它放在最后是个好主意。

于 2021-09-16T18:56:11.783 回答