## Grafana Cheatsheet
### 常用术语
- **Dashboard**:仪表盘,包含多个Panel
- **Panel**:单个图表或指标显示单元
- **Datasource**:数据源,如Prometheus, MySQL, InfluxDB等
- **Alert**:告警,监控指标触发时发送通知
- **Query**:查询语句,获取数据源数据
### 基本操作
| 操作 | 方法 |
| --- | --- |
| 新建Dashboard | `Dashboards -> New Dashboard` |
| 添加Panel | `Add Panel` |
| 配置Panel | 选择Panel -> `Edit` |
| 保存Dashboard | 点击顶部 `Save` |
| 导出Dashboard | `Share` -> `Export` |
### 📌 Functions 分类及含义
#### ① Sorting(排序类函数)
用于对数据系列进行排序,例如:
- **sortByMaxima**:按数据点的最大值排序。
- **sortByMinima**:按数据点的最小值排序。
- **sortByName**:按指标名称排序。
---
#### ② Filter Data(数据过滤函数)
用于过滤数据,例如:
- **removeAboveValue**:移除大于特定值的数据。
- **removeBelowValue**:移除小于特定值的数据。
- **limit**:限制返回的数据系列数量。
---
#### ③ Alias(别名函数,截图所示)
用于对指标设置易读的别名:
- **alias**:直接给指标起一个固定的别名。
- **aliasByMetric**:以指标(Metric)的名称作为别名。
- **aliasByNode**:根据指标名称节点位置作为别名(节点用点号 `.` 分割)。
- **aliasByTags**:根据指标附带的标签作为别名(适用于使用标签的指标)。
- **aliasSub**:根据正则表达式替换指标名称,灵活设置别名。
### 常用Panel类型
- **Time Series**: 时间序列图
- **Bar chart**: 柱状图
- **Pie chart**: 饼图
- **Stat**: 单值指标
- **Gauge**: 仪表盘
- **Table**: 表格
- **Heatmap**: 热力图
### 查询语言
- **PromQL**(Prometheus)示例:
```Java
rate(http_requests_total[5m])
```
- **InfluxQL**(InfluxDB)示例:
```sql
SELECT mean("value") FROM "cpu_usage" WHERE time > now() - 1h GROUP BY time(10m)
```
### 单位设置
| 分类 | 含义 | 常见单位 |
| ------------- | ---- | -------------- |
| Misc | 杂项 | count, percent |
| Acceleration | 加速度 | m/s² |
| Angle | 角度 | degree, radian |
| Area | 面积 | m², km² |
| Computation | 计算性能 | FLOPS |
| Concentration | 浓度 | mg/m³ |
### Overrides使用
- **用途**: 对特定字段应用特殊格式或设置。
- **示例**:
- 指定特定字段颜色
- 调整特定字段单位
### 常用快捷键
| 快捷键 | 功能 |
|---|---|
| `E` | 编辑选中的Panel |
| `Esc` | 退出编辑模式 |
| `Ctrl+S` | 保存Dashboard |
| `F` | 面板全屏显示 |
### 告警(Alert)配置
- **设置步骤**:选择Panel -> `Alert`标签页 -> 配置触发条件
- **通知渠道**:Email, Slack, Webhook等
### 最佳实践
- Panel布局尽量简单清晰
- 使用合理的单位与标题
- 关键指标设置告警及时反馈