Skip to content

Commit 1092f84

Browse files
author
wangyazhou
committed
添加grafana报警规则
1 parent 3bd3e79 commit 1092f84

File tree

1 file changed

+188
-2
lines changed

1 file changed

+188
-2
lines changed

k8s/grafana.md

Lines changed: 188 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,7 @@ Prometheus 数据源支持两种在**查询**字段中使用的变量语法:
579579
## Dashboards
580580

581581
### 添加标签
582+
标签是整理仪表板的绝佳方式,尤其是在仪表板数量不断增长的情况下。
582583
1. 在界面上可以点击 **设置** 然后 在tags里面添加
583584
2. 在json中可以在根目录的tags对象中添加
584585
```json
@@ -587,10 +588,195 @@ Prometheus 数据源支持两种在**查询**字段中使用的变量语法:
587588
"Prometheus"
588589
],
589590
```
591+
tags可以用于在主仪表盘界面过滤仪表盘,和k8s里面的label差不多,因此最好每个一类仪表盘都有自己的独特的tag
590592

591-
### 添加变量
592593

593-
变量让您能够创建更具交互性和动态性的仪表板。
594+
### 变量
594595

596+
变量让您能够创建更具交互性和动态性的仪表板。
595597
在设置界面变量页面可以查看已有变量和添加新变量。
598+
变量是值的占位符。您可以在指标查询和面板标题中使用变量。因此,当您使用仪表板顶部的下拉菜单更改值时,面板的指标查询将会更改以反映新值。
599+
对于希望允许 Grafana 查看器调整可视化效果但不授予其完全编辑权限的管理员来说,变量非常有用。Grafana 查看器可以使用变量。
600+
查询变量可让您编写数据源查询,该查询可返回指标名称、标签值或键的列表。例如,查询变量可能返回服务器名称、传感器 ID 或数据中心的列表。变量值会随着数据源查询动态获取选项而变化。
601+
602+
603+
*变量使用*
604+
首先定义个变量,变量可以是根据查询语句查询出来的,然后变量的值是可以在面板直接选择的,一旦选择其他表格里面的查询语句直接可以根据需要指定变量的名字,比如定义的有Node变量,那么查询的时候直接就可以指定表格到指定的Node,当更改变量指向的Node时,对应的表格数据也会跟着改变。
605+
```bash
606+
1 - avg by(instance)(irate(node_cpu_seconds_total{origin_prometheus="$origin_prometheus", mode="idle", instance=~"^$Node$"}[5m]))
607+
```
608+
609+
#### 全局变量
610+
- `__dashboard`
611+
此变量代表当前仪表盘的名称
612+
613+
- `__from` 和 `__to`
614+
615+
Grafana 有两个内置的时间范围变量: `$__from` 和 `$__to` 。它们目前默认总是以纪元毫秒为单位进行插值,但您可以控制日期格式。
616+
617+
Expand table  展开表格
618+
619+
| Syntax  句法 | Example result | Description |
620+
| ------------------------ | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
621+
| `${__from}` | 1594671549254 | Unix millisecond epoch  Unix |
622+
| `${__from:date}` | 2020-07-13T20:19:09.254Z  2020-07-13T20:19:09.254Z | No arguments, defaults to ISO 8601/RFC 3339 |
623+
| `${__from:date:iso}` | 2020-07-13T20:19:09.254Z  2020-07-13T20:19:09.254Z | ISO 8601/RFC 3339 |
624+
| `${__from:date:seconds}` | 1594671549 | Unix seconds epoch  Unix |
625+
| `${__from:date:YYYY-MM}` | 2020-07 | Any custom [date format](https://momentjs.com/docs/#/displaying/) that does not include the `:` character. Uses browser time. Use `:date` or `:date:iso` for UTC |
626+
627+
上述语法也适用于 `${__to}` 。
628+
629+
- `__interval`
630+
Grafana 会自动计算查询中按时间分组的时间间隔。当数据点数量超过图表所能显示的数量时,按较大时间间隔分组可以提高查询效率。例如,查看 3 个月的数据时,按 1 天分组比按 10 秒分组更高效。图表看起来相同,查询速度也更快。 `$__interval` 是根据时间范围和图表宽度(像素数)计算得出的。
631+
632+
- `__interval_ms`
633+
以毫秒为单位的interval变量
634+
635+
- `__name`
636+
此变量仅在 **Singlestat** 面板中可用,可在“选项”选项卡上的前缀或后缀字段中使用。该变量将被替换为系列名称或别名。
637+
638+
- `__org`
639+
该变量是当前组织的 ID。 `${__org.name}` 是当前组织的名称
640+
- `__user`
641+
`${__user.id}` 是当前用户的 ID。 `${__user.login}` 是当前用户的登录句柄。 `${__user.email}` 是当前用户的电子邮件。
642+
643+
- `__range`
644+
目前仅支持 Prometheus 和 Loki 数据源。此变量表示当前仪表板的范围。它通过 `to - from` 计算得出。它以毫秒和秒为单位,分别称为 `$__range_ms` 和 `$__range_s` 。
645+
646+
- `__rate_interval`
647+
目前仅支持 Prometheus 数据源。 `$__rate_interval` 变量用于 rate 函数。请参阅 [Prometheus 查询变量](https://grafana.com/docs/grafana/latest/datasources/prometheus/template-variables/#use-**rate_interval)以了解详细信息。
648+
649+
- `__rate_interval_ms`
650+
`$__rate_interval` 为 `20m` ,则 `$__rate_interval_ms` 为 `1200000` 。
651+
652+
- `timeFilter` 或 `__timeFilter`
653+
`$timeFilter` 变量以表达式形式返回当前选定的时间范围。例如,时间范围间隔 `Last 7 days` 的表达式为 `time > now() - 7d` 。
654+
655+
- `__timezone`
656+
`$__timezone` 变量返回当前选定的时区,可以是 `utc` 或 IANA 时区数据库的条目(例如 `America/New_York` )。
657+
658+
[仪表盘变量](https://grafana.com/docs/grafana/latest/dashboards/variables/)
659+
660+
#### 链式变量
661+
_链式变量_ (也称为_链接变量_或_嵌套变量_ )是指在其变量查询中包含一个或多个其他变量的查询变量。
662+
663+
#### 变量语法
664+
面板标题和指标查询可以使用两种不同的语法引用变量:
665+
`$varname` 这种语法很容易阅读,但它不允许你在单词中间使用变量。 **例如:** apps.frontend.$server.requests.count
666+
`${var_name}` 当您想在表达式中间插入变量时使用此语法。
667+
`${var_name:<format>}` 此格式可让您更好地控制 Grafana 插值的方式。有关所有格式类型的更多详细信息,请参阅[高级变量格式选项](https://grafana.com/docs/grafana/latest/dashboards/variables/variable-syntax/#advanced-variable-format-options) 。
668+
`[[varname]]` 请勿使用。旧语法已弃用,将在后续版本中删除。
669+
在将查询发送到数据源之前,查询会_进行插值_ ,这意味着变量会被替换为其当前值。在插值过程中,变量值可能会_进行转义_ ,以符合查询语言的语法及其使用位置。
670+
671+
#### 高级变量格式选项
672+
变量插值的格式取决于数据源,但在某些情况下您可能需要更改默认格式
673+
674+
- General syntax  常规语法
675+
语法: `${var_name:option}`
676+
677+
- CSV
678+
将具有多个值的变量格式化为逗号分隔的字符串。
679+
```bash
680+
servers = ['test1', 'test2']
681+
String to interpolate: '${servers:csv}'
682+
Interpolation result: 'test1,test2'
683+
```
684+
- Distributed - OpenTSDB  分布式——OpenTSDB
685+
为 OpenTSDB 以自定义格式格式化具有多个值的变量。
686+
```bash
687+
servers = ['test1', 'test2']
688+
String to interpolate: '${servers:distributed}'
689+
Interpolation result: 'test1,servers=test2'
690+
```
691+
- Doublequote
692+
将单值和多值变量格式化为逗号分隔的字符串,用 `\"` 转义每个值中的 `"` ,并用 `"` 引用每个值。
693+
```bash
694+
servers = ['test1', 'test2']
695+
String to interpolate: '${servers:doublequote}'
696+
Interpolation result: '"test1","test2"'
697+
```
698+
- Glob - Graphite 
699+
将具有多个值的变量格式化为一个 glob(用于 Graphite 查询)。
700+
```bash
701+
servers = ['test1', 'test2']
702+
String to interpolate: '${servers:glob}'
703+
Interpolation result: '{test1,test2}'
704+
```
705+
- JSON
706+
将具有多个值的变量格式化为逗号分隔的字符串
707+
```bash
708+
servers = ['test1', 'test2']
709+
String to interpolate: '${servers:json}'
710+
Interpolation result: '["test1", "test2"]'
711+
```
712+
- Percentencode
713+
格式化单值和多值变量以用于 URL 参数
714+
```bash
715+
servers = ['foo()bar BAZ', 'test2']
716+
String to interpolate: '${servers:percentencode}'
717+
Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'
718+
```
719+
- Pipe
720+
将具有多个值的变量格式化为以竖线分隔的字符串。
721+
```bash
722+
servers = ['test1.', 'test2']
723+
String to interpolate: '${servers:pipe}'
724+
Interpolation result: 'test1.|test2'
725+
```
726+
- Raw
727+
不对变量进行任何操作
728+
例如,在本例中,有一个包含 Prometheus 数据源和多值变量的仪表板。Grafana 通常会按如下方式转换变量值以适应 Prometheus:
729+
```bash
730+
servers = ['test1.', 'test2']
731+
String to interpolate: '${servers}'
732+
Interpolation result: '(test1 | test2)'
733+
```
734+
使用原始格式,返回的值不带该格式:
735+
```bash
736+
servers = ['test1.', 'test2']
737+
String to interpolate: '${servers:raw}'
738+
Interpolation result: 'test1,test2'
739+
```
740+
- Regex
741+
将具有多个值的变量格式化为正则表达式字符串。
742+
```bash
743+
servers = ['test1.', 'test2']
744+
String to interpolate: '${servers:regex}'
745+
Interpolation result: '(test1\.|test2)'
746+
```
747+
- Singlequote
748+
将单值和多值变量格式化为逗号分隔的字符串,用 `\'` 转义每个值中的 `'` ,并用 `'` 引用每个值。
749+
```bash
750+
servers = ['test1', 'test2']
751+
String to interpolate: '${servers:singlequote}'
752+
Interpolation result: "'test1','test2'"
753+
```
754+
755+
- Sqlstring
756+
将单值和多值变量格式化为逗号分隔的字符串,用 `'` `''` 转义每个值中的 ' ,并用 `'` 引用每个值。
757+
```bash
758+
servers = ["test'1", "test2"]
759+
String to interpolate: '${servers:sqlstring}'
760+
Interpolation result: "'test''1','test2'"
761+
```
762+
763+
- Text
764+
将单值变量和多值变量格式化为其文本表示形式。对于单值变量,它将仅返回文本表示形式。对于多值变量,它将返回文本表示形式加上 `+` 。
765+
```bash
766+
servers = ["test1", "test2"]
767+
String to interpolate: '${servers:text}'
768+
Interpolation result: "test1 + test2"
769+
```
770+
- Query parameters
771+
将单值变量和多值变量格式化为查询参数表示形式。例如: `var-foo=value1&var-foo=value2`
772+
```bash
773+
servers = ["test1", "test2"]
774+
String to interpolate: '${servers:queryparam}'
775+
Interpolation result: "var-servers=test1&var-servers=test2"
776+
```
777+
778+
### playlist
779+
grafana支持播放列表,添加之后可以在大屏或者其他设备上全屏显示监控内容
780+
596781

782+
## Panels and visualizations

0 commit comments

Comments
 (0)