Prometheus 入门

Prometheus 入门

什么是 Prometheus?

Prometheus 是一个系统监控和告警系统。它于 2012 年由 SoundCloud 开源,是继 Kubernetes 之后第二个加入并毕业于云原生计算基金会(Cloud Native Computing Foundation)的项目。Prometheus 将所有指标数据存储为时间序列,即指标信息与其记录的时间戳一起存储,可选的键值对(称为标签)也可以与指标一起存储。

什么是指标?为什么它很重要?

用通俗的话来说,指标就是一种测量标准。我们想测量什么取决于应用程序。对于 Web 服务器,可以是请求时间;对于数据库,可以是 CPU 使用率或活动连接数等。

指标在理解应用程序为何以特定方式工作方面起着重要作用。如果您运行一个 Web 应用程序,有人对您说应用程序运行缓慢,您将需要一些信息来找出应用程序发生了什么。例如,当请求数量很高时,应用程序可能会变慢。如果您拥有请求计数指标,您可以找出原因并增加服务器数量来处理繁重的负载。每当您为应用程序定义指标时,都必须戴上侦探帽,并问自己这个问题:**如果我的应用程序出现任何问题,哪些信息对我来说很重要来调试?**

Prometheus 的基本架构

Prometheus 设置的基本组件包括:

Prometheus 服务器(负责抓取和存储指标数据的服务器)。

要抓取的 Target,例如一个公开其指标的已收集指标的应用程序,或者一个公开其他应用程序指标的 Exporter。

Alertmanager(根据预设规则触发告警)。

(注意:除此以外,Prometheus 还有 push_gateway,此处未涵盖)。

让我们以 Web 服务器为例,我们想提取 Web 服务器处理的 API 调用次数这一特定指标。因此,我们使用 Prometheus 客户端库添加一些收集代码,并公开指标信息。现在我们的 Web 服务器公开了它的指标,我们可以配置 Prometheus 来抓取它。现在 Prometheus 已配置为以特定时间间隔(例如,每分钟)从监听在 xyz IP 地址 7500 端口的 Web 服务器上获取指标。

在 11:00:00,当我公开服务器供使用时,应用程序计算请求计数并将其公开。Prometheus 同时抓取计数指标并将值存储为 0。

到 11:01:00,已处理一个请求。服务器中的收集逻辑将计数增加到 1。当 Prometheus 抓取指标时,计数的值现在是 1。

到 11:02:00,又处理了两个请求,请求计数为 1+2 = 3。类似地,指标被抓取并存储。

用户可以控制 Prometheus 抓取指标的频率。

时间戳请求计数(指标)11:00:00011:01:00111:02:003

(注意:此表仅用于理解目的。Prometheus 不会以这种确切的格式存储值)

Prometheus 还有一个 API,允许查询通过抓取存储的指标。此 API 用于查询指标、在其上创建仪表板/图表等。PromQL 用于查询这些指标。

在请求计数指标上创建的简单折线图将如下所示。

您可以抓取多个有用的指标来了解应用程序中发生的情况,并在它们上创建多个图表。将图表分组到一个仪表板中,并使用它来获得应用程序的概览。

告诉我如何操作

让我们动手实践,安装 Prometheus。Prometheus 是用 Go 编写的,您只需要为你操作系统编译好的二进制文件。从 这里 下载对应你操作系统的二进制文件,并将二进制文件添加到你的 PATH 中。

Prometheus 会暴露自己的指标,这些指标可以被自身或其他 Prometheus 服务器消费。

现在我们已经安装了 Prometheus,下一步是运行它。我们只需要二进制文件和一个配置文件。Prometheus 使用 yaml 文件进行配置。

global:

scrape_interval: 15s

scrape_configs:

- job_name: prometheus

static_configs:

- targets: ["localhost:9090"]

在上面的配置文件中,我们提到了 `scrape_interval`,即我们希望 Prometheus 多久抓取一次指标。我们添加了 `scrape_configs`,它有一个名称和一个要从中抓取指标的 target。Prometheus 默认监听在 9090 端口。所以将其添加到 target 中。

prometheus --config.file=prometheus.yml

现在我们已经成功运行了 Prometheus 并每 15 秒抓取一次它自己的指标。Prometheus 有可用的标准 Exporter 来导出指标。接下来我们将运行一个 node exporter,它是机器指标的 Exporter,并使用 Prometheus 抓取它。(下载节点指标 Exporter。)

在终端中运行 node exporter。

./node_exporter

接下来,将 node exporter 添加到 scrape_configs 列表中。

global:

scrape_interval: 15s

scrape_configs:

- job_name: prometheus

static_configs:

- targets: ["localhost:9090"]

- job_name: node_exporter

static_configs:

- targets: ["localhost:9100"]

在本教程中,我们讨论了什么是指标以及为什么它们很重要,Prometheus 的基本架构以及如何运行 Prometheus。

相关数据

怎么查看应用软件使用了多长时间了记录
beat365官网备用

怎么查看应用软件使用了多长时间了记录

⌛ 12-28 👁️ 9839
在火影忍者中哪位a忍的实力最强
det365官网登录

在火影忍者中哪位a忍的实力最强

⌛ 10-13 👁️ 782
祚的解释
beat365官网备用

祚的解释

⌛ 07-14 👁️ 3541
大话西游2多少级转生
beat365官网备用

大话西游2多少级转生

⌛ 11-12 👁️ 7120
如何正确使用开塞露?
365bet足球网站

如何正确使用开塞露?

⌛ 06-28 👁️ 8858