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:

  1. Http
  2. Mysql
  3. Egg

在Node.js中,使用以上module,agent可以自动将其涉及到endpoints的接入到分布式链路追踪。

Copyright © www.daocloud.io 2019 all right reserved,powered by Gitbook修订时间: 2021-01-20 07:03:45

results matching ""

    No results matching ""