如何用Kibana 5.5创建可视化展示服务器成功交易占比?
在Kibana 5.5中按时间维度统计成功交易占比的实现方案
Hey Moshe,针对你想要在Kibana 5.5里展示按时间维度统计的成功交易(httpCode:200)占比需求,我给你整理了两种实操方案,都是适配5.5版本的:
方案一:使用Filter Ratio聚合(推荐,无需额外字段)
这是最直接的方式,专门用来计算两个过滤条件的比值:
- 进入Kibana的Visualize界面,点击右上角的
Create new visualization,选择Line Chart(用来展示时间趋势的占比)。 - 选择你对应的索引模式,进入可视化配置页面。
- 配置X轴(时间维度):
- 在左侧Buckets区域,点击
Add→ 选择X-Axis→ 聚合类型选Date Histogram。 - 字段选择你的时间字段(比如
@timestamp),时间间隔根据你的业务需求选择(比如小时、天)。
- 在左侧Buckets区域,点击
- 配置Y轴(占比计算):
- 在左侧Metrics区域,点击
Add→ 选择Filter Ratio。 - 分子(Numerator):点击
Add filter,设置过滤条件为httpCode:200(如果httpCode是字符串类型,要写成httpCode:"200"),这代表成功交易的数量。 - 分母(Denominator):点击
Add filter,设置过滤条件为*:*,这代表所有交易的总数量。 - 给这个聚合起个清晰的名字,比如
成功交易占比。 - 找到Format选项,选择
Percent,这样结果会以百分比形式展示(比如0.72会显示为72%)。
- 在左侧Metrics区域,点击
- 点击顶部的
Apply changes,就能看到按时间维度变化的成功交易占比折线图了。
方案二:使用Calculation聚合(适合灵活自定义场景)
如果Filter Ratio聚合不符合你的需求,也可以通过脚本计算每个文档的贡献值,再取平均值得到占比:
- 同样创建Line Chart并选择索引模式,配置好X轴的Date Histogram(和方案一步骤3一致)。
- 配置Y轴:
- 在Metrics区域点击
Add→ 选择Calculation。 - 在Script输入框中写入:
doc['httpCode'].value == 200 ? 1 : 0(如果httpCode是字符串,改成doc['httpCode'].value == "200" ? 1 : 0)。 - 聚合类型选择
Average,因为每个符合条件的文档贡献1,不符合的贡献0,取平均值就是占比。 - 同样设置Format为
Percent,命名为成功交易占比。
- 在Metrics区域点击
- 点击
Apply changes即可查看结果。
小提示
- 确保你的时间字段在索引模式中已经被设置为Time Field,否则Date Histogram无法正常工作。
- 如果httpCode字段的类型不确定,可以在Management → Index Patterns中查看字段类型,避免过滤条件不匹配。
内容的提问来源于stack exchange,提问作者Moish Cohen
相关产品推荐
相关产品推荐

