Kibana 可视化类型:折线图、柱状图、饼图、热力图、地图
数据可视化是将数字变成洞察的过程。Kibana 提供了丰富的可视化类型,让你能用最合适的方式展示数据。
1. 可视化类型概览
┌─────────────────────────────────────────────────────────────┐
│ Kibana 可视化类型 │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Line │ │ Area │ │ Bar │ │ Pie │ │
│ │ 折线图 │ │ 面积图 │ │ 柱状图 │ │ 饼图 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Heat │ │ Gauge │ │ Metric │ │ Map │ │
│ │ 热力图 │ │ 仪表盘 │ │ 指标卡 │ │ 地图 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Table │ │ Goal │ │ Timelion │ │
│ │ 表格 │ │ 目标图 │ │ 时序分析 │ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘2. 折线图(Line)
2.1 适用场景
- 趋势分析:销售额随时间变化
- 对比分析:多个指标的时间对比
- 异常检测:发现数据中的异常波动
2.2 配置示例
配置步骤:
1. 选择索引模式
└─→ sales-*
2. Y 轴(Metrics)
└─→ Sum of amount(销售金额)
3. X 轴(Buckets)
└─→ Date Histogram by @timestamp
└─→ Interval: Daily
4. 可选:添加分组
└─→ Split Series → Terms → category2.3 图表样式
Line 图表样式选项:
┌─────────────────────────────────────────────────────────────┐
│ Options │
│ │
│ Style │
│ ├─○ Smooth Line(平滑曲线) │
│ ├─○ Stepped(阶梯图) │
│ └─○ Linear(直线) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ☑ Show Dots(显示数据点) │ │
│ │ ☑ Show Value(显示数值标签) │ │
│ │ Line Width: ━━━ │ │
│ │ Point Size: ●●○ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Axis │
│ ├─ Position: Left / Right │
│ └─ Scale: Linear / Log │
│ │
└─────────────────────────────────────────────────────────────┘2.4 多线图
多条折线的配置:
Y 轴:
├─ Metrics 1: Sum of revenue
├─ Metrics 2: Sum of cost
└─ Metrics 3: Average of margin
效果:三条线在同一图表中展示3. 面积图(Area)
3.1 适用场景
- 累积量展示:总销售额的累积趋势
- 占比变化:各部分占总体的比例变化
- 区域分析:数据的集中区域
3.2 面积图变体
面积图样式:
1. Stacked Area(堆叠面积图)
└─→ 各部分堆叠显示,适合展示累积量
2. Unstacked Area(不堆叠面积图)
└─→ 各部分独立显示,适合对比分析
3. Percentage Area(百分比面积图)
└─→ 各部分占比,恒定为 100%3.3 配置示例
配置:
Y 轴:Sum of orders
X 轴:Date Histogram by @timestamp
分组:Split Area → Terms → region
效果:不同地区的订单累积趋势4. 柱状图(Bar)
4.1 适用场景
- 分类对比:不同产品的销量对比
- 排名分析:Top 10 服务
- 分布展示:各区间的数量分布
4.2 柱状图类型
柱状图类型:
1. Vertical Bar(垂直柱状图)
└─→ X 轴为分类,Y 轴为数值
2. Horizontal Bar(水平柱状图)
└─→ Y 轴为分类,X 轴为数值
└─→ 适合展示排名(Top 10)
3. Stacked Bar(堆叠柱状图)
└─→ 展示部分与整体的关系4.3 配置示例
配置(水平柱状图):
Y 轴(Buckets):
├─ Split Rows → Terms → service
└─ Order: Descending, Size: 10
X 轴(Metrics):
└─ Count(请求数量)
效果:Top 10 服务排名5. 饼图(Pie)
5.1 适用场景
- 占比分析:各分类占总体的比例
- 简单对比:少量分类的对比
- 快速洞察:一眼看出最大/最小的分类
5.2 配置示例
配置:
1. Slice / Bucket:
└─→ Terms → category
└─→ Order: Descending
└─→ Size: 5
2. Options:
├─ Donut(环形图)☑
└─ Show Labels(显示标签)☑
效果:显示前 5 大分类的占比5.3 多层饼图
配置:
1. Parent Bucket:
└─→ Terms → category
2. Child Bucket:
└─→ Terms → product_name
效果:先按分类分大块,再按产品分小块6. 热力图(Heat Map)
6.1 适用场景
- 密度分析:数据在两个维度上的分布密度
- 时间分析:某时段某类别的活跃程度
- 相关性分析:两个指标的相关性
6.2 配置示例
配置:
X 轴:Buckets → Terms → hour_of_day
Y 轴:Buckets → Terms → day_of_week
Value:Count
效果:展示一周各时段的访问密度
颜色越深表示访问量越大6.3 颜色配置
颜色方案:
1. 单一颜色渐变
└─→ 白色 → 红色(由浅到深)
2. 对比色渐变
└─→ 绿色 → 黄色 → 红色
3. 自定义
└─→ 设置任意颜色序列
调整:Color Schema 选择7. 仪表盘(Gauge)
7.1 适用场景
- 实时监控:当前状态一目了然
- KPI 展示:关键指标达标情况
- 阈值告警:超出范围的视觉警告
7.2 配置示例
配置:
1. Metrics:
└─→ Average of response_time
2. Options:
├─ Gauge Type: Arc(弧形) / Vertical(垂直)
├─ Color Range:
│ ├─ 0 - 1000ms → 绿色(正常)
│ ├─ 1000 - 3000ms → 黄色(警告)
│ └─ 3000+ ms → 红色(异常)
└─ Auto Extend Color Range ☑7.3 仪表盘效果
效果示意:
╭──────────╮
╱ 250 ╲ ← 当前值
╱ ms ╲
╱──────────────╲
│ ▓▓▓▓▓▓▓▓░░░░░ │
│ 0 500 1000│ ← 刻度
绿色:正常 | 黄色:警告 | 红色:异常8. 指标卡(Metric)
8.1 适用场景
- KPI 展示:一目了然的数字
- Dashboard 装饰:提供关键数据点
- 趋势指示:与过去对比
8.2 配置示例
配置:
1. Metrics:
└─→ Count / Average / Sum / ...
2. Options:
├─ Label: "Total Revenue"
├─ Format: Currency (¥)
├─ Decimals: 0
└─ Show Trend: ☑
└─ Compare to: 7 days ago8.3 样式模板
指标卡样式选项:
1. 简洁数字
└─→ 123,456
2. 数值 + 标签
└─→ 123,456 │ 总订单
3. 数值 + 趋势
└─→ 123,456 ↑ 15%
4. 大数字 + 背景色
└─→ 突出显示关键指标9. 地图(Maps)
9.1 支持的地图类型
| 类型 | 说明 | 适用场景 |
|---|---|---|
| Choropleth | 区域着色图 | 国家/地区统计 |
| Point | 点位图 | 事件位置标记 |
| Heatmap | 热力图 | 密度分布 |
| Line | 轨迹图 | 路径/路线 |
9.2 配置示例
配置(Choropleth 地图):
1. 地图服务:
└─→ World Countries(世界国家)
2. Join Field:
└─→ geoip.country_code3 → ISO 3166-1 alpha-3
3. 聚合:
└─→ Sum of amount
效果:按国家显示销售额
颜色深浅代表销售额大小10. 数据表格(Data Table)
10.1 适用场景
- 明细展示:需要看具体数据
- 排序分析:按多个维度排序
- 导出数据:生成数据报表
10.2 配置示例
配置:
1. Buckets:
└─→ Split Rows → Terms → service
└─→ Sort: Descending by Count
└─→ Size: 10
2. Metrics:
└─→ Count
└─→ Average of response_time
└─→ Max of bytes
效果:
┌────────────┬──────────┬──────────┬──────────┐
│ Service │ Requests │ Avg RT │ Max Size │
├────────────┼──────────┼──────────┼──────────┤
│ user-svc │ 123,456 │ 250ms │ 50KB │
│ order-svc │ 98,765 │ 350ms │ 100KB │
│ ... │ │ │ │
└────────────┴──────────┴──────────┴──────────┘11. 组合可视化
11.1 Vega 可视化
Vega 是一种声明式语法,可以创建 Kibana 内置不支持的自定义可视化:
java
// Vega 示例:自定义散点图
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"url": {
"%context%": true,
"index": "sales-*",
"body": {
"aggs": {
"points": {
"terms": {
"field": "product_id",
"size": 1000
},
"aggs": {
"x": { "avg": { "field": "price" } },
"y": { "avg": { "field": "quantity" } }
}
}
}
}
}
},
"mark": "point",
"encoding": {
"x": { "field": "x", "type": "quantitative" },
"y": { "field": "y", "type": "quantitative" }
}
}12. 选择合适可视化类型的指南
选择建议:
需要展示趋势?
├─→ 折线图 ✓
└─→ 面积图 ✓
需要对比分类?
├─→ 柱状图 ✓
├─→ 水平柱状图 ✓(排名)
└─→ 饼图 ✓(少量分类)
需要展示占比?
├─→ 饼图 ✓
├─→ 堆叠面积图 ✓
└─→ 堆叠柱状图 ✓
需要展示分布?
├─→ 热力图 ✓
└─→ 直方图 ✓
需要单一数值?
├─→ 指标卡 ✓
└─→ 仪表盘 ✓
需要地理位置?
└─→ 地图 ✓总结
Kibana 可视化类型丰富,选择原则:
- 趋势分析:折线图、面积图
- 对比分析:柱状图、饼图
- 分布分析:热力图、直方图
- KPI 展示:指标卡、仪表盘
- 地理分析:地图
留给你的问题:
假设你要创建一个网站监控仪表板,需要展示:
- 当前在线用户数(单一数值)
- 过去 24 小时的请求趋势
- 各服务的请求占比
- 各地区的访问分布
- 响应时间的分布
你会分别选择哪些可视化类型?为什么?
