通过SkyWalking上报Node.js应用数据

通过SkyWalking为应用埋点并上报链路数据至可观测链路 OpenTelemetry 版后,可观测链路 OpenTelemetry 版即可开始监控应用,您可以查看应用拓扑、调用链路、异常事务、慢事务和SQL分析等一系列监控数据。本文介绍如何使用skywalking-backend-js进行自动埋点并上报应用数据。

前提条件

获取接入点信息

新版控制台

  1. 登录可观测链路 OpenTelemetry 版控制台,在左侧导航栏单击接入中心

  2. 开源框架区域单击SkyWalking卡片。

  3. 在弹出的SkyWalking面板中选择数据需要上报的地域。

    说明

    初次接入的地域将会自动进行资源初始化。

  4. 选择连接方式,然后复制接入点信息。

    若您的服务部署在阿里云上,且所属地域与选择的接入地域一致,推荐使用阿里云内网方式,否则选择公网方式。

    image.png

旧版控制台

  1. 登录可观测链路 OpenTelemetry 版控制台

  2. 在左侧导航栏单击集群配置,然后在右侧页面单击接入点信息页签。

  3. 在页面顶部选择需要接入的地域,然后在集群信息区域打开显示Token开关。

  4. 客户端采集工具区域单击SkyWalking

    相关信息列中,获取接入点信息。

    SkyWalking接入点信息

    说明

    如果应用部署于阿里云生产环境,则选择阿里云VPC网络接入点,否则选择公网接入点。

背景信息

SkyWalking是一款广受欢迎的国产APM(Application Performance Monitoring,应用性能监控)产品,主要针对微服务、Cloud Native和容器化(Docker、Kubernetes、Mesos)架构的应用。SkyWalking的核心是一个分布式追踪系统。

Skywalking-backend-js是SkyWalking的Node.js Agent官方库,可以通过接入skywalking-backend-js实现对Node.js应用的监控,skywalking-backend-js支持MySQL、Redis、RabbitMQ等多种第三方库的自动埋点。

说明

SkyAPM-nodejs是旧版的官方库,已弃用,请使用最新的官方库skywalking-backend-js监控Node.js应用。

展开查看支持监控的第三方库

插件名

built-in http and https module

http / https

Express

express

Axios

axios

MySQL

mysql

MySQL

mysql2

PostgreSQL

pg

pg-cursor

pg-cursor

MongoDB

mongodb

Mongoose

mongoose

RabbitMQ

amqplib

Redis

ioredis

AWS2DynamoDB

aws-sdk

AWS2Lambda

aws-sdk

AWS2SNS

aws-sdk

AWS2SQS

aws-sdk

示例Demo

示例Demo仓库地址:SkyWalking Demo

用SkyWalking为Node.js应用埋点

  1. 执行以下命令安装skywalking-nodejs版Agent探针。

    npm install --save skywalking-backend-js
  2. 项目引入Skywalking-NodeJS Agent。

    const {default: agent} = require("skywalking-backend-js");
    agent.start({})
  3. 配置Agent参数。

    SkyWalking的Node.js版Agent支持硬编码和环境变量两种参数配置方式。

    硬编码

    agent.start({
      serviceName: <your-service-name>,                     // 服务名称,标识应用
      serviceInstance: <your-service-instance-name>,        // 服务实例名称
      collectorAddress: <collector-backend-address>,        // 数据上报collector接入点地址
      authorization: <collector-token>                      // 接入点token
    });

    环境变量配置参数

    # <endpoint>: 接入点地址;<token>: 接入点鉴权token;<service-name>: 应用名称。
    
    export SW_AGENT_COLLECTOR_BACKEND_SERVICES=<endpoint>
    export SW_AGENT_AUTHENTICATION=<token>
    export SW_AGENT_NAME=<service-name>
  4. 重新启动应用。

相关文档

SkyWalking官网