配置

您的仪表板带有大量指标,无需配置。

但是,可以使用 PMX library完成进一步配置。 这是一个轻量级的库,用于您的服务器和仪表板之间的高级交互。

  • 公开自定义指标以丰富您的仪表板
  • 公开自定义操作可从任何地方远程触发
  • 发送事件来跟踪任何你想的
  • 优化异常检测以便检测及捕捉

PMX安装

使用npm:

  1. npm install @pm2/io --save

使用yarn:

  1. yarn add @pm2/io

PMX初始化

在任何其他require之前加载并初始化您应用顶层的io。

  1. const io = require('@pm2/io').init({
  2. // Enable the exception reporting, default true
  3. errors: true,
  4. // Enable the transaction tracing, default false
  5. transactions: false,
  6. // Enable the profiling, default true
  7. profiling: true,
  8. })

请参阅参考中的其他初始化选项。

显示自定义指标

io为您提供一个探针构造函数,使您能够将变量值显示在仪表板上。

例子:

  1. const probe = require('@pm2/io').probe();
  2. let counter = 0;
  3. const metric = probe.metric({
  4. name: 'Online users',
  5. type: 'custom/users', // unique id that identify the metric
  6. unit: null, // value of the metric that will be displayed on the dashboard
  7. agg_type: 'avg', // This param is optionnal, it can be `sum`, `max`, `min`, `avg` (default) or `none`. It will impact the way the probe data are aggregated. Use `none` if this is irrelevant (eg: constant or string value).
  8. value: () => {
  9. return counter;
  10. }
  11. })
  12. const metric = probe.metric({
  13. name : 'Realtime user',
  14. value : () => {
  15. return Object.keys(users).length;
  16. }
  17. })

请注意,自定义度量标准值每秒发送一次,发生于您所提供的函数调用。

PMX参考中阅读更多关于显示自定义指标的信息。

实现远程操作

您可以直接从仪表板远程触发功能。 从代码中实现后,可以在特定部分的主仪表板页面中找到操作按钮。

操作命令将一个函数作为参数,一旦作业完成后需要调用该参数。

例子:

  1. const io = require('@pm2/io');
  2. io.action('db:clean', function(reply) {
  3. clean.db(() => {
  4. /**
  5. * reply() must be called at the end of the action
  6. */
  7. reply({success : true});
  8. });
  9. });

PMX参考中详细了解如何实现远程操作。

触发事件

触发事件以获取历史记录或统计数据。

  1. const io = require('@pm2/io')
  2. io.emit('user:register', {
  3. user: 'Alex registered',
  4. email: 'thorustor@gmail.com'
  5. })

PMX 参考中详细了解触发事件。

下一步

通知

疑问?

我们一直乐于帮您解决可能遇到的问题。搜索我们的文档或查看常见问题的答案。您也可以在我们的社区论坛发布问题或评论。您也可以查看我们在github中的帮助部分 https://github.com/keymetrics/keymetrics-support

原文: https://pm2.io/doc/zh/plus/guide/configuration/