一、安装

prometheus

1
2
3
4
5
6
wget https://github.com/prometheus/prometheus/releases/download/v2.7.2/prometheus-2.7.2.linux-amd64.tar.gz
tar -xvf prometheus-2.7.2.linux-amd64.tar.gz
cd prometheus-2.7.2.linux-amd64
./prometheus
# http://127.0.0.1:9090
# http://127.0.0.1:9090/metrics

node_exporter

1
2
# 监控物理设备
./node_exporter

blackbox_exporter

1
2
# 监控网络
./blackbox_exporter --web.listen-address=:9115 --config.file=blackbox.yml

alertmanager

二、概念

instance

  • 一个单独 scrape 的目标, 一般对应于一个进程。

jobs

  • 一组同种类型的 instances(主要用于保证可扩展性和可靠性)

Notation

  • Given a metric name and a set of labels, time series are frequently identified using this notation.
  • 通常有指标名称与一组label组成:<metric name>{<label name>=<label value>, …}

Sample

  • A sample is a single value at a point in time in a time series.In Prometheus, each sample consists of a float64 value and a millisecond-precision timestamp.
  • 通常包含一个64位的浮点值和一个毫秒级的时间戳

PromQL

1
2
3
prometheus_target_interval_length_seconds
count(prometheus_target_interval_length_seconds)
rate(prometheus_tsdb_head_chunks_created_total[1m])

数据类型

  • Counter

Counter用于累计值,例如记录请求次数、任务完成数、错误发生次数。一直增加,不会减少。重启进程后,会被重置。例如:http_response_total{method=”GET”,endpoint=”/api/tracks”} 100,10秒后抓取http_response_total{method=”GET”,endpoint=”/api/tracks”} 100。

  • Gauge

Gauge常规数值,例如 温度变化、内存使用变化。可变大,可变小。重启进程后,会被重置。例如: memory_usage_bytes{host=”master-01″} 100 < 抓取值、memory_usage_bytes{host=”master-01″} 30、memory_usage_bytes{host=”master-01″} 50、memory_usage_bytes{host=”master-01″} 80 < 抓取值。

  • Histogram

Histogram(直方图)可以理解为柱状图的意思,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。它特别之处是可以对记录的内容进行分组,提供count和sum全部值的功能。例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值。

  • Summary

Summary和Histogram十分相似,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。同样提供 count 和 sum 全部值的功能。例如:count=7次,sum=7次的值求值。它提供一个quantiles的功能,可以按%比划分跟踪的结果。例如:quantile取值0.95,表示取采样值里面的95%数据。

三、部署

relabel

Service Discovery

Grafana

1
docker run -d -p 3000:3000 --name=grafana -v /opt/grafana-storage:/var/lib/grafana grafana/grafana

四、参考