入门

浏览 0      扫码          2019-11-12 13:01:55     码农文档      译文原文 英文原文

公告:如果您也想加入翻译队伍,或者您有相关中文文档想要贡献给大家,请联系coderdocument@163.com ,谢谢!

本指南是一个“Hello World”风格的教程,展示了如何在一个简单的示例中安装、配置和使用Prometheus。你将下载并在本地运行Prometheus,配置它以获取自身和示例应用程序,然后使用查询、规则和图形来利用收集到的时间序列数据。

下载并运行Prometheus

下载适合你平台的最新版本的Prometheus,然后解压并运行:


   
       

在启动Prometheus之前,让我们对它进行配置。

配置Prometheus监控自己

Prometheus通过收集目标上的HTTP端点数据来收集被监控目标的数据。因为Prometheus也会以同样的方式暴露自己的数据,所以它也可以收集和监控自己的健康状况。

虽然Prometheus服务器只收集自身的数据在实践中不是很有用,但它是一个很好的示例。将以下基本的Prometheus配置保存为一个名为prometheus.yml的文件:


   
       

有关配置选项的完整规范,请参阅配置文档

启动Prometheus

要使用新创建的配置文件启动Prometheus,请切换到包含Prometheus二进制文件的目录并运行:


   
       

Prometheus应该会启动。你还应该能通过localhost:9090浏览到关于其自身的状态页面。给它几秒钟时间,让它从自己的HTTP度量端点收集关于自己的数据。

你还可以通过导航到它的指标端点来验证Prometheus是否服务于自己指标:localhost:9090/metrics

使用表达式浏览器

让我们来看看Prometheus收集的一些关于它自己的数据。要使用Prometheus的内置表达式浏览器,请导航到http://localhost:9090/graph,并在“Graph”选项卡中选择“Console”视图。

正如你可以从 localhost:9090/metrics收集指标,Prometheus导出的一个关于自身的指标名为prometheus_target_interval_length_seconds(目标抓取之间的实际时长)。继续并将其输入到表达式控制台:


   
       

这应该会返回许多不同的时间序列(以及为每个时间序列记录的最新值),它们都使用指标名称prometheus_target_interval_length_seconds,但是使用不同的标签。这些标签指定了不同的延迟百分比和目标组间隔。

如果我们只对99%的延迟感兴趣,我们可以使用如下查询来检索信息:


   
       

要计算返回的时间序列的数量,可以这样写:


   
       

有关表达式语言的更多信息,请参见表达式语言文档

使用图形界面

要图形化表达式,请导航到http://localhost:9090/graph并使用“Graph”选项卡。

例如,输入下面的表达式来绘制在抓取自身的Prometheus中创建块的每秒速率:


   
       

使用图形范围参数和其他设置进行实验。

启动一些采样目标

让我们使这个更有趣,并启动一些采样目标供Prometheus抓取。

Go客户端库包含一个示例,该示例导出具有不同延迟分布的三个服务的虚构RPC延迟。

确保安装了Go编译器,并设置了一个工作的Go构建环境(使用正确的GOPATH)。

下载Prometheus的Go客户端库,运行以下三个示例进程:


   
       

你现在应该有示例目标监听于:http://localhost:8080/metrics、http://localhost:8081/metrics和http://localhost:8082/metrics。

配置Prometheus监控采样目标

现在,我们将配置Prometheus抓取这些新的目标。让我们将所有三个端点分组到一个称为example-random的作业中。但是,假设前两个端点是生产目标,而第三个端点代表一个金丝雀实例。为了在Prometheus建模,我们可以向单个作业添加多个端点组,为每组目标添加额外的标签。在本例中,我们将把group="production"标签添加到第一组目标中,同时将group="canary"添加到第二组目标中。


   
       

转至表达式浏览器,验证Prometheus现在有关于这些示例端点暴露的时间序列的信息,比如rpc_durations_seconds指标。

配置将抓取的数据聚合到新的时间序列的规则

虽然在我们的示例中没有问题,但是在计算临时查询时,在数千个时间序列上聚合的查询可能会变慢。为了提高效率,Prometheus允许你通过配置的记录规则将表达式预先记录到全新的持久化时间序列中。假设我们对记录示例RPC (rpc_durations_seconds_count)在所有实例(但保留作业和服务维度)上的平均每秒速率(在5分钟的窗口内测量)很感兴趣。我们可以这样写:


   
       

尝试图形化该表达式。

要将这个表达式产生的时间序列记录到一个名为job_service:rpc_durations_seconds_count:avg_rate5m的新指标中,请使用以下记录规则创建一个文件,并将其保存为prometheus.rules.yml


   
       

要让Prometheus采用这个新规则,需要在你的 prometheus.yml中添加一个rule_files语句。配置现在应该是这样的:


   
       

使用新的配置重新启动Prometheus,并通过查询表达式浏览器或对其图形化来验证新的时间序列是否可用,该时间序列的指标名称为job_service:rpc_durations_seconds_count:avg_rate5m

返回顶部