Node.js 如何使用Prometheus在Mac上监控nodejs的cpu和内存使用情况?
我在Mac OS上有一个nodejs应用程序,希望监视它的cpu和内存使用情况。我已使用以下配置安装了Prometheus服务器:Node.js 如何使用Prometheus在Mac上监控nodejs的cpu和内存使用情况?,node.js,prometheus,Node.js,Prometheus,我在Mac OS上有一个nodejs应用程序,希望监视它的cpu和内存使用情况。我已使用以下配置安装了Prometheus服务器: # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 sec
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'controller'
scrape_interval: 1s
static_configs:
- targets: ['172.16.123.1:3030']
labels:
group: 'demo'
- job_name: "node"
scrape_interval: "15s"
static_configs:
- targets: ['localhost:9100']
在我的服务课上,我使用prom.Counter记录请求的数量
const counter = new prom.Counter('create_connection', 'The number of requests')
counter.inc()
当我转到localhost:3030/metrics链接时,我可以阅读以下信息:
# HELP nodejs_gc_runs_total Count of total garbage collections.
# TYPE nodejs_gc_runs_total counter
# HELP nodejs_gc_pause_seconds_total Time spent in GC Pause in seconds.
# TYPE nodejs_gc_pause_seconds_total counter
# HELP nodejs_gc_reclaimed_bytes_total Total number of bytes reclaimed by GC.
# TYPE nodejs_gc_reclaimed_bytes_total counter
# HELP create_connection The number of requests
# TYPE create_connection counter
create_connection 18
我可以看到create_connection被调用了18次。现在我转到普罗米修斯图形页面,我可以看到创建连接的图形。但我的问题是,如何才能看到我的nodejs应用程序在一段时间内消耗了多少CPU和内存。在我的应用程序中是否有我需要配置的地方?你必须自己安装一些东西。因此,您可以在设定的时间间隔内自己进行这些测量,并使用诸如获取内存使用率、更新度量值之类的方法来收集这些度量值。您必须自己使用仪器。所以,您可以在设定的时间间隔内自己进行这些测量,并使用类似的方法获取内存使用情况,更新度量值,然后收集这些度量值。查看模块。它公开了Prometheus指标,包括node.js进程的内存和CPU使用率: nodejs\u进程\u内存\u rss\u字节 nodejs\u进程\u内存\u堆\u总字节 nodejs\u进程\u内存\u堆\u使用的\u字节 节点\u进程\u内存\u外部\u字节 nodejs\u进程\u cpu\u使用率\u百分比 它还公开了API指标,因此您可以使用Prometheus和Grafana与CPU/内存一起监视API使用情况 有关更多详细信息,请参见模块。它公开了Prometheus指标,包括node.js进程的内存和CPU使用率: nodejs\u进程\u内存\u rss\u字节 nodejs\u进程\u内存\u堆\u总字节 nodejs\u进程\u内存\u堆\u使用的\u字节 节点\u进程\u内存\u外部\u字节 nodejs\u进程\u cpu\u使用率\u百分比 它还公开了API指标,因此您可以使用Prometheus和Grafana与CPU/内存一起监视API使用情况 有关详细信息,请参见您可以使用npm软件包,该软件包通过简单的步骤插入代码 它在/metrics端点公开以下度量: 中央处理器: 进程 中央处理器系统 内存: 内存.process.private 内存、进程、物理 memory.process.virtual 使用的内存 内存。系统。总计 事件循环: eventloop.latency.min eventloop.latency.max eventloop.latency.avg 垃圾收集: gc.size 气相色谱法 gc.持续时间 HTTP请求: http 您可以使用npm包,它通过简单的步骤对代码进行检测 它在/metrics端点公开以下度量: 中央处理器: 进程 中央处理器系统 内存: 内存.process.private 内存、进程、物理 memory.process.virtual 使用的内存 内存。系统。总计 事件循环: eventloop.latency.min eventloop.latency.max eventloop.latency.avg 垃圾收集: gc.size 气相色谱法 gc.持续时间 HTTP请求: http
谢谢你的帖子。你有关于如何自定义度量的指导吗?只需创建计数器并使用。谢谢你的帖子。您是否有任何关于如何自定义度量的说明?只需创建计数器并使用.set即可
# HELP nodejs_gc_runs_total Count of total garbage collections.
# TYPE nodejs_gc_runs_total counter
# HELP nodejs_gc_pause_seconds_total Time spent in GC Pause in seconds.
# TYPE nodejs_gc_pause_seconds_total counter
# HELP nodejs_gc_reclaimed_bytes_total Total number of bytes reclaimed by GC.
# TYPE nodejs_gc_reclaimed_bytes_total counter
# HELP create_connection The number of requests
# TYPE create_connection counter
create_connection 18