New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

node-client

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-client

Nodejs Client for Monitor

  • 0.1.17
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status

Nodejs Client for Monitor

安装

npm install node-client --registry=https://npm.finogeeks.club

启动参数(环境变量)

变量说明默认值
ENABLE_MONITOR是否打开监控false
MONITOR_DEFAULT_INTERVAL采集nodejs的cpu/mem等指标的时间间隔undefined, 即关闭该功能
MONITOR_PORTexporter端口9092
MONITOR_PATHexporter路径/metrics

获取监控数据

访问:http://<SERVER_URL>:<MONITOR_PORT>/<MONITOR_PATH>. 比如,本地调试时可以直接在浏览器访问http://127.0.0.1:9092/metrics查看已添加的监控指标。

接口说明

Interface

指标名和标签名

  • 指标名唯一确定了一个指标,比如: mesons_synapse_requests
  • 创建相同名字的指标时,实际上是拿到同一个指标的实例,即不能得到两个不同类型的指标使其指标名是相同的,如下代码是非法的:
const monitor = require('node-client');
const counter = monitor.Counter('mesons_synapse_request', ['code', 'method']);

// 实际上得到了一个Counter类型的指标
const gauge = monitor.Gauge('mesons_synapse_request', ['code', 'status']);
// error: Couter类型的指标不存在dec方法
gauge.dec();
  • 任意指标的labelNames集合的子集都是合法的
  • 指标的命名必须能够唯一区分该指标,推荐使用<namespace>_<subsystem>_<metric>的格式
  • 更多指标和标签命名的最佳实践请参考METRIC AND LABEL NAMING

例子

Code Demo

Output

mesons_synapse_counter 1
mesons_synapse_counter{code="200",method="GET"} 10
mesons_synapse_counter{code="404",method="POST"} 20 1497341287055

mesons_synapse_gauge 1
mesons_synapse_gauge{code="400"} 1497341287056
mesons_synapse_gauge{code="200",method="GET"} -2
mesons_synapse_gauge{code="404",method="POST"} 3 1497341287056

mesons_synapse_summary{quantile="0.5",method="GET",code="200"} 20
mesons_synapse_summary{quantile="0.9",method="GET",code="200"} 30
mesons_synapse_summary_sum{code="200",method="GET"} 60
mesons_synapse_summary_count{code="200",method="GET"} 3

mesons_synapse_histogram_bucket{le="10",method="GET",code="200"} 1
mesons_synapse_histogram_bucket{le="15",method="GET",code="200"} 2
mesons_synapse_histogram_bucket{le="+Inf",method="GET",code="200"} 3
mesons_synapse_histogram_sum{code="200",method="GET"} 37
mesons_synapse_histogram_count{code="200",method="GET"} 3

mesons_synapse_gauge_timer 0.000040917

mesons_synapse_summary_timer{quantile="0.5",method="GET",code="200"} 0.000035099
mesons_synapse_summary_timer{quantile="0.9",method="GET",code="200"} 0.000035099
mesons_synapse_summary_timer_sum{code="200",method="GET"} 0.000035099
mesons_synapse_summary_timer_count{code="200",method="GET"} 1

mesons_synapse_histogram_timer_bucket{le="10",code="400",method="POST"} 1
mesons_synapse_histogram_timer_bucket{le="15",code="400",method="POST"} 1
mesons_synapse_histogram_timer_bucket{le="+Inf",code="400",method="POST"} 1
mesons_synapse_histogram_timer_sum{method="POST",code="400"} 0.000043813
mesons_synapse_histogram_timer_count{method="POST",code="400"} 1
mesons_synapse_histogram_timer_bucket{le="10",method="POST",code="500"} 1
mesons_synapse_histogram_timer_bucket{le="15",method="POST",code="500"} 1
mesons_synapse_histogram_timer_bucket{le="+Inf",method="POST",code="500"} 1
mesons_synapse_histogram_timer_sum{code="500",method="POST"} 0.000002668
mesons_synapse_histogram_timer_count{code="500",method="POST"} 1


# 默认指标
process_cpu_user_seconds_total 0.001006 1498200452791
process_cpu_system_seconds_total 0.000042 1498200452791
process_cpu_seconds_total 0.001048 1498200452791
process_start_time_seconds 1498200453 1498200452626
process_resident_memory_bytes 36163584 1498200452792

nodejs_eventloop_lag_seconds 0.015018044 1498200452807
nodejs_active_handles_total 2 1498200452793
nodejs_active_requests_total 0 1498200452793
nodejs_heap_size_total_bytes 19853312 1498200452793
nodejs_heap_size_used_bytes 11901432 1498200452793
nodejs_external_memory_bytes 78171 1498200452793
nodejs_heap_space_size_total_bytes{space="new"} 8388608 1498200452793
nodejs_heap_space_size_total_bytes{space="old"} 7704576 1498200452793
nodejs_heap_space_size_total_bytes{space="code"} 2154496 1498200452793
nodejs_heap_space_size_total_bytes{space="map"} 1069056 1498200452793
nodejs_heap_space_size_total_bytes{space="large_object"} 536576 1498200452793
nodejs_heap_space_size_used_bytes{space="new"} 1648120 1498200452793
nodejs_heap_space_size_used_bytes{space="old"} 7061616 1498200452793
nodejs_heap_space_size_used_bytes{space="code"} 2032832 1498200452793
nodejs_heap_space_size_used_bytes{space="map"} 643192 1498200452793
nodejs_heap_space_size_used_bytes{space="large_object"} 524328 1498200452793
nodejs_heap_space_size_available_bytes{space="new"} 2476552 1498200452793
nodejs_heap_space_size_available_bytes{space="old"} 136 1498200452793
nodejs_heap_space_size_available_bytes{space="code"} 2144 1498200452793
nodejs_heap_space_size_available_bytes{space="map"} 80 1498200452793
nodejs_heap_space_size_available_bytes{space="large_object"} 1478471168 1498200452793
nodejs_version_info{version="v7.7.4",major="7",minor="7",patch="4"} 1 1498200452630

HTTP中间件监控

自动监控http中间件,支持express和restify。

指标

  • Summary: http_request_duration_seconds{'method', 'path', 'code'}
  • Histogram: http_request_buckets_seconds{'method', 'path', 'code'}

使用方法

Express
const express = require('express');
const monitor = require('node-client');

const app = express();
monitor.Instrument(app);
    
app.get('/', (req, res) => {
  res.send();
});

app.listen(3000, () => {
  console.log('express server listening on port 3000');
});
Restify
const restify = require('restify');
const mointor = require('node-client');

const server = restify.createServer();

monitor.Instrument(server);

server.get('/', (req, res, done) => {
  res.send();
  done();
});

server.listen(3000, () => {
  console.log('restify server listening on port 3000');
});

FAQs

Package last updated on 17 Jan 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc