博客/工程

从这三个简单的项目开始普罗米修斯

2021年1月8日7分钟

你可能听说过普罗米修斯,这个领先的开源项目专注于度量和警报,以及它如何改变了世界进行监控和可观察性的方式。但如果你是技术新手,你该如何涉足并开始呢?

不久前我自己也处于这种境地。我是一个非常动手型的学习者,通常当我想探索新技术时,我会从“hello world”应用程序和小玩具项目开始。因此,本博客的主要目标是与您分享如何轻松地设置Prometheus,以及如何快速地创建可以使用Prometheus监控并在Grafana中可视化的简单项目。我发现了很多很棒的材料和灵感以下是精选列表

如果你有兴趣了解更多关于普罗米修斯的知识,你也可以报名参加1月21日的“普罗米修斯及其后续可观测性介绍”网络研讨会与我们的社区主管、普罗米修斯维护者理查德·哈特曼(Richard“richhih”Hartmann)合作。

建立普罗米修斯

作为第一步,我建议创建一个专门的Prometheus文件夹来存储与Prometheus相关的所有内容以及所有的玩具项目。在这个Prometheus文件夹中,我创建了一个服务器文件夹,在那里我下载并设置了Prometheus监控系统。

普罗米修斯mkdir /服务器

《普罗米修斯》的入门指南非常简单易懂。我不认为重复它有什么意义(因为我只是字面上复制粘贴它),因此,我只是要链接此处.按此步骤安装Prometheus (下载提取配置开始探索和玩耍).普罗米修斯提供的是关于自身的指标。你可以马上开始探索它的指标。

普罗米修斯指标
普罗米修斯指标
探索普罗米修斯度量
探索普罗米修斯度量

另外,您也可以让Prometheus启动并运行,而不需要通过使用Grafana云.我们刚刚宣布了新的免费和付费Grafana云计划,以适应每一个用例-现在免费注册

仅从普罗米修斯收集度量标准并不是对普罗米修斯能力最伟大或最有趣的表示。这就是为什么你应该看看以下项目,我用它们来更好地了解普罗米修斯的实际功能:

  • 用节点导出器监视您自己的计算机系统
  • 使用Prometheus Middleware监控快速应用程序
  • 用GitHub出口商监视GitHub回购

项目1:使用Node export监视您自己的计算机系统

设置节点导出器

对于知名的应用程序、服务器或数据库,Prometheus及其惊人的社区已经构建了用于监视目标的导出器。导出器基本上就是从系统中获取特定指标,然后以Prometheus格式提供数据的任何脚本或服务。这是普罗米修斯监视目标的主要方式。

节点导出器是一个普罗米修斯导出器,它公开了各种与硬件和内核相关的度量。这意味着我们可以使用Node export来监视我们自己的计算机系统的文件系统、磁盘、cpu、网络统计信息(以及其他)。对于Node export,我已经创建了一个新文件夹来设置它。

普罗米修斯mkdir / node_exporter

大家可以跟着看(另一个)令人惊奇的导游通过Prometheus设置节点导出器(再次,下载提取配置开始探索和玩耍).该指南的最终结果是运行Node export并公开度量http://localhost:9100/,和普罗米修斯从节点出口商抓取度量http://localhost:9090/

用Grafana可视化系统中的指标

如果你是新来的Grafana,作为第一步,请遵循Grafana安装指南.一旦您的Grafana启动并运行,连接您的Prometheus数据源(我将我的数据源命名为Prometheus -节点出口商)http://localhost:9090/

将Prometheus数据源连接到Grafana
将Prometheus数据源连接到Grafana

连接数据源之后,可以导入节点导出器服务器度量仪表板它包含预先制作的仪表板,可以从电脑上可视化指标。要导入仪表板,只需复制其仪表板ID(405),并使用import。

导入节点导出器服务器度量仪表板
导入节点导出器服务器度量仪表板
导入节点导出器服务器度量仪表板
导入节点导出器服务器度量仪表板

您现在可以从自己的计算机系统中看到可视化的度量。

节点导出器服务器度量
节点导出器服务器度量

项目2:使用Prometheus Middleware监控快递应用

作为第二个项目,我决定添加普罗米修斯中间件快速应用程序,并监控其性能。如果你没有准备好任何特定的应用程序,你可以使用下面的样板来创建玩具应用程序。对于这个项目,我再次创建了一个新文件夹。

