Node.js 探针接入
如果你的服务涉及到 Node.js,可以参考该文档。本文以 Node.js express应用为例讲解如何将 express 的endpoints 接入到分布式链路追踪。
前置条件
依赖包与环境安装
- 环境 Node.js 14.15.3 
- Node.js agent module可以通过一下方式安装: 
npm install skyapm-nodejs@latest --save
本文档示例中其他库安装:
//go2sky的gin插件
npm install mysql --save
npm install express --save
探针接入
/*
参数说明:
@serviceName 服务名字, 规则:租户Code::namespace(K8S)::服务名,通过 :: 链接。
@instanceName 实例名字
@directServers SkyWalking后端收集器地址(使用gRPC 协议传输数据)
注意:
    在你使用其他module之前,必须先启动 skyapm-nodejs,否则无法收集数据
*/
require('skyapm-nodejs').start({
    serviceName: 'devTenant::dmp-t::express-demo',
    instanceName: 'test',
    directServers: '172.16.200.201:11800'
});
var mysql = require('mysql');
var express = require('express');
var app = express();
app.get('/user', function (req, res) {
  var connection = mysql.createConnection({
  host     : '172.0.0.0',
  user     : 'root',
  password : '123456',
  database : 'node.js'
});
  connection.connect();
  var myerror = "";
  /*
  用到的表:
  CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) DEFAULT NULL,
  `message` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
  ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
  */
  connection.query('SELECT * FROM user;', function (error, results, fields) {
        if(error){
          console.log('[SELECT ERROR] - ',error.message);
          myerror = error;
          return;
        }
       console.log('--------------------------SELECT----------------------------');
       console.log(results);
       res.send(results);
       console.log('------------------------------------------------------------\n\n');
       result = results;
    });
    if(myerror != ""){
        res.send('error!');
    }
    connection.end();
})
var server = app.listen(8081, function () {
  var host = server.address().address
  var port = server.address().port
  console.log("应用实例,访问地址为 http://%s:%s", host, port)
})
现在已经支持的module:
在Node.js中,使用以上module,agent可以自动将其涉及到endpoints的接入到分布式链路追踪。