$ npm install --save skywalking-backend-js
SkyWalking NodeJS SDK requires SkyWalking backend (OAP) 8.0+ and NodeJS >= 10.
import agent from 'skywalking-backend-js'; agent.start();
This will use default configurations to start the SkyWalking agent above, if you want to specify your own configurations, here are two methods.
agent.start
method, such as:agent.start({ serviceName: 'my-service-name', serviceInstance: 'my-service-instance-name', collectorAddress: 'my.collector.address:port', });
Note that all options given (including empty/null values) will override the corresponding default values, e.g. agent.start({ collectorAddress: '' })
will override the default value of collectorAddress
to empty string, causing errors like DNS resolution failed
.
The supported environment variables are as follows:
Environment Variable | Description | Default |
---|---|---|
SW_AGENT_NAME | The name of the service | your-nodejs-service |
SW_AGENT_INSTANCE | The name of the service instance | Randomly generated |
SW_AGENT_COLLECTOR_BACKEND_SERVICES | The backend OAP server address | 127.0.0.1:11800 |
SW_AGENT_SECURE | Whether to use secure connection to backend OAP server | false |
SW_AGENT_AUTHENTICATION | The 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_LEVEL | The logging level, could be one of error , warn , info , debug | info |
SW_AGENT_DISABLE_PLUGINS | Comma-delimited list of plugins to disable in the plugins directory (e.g. “mysql”, “express”). | `` |
SW_IGNORE_SUFFIX | The suffices of endpoints that will be ignored (not traced), comma separated | .jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg |
SW_TRACE_IGNORE_PATH | The paths of endpoints that will be ignored (not traced), comma separated | `` |
SW_HTTP_IGNORE_METHOD | Comma-delimited list of http methods to ignore (GET, POST, HEAD, OPTIONS, etc...) | `` |
SW_SQL_TRACE_PARAMETERS | If set to ‘true’ then SQL query parameters will be included | false |
SW_SQL_PARAMETERS_MAX_LENGTH | The maximum string length of SQL parameters to log | 512 |
SW_MONGO_TRACE_PARAMETERS | If set to ‘true’ then mongodb query parameters will be included | false |
SW_MONGO_PARAMETERS_MAX_LENGTH | The maximum string length of mongodb parameters to log | 512 |
SW_AGENT_MAX_BUFFER_SIZE | The maximum buffer size before sending the segment data to backend | '1000' |
Note that the various ignore options like SW_IGNORE_SUFFIX
, SW_TRACE_IGNORE_PATH
and SW_HTTP_IGNORE_METHOD
as well as endpoints which are not recorded due to exceeding SW_AGENT_MAX_BUFFER_SIZE
all propagate their ignored status downstream to any other endpoints they may call. If that endpoint is running the Node Skywalking agent then regardless of its ignore settings it will not be recorded since its upstream parent was not recorded. This allows elimination of entire trees of endpoints you are not interested in as well as eliminating partial traces if a span in the chain is ignored but calls out to other endpopints which are recorded as children of ROOT instead of the actual parent.
There are some built-in plugins that support automatic instrumentation of NodeJS libraries, the complete lists are as follows:
Library | Plugin Name |
---|---|
built-in http and https module | http / https |
Express | express |
Axios | axios |
MySQL | mysql |
PostgreSQL | pg |
pg-cursor | pg-cursor |
MongoDB | mongodb |
Mongoose | mongoose |
RabbitMQ | amqplib |
The following are packages that have been tested to some extent and are compatible because they work through the instrumentation of an underlying package:
Library | Underlying Plugin Name |
---|---|
request | http / https |
request-promise | http / https |
koa | http / https |
dev-subscribe@skywalking.apache.org
, follow the reply to subscribe the mail list.skywalking
channel at Apache Slack. If the link is not working, find the latest one at Apache INFRA WIKI.Apache 2.0