Prometheus 入门 (2)

在Prometheus术语中,你可以scrape(刮擦)的端点称为 实例,通常对应于单个进程。一组同种类型的 instances(主要用于保证可扩展性和可靠性),例如:具有四个复制instances(实例)的API服务器job作业:

job: api-server

instance 1: 1.2.3.4:5670

instance 2: 1.2.3.4:5671

instance 3: 5.6.7.8:5670

instance 4: 5.6.7.8:5671

当Prometheus scrape(刮擦)目标时,它会自动在scrape的时间序列上附加一些标签,用来识别scrape的目标。

job:目标所属的已配置job名称。

instance::已刮擦的目标URL 的一部分。

对于每次实例 scrape(刮取,Prometheus都会在以下时间序列中存储样本:

up{job="<job-name>", instance="<instance-id>"}:1如果实例是健康的,即可达,或者0刮擦失败。

scrape_duration_seconds{job="<job-name>", instance="<instance-id>"}:刮擦持续时间。

scrape_samples_post_metric_relabeling{job="<job-name>", instance="<instance-id>"}:应用度量标准重新标记后剩余的样本数。

scrape_samples_scraped{job="<job-name>", instance="<instance-id>"}:目标暴露的样本数。

scrape_series_added{job="<job-name>", instance="<instance-id>"}:该刮擦中新系列的大致数量。v2.10中的新功能。

up时间序列对于实例可用性监视非常有用。

安装和配置 安装

你可以在官网 https://prometheus.io/download/ 下载 安装包,解压后使用。为了方便,我使用docker 镜像的方式 运行Prometheus。

docker run --name prometheus -d -p 9090:9090 prom/prometheus

浏览器输入:9090 ,访问 Prometheus 的 Web UI:

Prometheus 入门

点击菜单栏 “Status” 下的 Targets ,界面如下:

Prometheus 入门

可以看大Prometheus 自身 metrics 处于UP状态 ,说明 安装成功。

配置

Prometheus 的配置文件 prometheus.yml 内容如下:

# 全局设置,可以被覆盖 global: scrape_interval: 15s evaluation_interval: 15s rule_files: # - "first.rules" # - "second.rules" scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090']

该global块控制 Prometheus 的全局配置。我们有两种选择。第一个,scrape_interval控制Prometheus 刮擦目标的频率。你可以为单个目标覆盖此值。在这种情况下,全局设置是每15秒刮一次。该evaluation_interval选项控制普罗米修斯评估规则的频率。Prometheus 使用规则创建新的时间序列并生成警报。

该rule_files块指定我们希望 Prometheus 加载的任何规则的位置。现在我们没有规则。

最后一个块scrape_configs控制 Prometheus 监视的资源。由于 Prometheus 还将自己的数据公开为HTTP端点,因此它可以抓取并监控自身的健康状况。在默认配置中有一个名为 prometheus 的job,它抓取 prometheus 服务器 公开的时间序列数据。该作业包含一个静态配置的目标,即端口9090上的本地主机。返回的时间序列数据将详细说明Prometheus服务器的状态和性能。

实验 Prometheus HTTP 度量模拟器

为了演示 Prometheus 的简单使用,这里运行一个 Prometheus HTTP 度量模拟器。模拟一个简单的HTTP微服务,生成Prometheus Metrics,通过 docker 运行。

docker run -p 8080:8080 pierrevincent/prom-http-simulator:0.1

它在/metrics端点下公开以下Prometheus指标:

http_requests_total:请求计数器,标签endpoint和status

http_request_duration_milliseconds:请求延迟直方图

可以开启流量高峰模式,更改流量高峰模式可以通过以下方式完成:

# ON curl -X POST :8080/spike/on # OFF curl -X POST :8080/spike/off # RANDOM curl -X POST :8080/spike/random

错误率默认为1%。它可以更改为0到100之间的数字:

# 例如将错误率设置为50% curl -H 'Content-Type: application/json' -X PUT -d '{"error_rate": 50}' :8080/error_rate 修改Prometheus配置

需要将 HTTP 度量模拟器 的 metrics端点 配置到 Prometheus的配置文件 prometheus.yml 中。

创建一个 prometheus.yml 文件 内容如下:

global: scrape_interval: 5s evaluation_interval: 5s scrape_timeout: 5s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'http-simulator' metrics_path: /metrics static_configs: - targets: ['172.16.1.232:8080']

通过docker up 命令替换 容器中的配置文件:

docker cp prometheus.yml prometheus:/etc/prometheus/

重启容器:

docker restart prometheus

访问 :9090/targets ,发现已经出现了 target “http-simulator” ,并且为UP状态。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywjgf.html