mkdir Prometheus/prom_middleware cd Prometheus/prom_middleware代码。

在prom_middleware中,我创建了一个index.js文件并运行yarn init。在那之后,我跑步纱线添加express express-普罗米修斯中间件来添加我们将要使用的包。您可以使用下面的样板来创建您的玩具应用程序。

Const express = require('express');const promMid = require('express-prometheus-middleware');Const app = express();const PORT = 9091;app.use(promMid({metricsPath: '/metrics', collectDefaultMetrics: true, requestDurationBuckets: [0.1, 0.5, 1, 1.5],}));app.get(' / '(点播,res) = > {console.log(“/”);});App.get ('/hello', (req, res) => {const {name = 'you'} = req.query;res.json({message: ' Hello, ${name}!'});console.log (' GET /你好'); }); app.get('/hi', (req, res) => { const { name = 'you' } = req.query; res.json({ message: `Hi, ${name}!` }); console.log('GET /hi'); }); app.listen(PORT, () => { console.log(`App listening at :${PORT}`); });

重要的是不要忘记向prometheus配置文件添加prom_middleware作业,并通过重新运行重新启动prometheus服务器./prometheus——config.file=prometheus.yml.或者你可以从普罗米修斯开始——web.enable-lifecycle标记,然后使用http://localhost:9090/-/reload当Prometheus配置更改时,它会自动重新加载。然后你可以运行这个应用程序节点index.js,并多次打开它的路由(/hi和/hello),以便能够看到应用程序的指标。

—job_name: 'prom_middleware' scrape_interval: 5s static_configs:—targets: ['localhost:9091']
获取Prom_Middleware度量
获取Prom_Middleware度量
查询Prom_Middleware度量
查询Prom_Middleware度量

使用Grafana可视化应用程序中的指标

如果在前面的步骤中已经将Prometheus连接到Grafana,那么现在就可以为prom_middleware应用程序指标创建仪表板和面板了。请看下面的例子:

测试应用指标
测试应用指标
测试应用指标
测试应用指标

项目3:用GitHub出口商监控GitHub回购

作为最后一个项目,我决定尝试Prometheus来监控GitHub回购使用github-exporter.要做到这一点,你需要Docker Compose。你可以通过它来安装Docker Hub(包括Docker Compose)官方网站

一旦你的Docker启动并运行,你就可以继续接下来的步骤-运行Docker如下图所示。你可以用你选择的任何回购来替换普罗米修斯/普罗米修斯回购。

docker run -d——restart=always -p 9171:9171 -e REPOS="prometheus/prometheus" infinityworks/github-export .

运行这个docker映像后,您需要添加github_exporter到Prometheus配置文件,重新运行Prometheus服务器/普罗米修斯——config.file = prometheus.yml

- job_name: 'github_export ' scrape_interval: 5s static_configs: - targets: ['localhost:9171']
GitHub指标
GitHub指标

现在可以使用Prometheus运行查询。

使用Prometheus运行GitHub查询
使用Prometheus运行GitHub查询

不幸的是,GitHub限制了每个IP地址的查询数量,你每小时只能对未经授权的用户进行60次查询。这就是为什么我建议您创建自己的docker映像并提供您的github令牌

mkdir Prometheus/github_export cd Prometheus/github_export touch docker-compose。Yml代码。

创建docker-compose文件。(更多信息,请访问github-exporter自述文件)。

github-export: tty: true stdin_open: true expose: - 9171 ports: - 9171:9171 image: infinityworks/github-export:latest environment: - REPOS=prometheus/prometheus - GITHUB_TOKEN=yourGITHUBtoken

运行docker-compose并访问http://localhost:9171/metric查看可用的度量。

使用Grafana可视化应用程序中的指标

同样:如果在前面的步骤中添加了Prometheus作为数据源到Grafana,那么现在就可以为github_export指标创建仪表板和面板了。参见下面的示例。

为github_exporters Metrics创建仪表板
为github_exporters Metrics创建仪表板
为github_exporters Metrics创建仪表板
为github_exporters Metrics创建仪表板

就是这样!我希望这些例子能帮助您探索普罗米修斯,并在您深入研究时激励您创建自己的项目。