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

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

前提条件

获取接入点信息

  1. 登录ARMS控制台,在左侧导航栏单击接入中心

  2. 服务端应用区域单击SkyWalking卡片。

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

    说明

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

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

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

    image.png

背景信息

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

Skywalking-backend-jsSkyWalkingNode.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

SkyWalkingNode.js应用埋点

  1. 执行以下命令安装skywalking-nodejsAgent探针。

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

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

    SkyWalkingNode.jsAgent支持硬编码和环境变量两种参数配置方式。

    硬编码

    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官网