0.0.1 • Published 2 years ago

skywalking-agent-node v0.0.1

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

SkyWalking NodeJS Agent

SkyWalking-Agent-Node: The NodeJS Agent for Apache SkyWalking, an alternative to skywalking-nodejs, which provides the native tracing abilities for NodeJS backend project. This project is a fork of skywalking-nodejs and is based on opentelemetry-js instrumentations

SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures.

Quick start

Install Dependencies

npm install --save skywalking-agent-node

Instantiate Agent

// agent.js

"use strict";
const agent = require("skywalking-agent-node");

agent.start({
  //configurations
});

Run Your Application

node -r ./agent.js app.js

This will use default configurations to start the SkyWalking agent above, if you want to specify your own configurations, here are two methods.

1. Pass configuration values to agent.start method

Install Opentelemetry Instrumentations

npm install --save @opentelemetry/auto-instrumentations-node
npm install --save @opentelemetry/instrumentation-mysql2

Note: auto-instrumentations-node is a meta package from opentelemetry-js-contrib that provides a simple way to initialize multiple Node.js instrumentations.

// agent.js

"use strict";
const agent = require("skywalking-agent-node");
const { getNodeAutoInstrumentations } = require(
  "@opentelemetry/auto-instrumentations-node",
);
const { MySQL2Instrumentation } = require(
  "@opentelemetry/instrumentation-mysql2",
);
const instrumentations = getNodeAutoInstrumentations();
instrumentations.push(new MySQL2Instrumentation());

agent.start({
  serviceName: "my-service-name",
  serviceInstance: "my-service-instance-name",
  collectorAddress: "my.collector.address:port",
  instrumentations: instrumentations, // custom instrumentations if you needed
});

2. Use environment variables

The supported environment variables are as follows:

Environment VariableDescriptionDefault
SW_AGENT_NAMEThe name of the serviceyour-nodejs-service
SW_AGENT_INSTANCEThe name of the service instanceRandomly generated
SW_AGENT_COLLECTOR_BACKEND_SERVICESThe backend OAP server address127.0.0.1:11800
SW_AGENT_SECUREWhether to use secure connection to backend OAP serverfalse
SW_AGENT_AUTHENTICATIONThe authentication token to verify that the agent is trusted by the backend OAP, as for how to configure the backend, refer to the yaml.not set
SW_AGENT_LOGGING_LEVELThe logging level, could be one of error, warn, info, debuginfo
SW_AGENT_DISABLE_PLUGINSComma-delimited list of plugins to disable in the plugins directory (e.g. "mysql", "express")
SW_COLD_ENDPOINTCold start detection is as follows: First span to run within 1 second of skywalking init is considered a cold start. This span gets the tag coldStart set to 'true'. This span also optionally gets the text '\<cold>' appended to the endpoint name if SW_COLD_ENDPOINT is set to 'true'.false
SW_AGENT_MAX_BUFFER_SIZEThe maximum buffer size before sending the segment data to backend'1000'