Node.js 如何使用Prometheus在Mac上监控nodejs的cpu和内存使用情况?

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

我在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 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