在使用监控指标过程中,查看query_latency_us有些疑问,还请帮忙解答一下:
参考文档:https://docs.nebula-graph.io/3.2.0/nebula-dashboard/6.monitor-parameter/#graph_space
指标:query_latency_us
如图
问题
(1)指标含义average是什么?
(2)query_latency_us的数值类型是整数还是浮点数?
在使用监控指标过程中,查看query_latency_us有些疑问,还请帮忙解答一下:
参考文档:https://docs.nebula-graph.io/3.2.0/nebula-dashboard/6.monitor-parameter/#graph_space
指标:query_latency_us
如图
(1)指标含义average是什么?
(2)query_latency_us的数值类型是整数还是浮点数?
文档这里应该是多写了个avearge.
query_latency_us是整数, 表示的是查询语句的耗时情况.
我查了一下代码
src/common/stats/StatsManager.cpp:36
源码
void StatsManager::parseStats(const folly::StringPiece stats,
std::vector<StatsMethod>& methods,
std::vector<std::pair<std::string, double>>& percentiles) {
std::vector<std::string> parts;
folly::split(",", stats, parts, true);
for (auto& part : parts) {
// Now check the statistic method
std::string trimmedPart = folly::trimWhitespace(part).toString();
folly::toLowerAscii(trimmedPart);
if (trimmedPart == "sum") {
methods.push_back(StatsMethod::SUM);
} else if (trimmedPart == "count") {
methods.push_back(StatsMethod::COUNT);
} else if (trimmedPart == "avg") {
methods.push_back(StatsMethod::AVG);
} else if (trimmedPart == "rate") {
methods.push_back(StatsMethod::RATE);
} else if (trimmedPart[0] == 'p') {
// Percentile
double pct;
if (strToPct(trimmedPart, pct)) {
percentiles.emplace_back(trimmedPart, pct);
} else {
LOG(ERROR) << "\"" << trimmedPart << "\" is not a valid percentile form";
}
} else {
LOG(ERROR) << "Unsupported statistic method \"" << trimmedPart << "\"";
}
}
}
这块代码是否为统计query_latency_us指标的方法?std::vector<std::pair<std::string, double>>& percentiles的double是什么意思呢?
这里的double是用来记录每个指标的需要计算哪些pxxx的. 主要指标的时候会用到这里.
对应0.75, 0.95, 0.99, 0.999
明白了 感谢
我记得是因为统计时间吧。例如统计时间为5秒,这个值就是5秒内的查询的平均延迟时间,而不是单次查询的延迟时间。所以需要avearge。
不好意思这里确实表述的有点问题。
query_lantency_us.avg.5表示过去5s平均延时,必须用avg表示平均。
query_latency_us.p99.5表示过去5s的p99延时
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。