SkyWalking NodeJS Agent
SkyWalking-NodeJS: The NodeJS Agent for Apache SkyWalking, which provides the native tracing abilities for NodeJS project.
SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based (Docker, Kubernetes, Mesos) architectures.
Set up NodeJS Agent
SkyWalking NodeJS SDK requires SkyWalking 8.0+.
import Agent from 'skywalking-nodejs';
Agent.start({
serviceName: '',
serviceInstance: '',
collectorAddress: '',
authorization: '{productId}##{"node": "nodejs-sever", "agentType": "node.js"}',
maxBufferSize: 1000,
});
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_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 CRITICAL , FATAL , ERROR , WARN (WARNING ), INFO , DEBUG
|
INFO |
SW_AGENT_MAX_BUFFER_SIZE |
The maximum buffer size before sending the segment data to backend | '1000' |
支持Grpc SSL
将ca.crt放到项目根目录下
Build
npm install
npm run prepare
npm run build
copy to lib/proto/language-agent/Tracing_pb.d.ts
export enum SpanType {
ENTRY = 0,
EXIT = 1,
LOCAL = 2,
}
export enum RefType {
CROSSPROCESS = 0,
CROSSTHREAD = 1,
}
export enum SpanLayer {
UNKNOWN = 0,
DATABASE = 1,
RPCFRAMEWORK = 2,
HTTP = 3,
MQ = 4,
CACHE = 5,
}
npm pack
npm install skywalking-netease-0.1.0.tgz --save
## Supported Libraries
There're some built-in plugins that support automatic instrumentation of NodeJS libraries, the complete lists are as follows:
Library | Plugin Name
| :--- | :--- |
| built-in `http` module | `sw_http` |
## License
Apache 2.0