Skip to content

Commit

Permalink
Merge branch 'master' of github.com:yunlzheng/prometheus-book
Browse files Browse the repository at this point in the history
  • Loading branch information
砧木 committed Jan 4, 2019
2 parents 786b532 + c2fb246 commit 376bc83
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions promql/prometheus-promql-operators-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ node_memory_free_bytes_total表达式会查询出所有满足表达式条件的
node_disk_bytes_written + node_disk_bytes_read
```

那这个表达式是如何工作的呢?依次找到与左边向量元素匹配(标签完全一致)的右边向量元素进行运算,如果没找到匹配元素,则直接丢弃。同时新的时间序列将不会包含指标名称。 该表达式返回结果的示例如下所示:
那这个表达式是如何工作的呢?依次找到与左边向量元素匹配(标签完全一致)的右边向量元素进行运算,如果没找到匹配元素,则直接丢弃。同时新的时间序列将不会包含指标名称。 该表达式返回结果的示例如下所示:

```
{device="sda",instance="localhost:9100",job="node_exporter"}=>1634967552@1518146427.807 + 864551424@1518146427.807
Expand Down Expand Up @@ -123,7 +123,7 @@ http_requests_total{code="200",handler="query_range",instance="localhost:9090",j

## 匹配模式详解

向量与向量之间进行运算操作时会基于默认的匹配规则:依次找到与左边向量元素匹配(标签完全一致)的右边向量元素进行运算,如果没找到匹配元素,则直接丢弃。
向量与向量之间进行运算操作时会基于默认的匹配规则:依次找到与左边向量元素匹配(标签完全一致)的右边向量元素进行运算,如果没找到匹配元素,则直接丢弃。

接下来将介绍在PromQL中有两种典型的匹配模式:一对一(one-to-one),多对一(many-to-one)或一对多(one-to-many)。

Expand Down
8 changes: 4 additions & 4 deletions quickstart/promql_quickstart.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# 使用PromQL查询监控数据

Prometheus UI是Prometheus内置的一个可视化管理界面,通过Prometheus UI用户能够轻松的了解Prometheus当前的配置,监控任务运行状态等。 通过`Graph`面板,用户还能直接使用`PromQL`实时查询监控数据:
Prometheus UI是Prometheus内置的一个可视化管理界面,通过Prometheus UI用户能够轻松的了解Prometheus当前的配置,监控任务运行状态等。 通过`Graph`面板,用户还能直接使用`PromQL`实时查询监控数据:

![Graph Query](./static/prometheus_ui_graph_query.png)

切换到`Graph`面板,用户可以使用PromQL表达式查询特定监控指标的监控数据。如下所示,查询主机负载变化情况,可以使用关键字`node_load1`可以查询出Prometheus采集到的主机负载的样本数据,这些样本数据按照时间先后顺序展示,形成了主机负载随时间变化的趋势图表:
切换到`Graph`面板,用户可以使用PromQL表达式查询特定监控指标的监控数据。如下所示,查询主机负载变化情况,可以使用关键字`node_load1`可以查询出Prometheus采集到的主机负载的样本数据,这些样本数据按照时间先后顺序展示,形成了主机负载随时间变化的趋势图表:

![主机负载情况](./static/node_node1_graph.png)

PromQL是Prometheus自定义的一套强大的数据查询语言,除了使用监控指标作为查询关键字以为,还内置了大量的函数,帮助用户进一步对时序数据进行处理。例如使用`rate()`函数,可以计算在单位时间内样本数据的变化情况即增长率,因此通过该函数我们可以近似的通过CPU使用时间计算CPU的利用率:
PromQL是Prometheus自定义的一套强大的数据查询语言,除了使用监控指标作为查询关键字以为,还内置了大量的函数,帮助用户进一步对时序数据进行处理。例如使用`rate()`函数,可以计算在单位时间内样本数据的变化情况即增长率,因此通过该函数我们可以近似的通过CPU使用时间计算CPU的利用率:

```
rate(node_cpu[2m])
Expand All @@ -32,4 +32,4 @@ avg without(cpu) (rate(node_cpu[2m]))

![系统CPU使用率](./static/node_cpu_usage_total.png)

通过PromQL我们可以非常方便的对数据进行查询,过滤,以及聚合,计算等操作。通过这些丰富的表达书语句,监控指标不再是一个单独存在的个体,而是一个个能够表达出正式业务含义的语言。
通过PromQL我们可以非常方便的对数据进行查询,过滤,以及聚合,计算等操作。通过这些丰富的表达书语句,监控指标不再是一个单独存在的个体,而是一个个能够表达出正式业务含义的语言。
6 changes: 3 additions & 3 deletions quickstart/use-node-exporter.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

## 安装Node Exporter

在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。
在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。

从上面的描述中可以看出Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。

这里为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用[Node Exporter](https://github.com/prometheus/node_exporter)
这里为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用[Node Exporter](https://github.com/prometheus/node_exporter)

Node Exporter同样采用Golang编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。可以从[https://prometheus.io/download/](https://prometheus.io/download/)获取最新的node exporter版本的二进制包。

Expand Down Expand Up @@ -93,4 +93,4 @@ up{instance="localhost:9090",job="prometheus"} 1
up{instance="localhost:9100",job="node"} 1
```

其中“1”表示正常,反之“0”则为异常。
其中“1”表示正常,反之“0”则为异常。

0 comments on commit 376bc83

Please sign in to comment.