美文网首页
Node-诊断报告-experimental-report

Node-诊断报告-experimental-report

作者: 杀死BUG | 来源:发表于2020-01-17 11:54 被阅读0次

    概要

    在 12.x 里面V8模块内置了该功能,详见:

    简要的说是主要通过一列实验性接口process.report/experimental-report实现的。

    实现

    1. 启动脚本开启诊断报告功能node --experimental-report http_server.js
    2. 脚本设置参数
    if (process.report) { // 监听报告类型
    // 等同
      process.report.reportOnFatalError = true; 
      process.report.reportOnUncaughtException = true;
      process.report.reportOnSignal = true; // - 信号监听
      process.report.signal = 'SIGQUIT'; // 信号值默认 SIGUSR2
    }
    
    • 手动调用1
    const SECRET = '45u90rjigjrihfngihghkbgh+jghg/af';
    // 诊断报告
    function writeReport(WW, MF, req, resp, queryInfoDic) {
      if (resp.finished) {
        return;
      }
      if (!queryInfoDic.params.secret || 
      queryInfoDic.params.secret.replace(/ /g, '+') !== SECRET) {
        resp.end('1');
        return;
      }
      if (!process.report) {
        resp.end('writeReport unOpen');
        return;
      }
      resp.end(process.report.writeReport()); // 生成报告、返回系统格式接口
    }
    

    只需把此请求挂在http/ws服务器route上即可。

    • 手动调用2

    kill -SIGQUIT <pid>

    诊断报告文件类型

    https://nodejs.org/dist/latest-v12.x/docs/api/report.html

    分析

    暂时没有发现比较好的分析工具,待补充

    相关文章

      网友评论

          本文标题:Node-诊断报告-experimental-report

          本文链接:https://www.haomeiwen.com/subject/yyeczctx.html