node . js出口国
在本页:
简介
下面的快速入门为Node.js Prometheus指标导出器的prom-client提供了设置说明和预先配置的仪表板、警报规则和记录规则。在运行完这个快速开始的步骤后,你将有:
为Node.js设置和配置prom-client,以收集Node.js应用程序的指标,如事件循环滞后、活动句柄和GC指标。Node.js的prom-client将把这些作为普罗米修斯风格的指标公开。
配置Prometheus抓取Node.js度量的prom-client,并可选地将它们发送到Grafana Cloud。
设置一组预先配置和策划的记录规则,以缓存频繁的Prometheus查询。
导入Grafana仪表板以可视化您的指标数据。
设置Prometheus警报规则,对度量数据进行警报。
指标使用
默认情况下,该出口商发布大约78个普罗米修斯时间序列。要查看此导出器默认附带的指标列表,请下载一个示例指标刮集在这里.
注意,根据Node.js的配置,promo -client可能会收集和发布比这个默认设置多得多的指标。要了解关于为Node.js配置prom-client和切换其收集器的更多信息,请参阅Node.js的prom-clientGitHub库.
除了为Node.js的设置切换prom-client之外,你可以通过删除不需要存储在Prometheus或Grafana Cloud中的时间序列来减少指标的使用。要了解如何做到这一点,请参见通过重新标签减少Prometheus度量的使用来自Grafana Cloud文档。
Grafana Cloud的Node.js集成
如果你正在使用Grafana Cloud,你可以通过安装Node.js Integration来跳过本指南中的所有步骤,它旨在帮助你在一些命令和单击中启动和运行。免费注册.
要了解如何使用Node.js集成来收集Node.js指标,请参见node . js集成来自Grafana Cloud文档。
在本页:
Node.js快速入门的prom-client
在本指南中,你将学习如何为Node.js设置和配置prom-client来收集Node.js的指标,如事件循环滞后和活动句柄,并将它们作为普罗米修斯风格的指标公开。然后进行配置普罗米修斯抓取Node.js指标,并可选地将它们发布到Grafana Cloud。最后,您将设置一个预先配置和策划的Grafana集指示板,报警规则.在本指南的最后,您将拥有用于可视化Node.js指标的仪表板,以及一组预先配置的警报。
如果你正在使用Grafana云,node . js集成可以帮助您快速启动和运行。Node.js集成将Node.js的prom-client嵌入到Grafana云剂并且自动提供警报规则和仪表板,因此您不必执行本指南中的步骤。要学习如何使用Node.js集成为Node.js设置prom-client,请参见node . js集成来自Grafana Cloud文档。
先决条件
在你开始之前,你应该有以下可用的:
- Node.js安装在你的机器上。要了解更多,请参见下载从Node.js站点。
- Prometheus在您的环境中运行或直接在机器上运行。要了解如何安装Prometheus,请参见安装来自普罗米修斯的文件。
- Grafana在您的环境中运行或直接在机器上运行。要了解如何安装Grafana,请参阅安装Grafana来自格拉弗纳的文件。
- (可选)Grafana Cloud帐号。Grafana Cloud托管Grafana和a皮质基于Prometheus度量端点。您仍然需要使用安装在您的环境中的Prometheus或Grafana云剂.要了解更多关于Grafana Cloud的信息,请参见Grafana云.
步骤1:为Node.js设置prom-client
在这一步中,您将为Node.js设置prom-client,以便以Prometheus格式收集和公开Node.js指标。本指南使用Node.js版本的Ubuntu 20.04系统15.11.0
.根据操作系统和Node.js版本的不同,步骤可能略有不同。
本指南将演示一个新的Node.js应用程序的设置步骤。要测试一个现有的Node.js应用程序,请参阅prom-client
GitHub库.
首先,登录到您的计算机并创建一个名为应用程序
.导航到这个目录:
Mkdir app CD
使用初始化Node项目npm init
:
npm init
除以下提示外,所有操作都使用默认值:
入口点:(index.js)
对于此提示,输入app.js
然后点击输入
.
接下来,安装表达
而且prom-client
使用npm
:
NPM安装express promclient -save
最后,使用您最喜欢的文本编辑器创建最小的应用程序。打开一个名为app.js
并粘贴以下内容:
从“express”中进口快递;import {collectDefaultMetrics, register} from ' promt -client';collectDefaultMetrics ();Const app = express();app.get('/metrics', async (_req, res) => {try {res.set('Content-Type', register.contentType);res.end(等待register.metrics ());} catch (err) {res.status(500).end(err);}});app.listen(4001年,“0.0.0.0”);
这个简单的应用程序收集了一组标准的Node.js指标,并以Prometheus格式在/指标
端点。它监听端口上的请求4001
在本地主机
.
完成后,保存并关闭该文件。
最后,使用Node运行应用程序:
节点app.js
您不会看到任何输出,但是您的shell应该挂起。在另一个回合,模拟普罗米修斯刮使用旋度
:
旋度localhost: 4001 /指标
……垃圾收集持续时间按类型划分,主要、次要、增量或弱cb之一。#类型nodejs_gc_duration_seconds直方图nodejs_gc_duration_seconds_bucket{勒= " 0.001 ",类型=“增量”}2 nodejs_gc_duration_seconds_bucket{勒= " 0.01 ",类型=“增量”}4 nodejs_gc_duration_seconds_bucket{勒= " 0.1 ",类型=“增量”}4 nodejs_gc_duration_seconds_bucket{勒=“1”,类型=“增量”}4 nodejs_gc_duration_seconds_bucket{勒=“2”,类型=“增量”}4 nodejs_gc_duration_seconds_bucket{勒=“5”,类型=“增量”}4 nodejs_gc_duration_seconds_bucket{勒=“正”,类型=“增量”}40.007554849 nodejs_gc_duration_seconds_count nodejs_gc_duration_seconds_sum{类型=“增量”}{类型=“增量”}4 nodejs_gc_duration_seconds_bucket{勒= " 0.001 ",类型=“主要”}0 nodejs_gc_duration_seconds_bucket{勒= " 0.01 ",类型=“主要”}2 nodejs_gc_duration_seconds_bucket{勒= " 0.1 ",类型=“主要”}2 nodejs_gc_duration_seconds_bucket{勒=“1”,类型=“主要”}2 nodejs_gc_duration_seconds_bucket{勒=“2”,类型=“主要”}2 nodejs_gc_duration_seconds_bucket{勒=“5”,类型=“主要”}2nodejs_gc_duration_seconds_bucket{le="+Inf",kind="major"} 2 nodejs_gc_duration_seconds_sum{kind="major"} 0.007220236999999999 nodejs_gc_duration_seconds_count{kind="major"
如果看到上面的输出,说明您成功地将promo -client安装到Node.js应用程序中。您已经准备好使用Prometheus开始收集Node.js指标。
除了collectDefaultMetrics
,prom-client
可以收集自定义Node.js指标,并允许你配置指标标签。要了解更多有关这些功能的信息,请参阅prom-client for Node.js GitHub库.
步骤2:使用Prometheus抓取舞会客户端指标
现在promo -client已经启动并在您的机器上运行,您可以配置一个Prometheus刮作业来收集和存储Node.js指标。
将以下刮擦作业配置添加到scrape_configs
你的prometheus.yml
配置文件:
—job_name: nodejs static_configs:—targets: ['localhost:4001']
取代本地主机
使用运行Node.js的机器的IP地址。如果你在同一台机器上运行普罗米修斯,这将是本地主机
.要了解有关配置Prometheus的更多信息,请参见配置来自普罗米修斯的文件。
如果你没有prometheus.yml
配置文件,使用您最喜欢的文本编辑器创建一个简单的配置文件。打开您喜欢的文本编辑器,并粘贴以下Prometheus配置:
—job_name: nodejs static_configs:—targets: ['localhost:4001']
这个配置告诉Prometheus每15秒清理一次所有作业。调用唯一配置的抓取作业nodejs
并定义了localhost: 4001
目标。默认情况下,普罗米修斯会刮/指标
端点使用HTTP。
保存并关闭该文件。然后您可以使用以下命令运行Prometheus文件:
/ prometheus.yml /普罗米修斯——config.file =
将指标发送到Grafana Cloud
要将Node.js度量从Prometheus发送到Grafana Cloud,请配置remote_write
的参数prometheus.yml
配置文件。要了解更多,请参见米米修斯来自Grafana Cloud文档。要了解更多关于remote_write
参数,请参见remote_write
来自普罗米修斯的文件。
步骤3:配置仪表板
这个快速入门包含一个仪表板:
- node . js概述
要了解如何将此仪表板导入Grafana,请参阅导入仪表板来自格拉弗纳的文件。
你可以获取仪表盘在这里.
步骤4:配置警报
通过使用Prometheus警报规则,您可以定义当PromQL表达式在一段时间内违反某些阈值或满足指定条件时触发的警报。例如,您可以定义aHighRequestLatency
当请求延迟度量在一段时间内大于某个阈值时触发的警报。一旦触发警报条件,警报移动到等待
状态。在满足条件后的一段时间内所规定的为
参数,警报移动到发射
状态。您可以使用类似的工具配置发送警报的路由和通知Alertmanager.Alertmanager也内置在Grafana Cloud中。
您可以获取警报规则YAML文件在这里.
将警报规则加载到Prometheus中
要将警报规则加载到Prometheus中,请将以下内容添加到您的prometheus.yml
配置文件:
- "nodejs-rules.yml"
一定要更换nodejs-rules.yml
与你的Node.js应用程序警报规则YAML文件的路径。
将警报规则加载到Grafana Cloud中
要了解如何将警报规则加载到Grafana Cloud中,请参见普罗米修斯和洛基用cortextool统治.
结论
在本快速入门教程中,您在Linux机器上为Node.js安装并运行了prom-client。然后将Prometheus配置为抓取Node.js的prom-client暴露的数据库和Node.js应用程序指标。您将记录规则和警报规则加载到Prometheus中,最后导入Grafana仪表板以可视化Node.js应用程序指标。
如果你正在使用Grafana Cloud,你可以通过安装Node.js应用集成到Grafana Cloud Agent中来跳过本指南中的所有步骤。这种集成将Node.js的预配置的prom-client嵌入到代理中,并自动提供Grafana仪表板和Prometheus警报和记录规则,因此您不必手动导入它们。要学习如何设置Node.js应用程序集成,请参见Grafana云集成.
仪表板、记录规则和警报规则是使用Node.js Mixin的prom-client生成的。mixin是由主题专家策划和设计的仪表板、记录规则和警报的可重用模板。要了解更多,请参阅Node.js应用Mixin存储库。
在本页:
这个快速入门包含以下警报规则:
NodejsDown
node . js工作
在实例
就是不起来。
groups:—name: NodejsAlerts rules:—alert: NodejsDown expr: process_start_time_seconds != 1 for: 5m labels: severity: critical annotations: description: 'Node.js {{$labels. properties: '在{{$标签上作业}}。实例}} is not up.' summary: Node.js not up
这个警报规则YAML文件是使用Node.js的promo -client生成的mixin.
在本页:
Grafana Cloud提供了一个不断扩展的集成集,可以在几分钟内快速获得可观察性堆栈并运行。内置在Grafana Cloud Agent中的Node.js应用集成,将基本的Node.js应用指标暴露和删除,并将它们推送到Grafana Cloud。代理将使用Node.js的嵌入式prom-client获取指标,而Grafana Cloud将自动提供定制的Grafana仪表板和警报,以便对这些数据进行可视化和操作。
要了解更多,请查看Grafana Cloud文档.
它是如何工作的
配置、安装、连接和维护Prometheus监视组件通常涉及大量的领域知识。从设置到仪表板和警报可能需要相当长的时间。作为Grafana的创造者——以及Prometheus和Cortex的核心贡献者——我们构建了简单的集成来抽象一些工作,以便快速开始。它是如何工作的:
- 注册(或登录)一个免费Grafana云帐户.
- 选择你想要观察的目标(一个不断扩大的目录)。
- 运行一行命令安装Grafana Agent。代理嵌入和预配置出口商以公开默认指标,并将它们推到Grafana Cloud指标后端。
- 瞧!您将看到定制的Grafana仪表板,并将受益于正常的缺省提醒。
寻找不同的出口商或集成?查看我们的不断增长的流行组件集成库比如MySQL, Postgres, Redis, Memcached等等。