@devskin/agent 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +156 -0
- package/dist/agent.d.ts +28 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +221 -0
- package/dist/agent.js.map +1 -0
- package/dist/api-client.d.ts +14 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +102 -0
- package/dist/api-client.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/express.d.ts +5 -0
- package/dist/instrumentation/express.d.ts.map +1 -0
- package/dist/instrumentation/express.js +100 -0
- package/dist/instrumentation/express.js.map +1 -0
- package/dist/instrumentation/http.d.ts +3 -0
- package/dist/instrumentation/http.d.ts.map +1 -0
- package/dist/instrumentation/http.js +144 -0
- package/dist/instrumentation/http.js.map +1 -0
- package/dist/span.d.ts +21 -0
- package/dist/span.d.ts.map +1 -0
- package/dist/span.js +105 -0
- package/dist/span.js.map +1 -0
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +17 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/context.d.ts +19 -0
- package/dist/utils/context.d.ts.map +1 -0
- package/dist/utils/context.js +42 -0
- package/dist/utils/context.js.map +1 -0
- package/dist/utils/id-generator.d.ts +4 -0
- package/dist/utils/id-generator.d.ts.map +1 -0
- package/dist/utils/id-generator.js +16 -0
- package/dist/utils/id-generator.js.map +1 -0
- package/package.json +46 -0
- package/src/agent.ts +276 -0
- package/src/api-client.ts +125 -0
- package/src/index.ts +32 -0
- package/src/instrumentation/express.ts +143 -0
- package/src/instrumentation/http.ts +180 -0
- package/src/span.ts +178 -0
- package/src/types.ts +128 -0
- package/src/utils/context.ts +87 -0
- package/src/utils/id-generator.ts +22 -0
- package/tsconfig.json +28 -0
package/README.md
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# @devskin/agent
|
|
2
|
+
|
|
3
|
+
DevSkin APM Agent for Node.js - Automatic instrumentation for application performance monitoring.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @devskin/agent
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
### 1. Initialize the Agent
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
const { init, startAgent } = require('@devskin/agent');
|
|
17
|
+
|
|
18
|
+
const agent = init({
|
|
19
|
+
serverUrl: 'https://api-monitoring.devskin.com',
|
|
20
|
+
apiKey: 'your-api-key-here',
|
|
21
|
+
serviceName: 'my-api-service',
|
|
22
|
+
serviceVersion: '1.0.0',
|
|
23
|
+
environment: 'production',
|
|
24
|
+
sampleRate: 1.0,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
startAgent();
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. With Express
|
|
31
|
+
|
|
32
|
+
```javascript
|
|
33
|
+
const express = require('express');
|
|
34
|
+
const { init, startAgent, expressMiddleware, expressErrorHandler } = require('@devskin/agent');
|
|
35
|
+
|
|
36
|
+
const agent = init({
|
|
37
|
+
serverUrl: 'https://api-monitoring.devskin.com',
|
|
38
|
+
apiKey: 'your-api-key',
|
|
39
|
+
serviceName: 'my-express-app',
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
await startAgent();
|
|
43
|
+
|
|
44
|
+
const app = express();
|
|
45
|
+
|
|
46
|
+
// Add middleware BEFORE your routes
|
|
47
|
+
app.use(expressMiddleware(agent));
|
|
48
|
+
|
|
49
|
+
// Your routes
|
|
50
|
+
app.get('/api/users', async (req, res) => {
|
|
51
|
+
// Automatically traced!
|
|
52
|
+
const users = await getUsers();
|
|
53
|
+
res.json(users);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// Add error handler AFTER your routes
|
|
57
|
+
app.use(expressErrorHandler(agent));
|
|
58
|
+
|
|
59
|
+
app.listen(3000);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 3. Manual Span Creation
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
const { SpanBuilder, SpanKind, getAgent } = require('@devskin/agent');
|
|
66
|
+
|
|
67
|
+
const agent = getAgent();
|
|
68
|
+
|
|
69
|
+
async function processOrder(orderId) {
|
|
70
|
+
const span = new SpanBuilder(
|
|
71
|
+
'processOrder',
|
|
72
|
+
SpanKind.INTERNAL,
|
|
73
|
+
agent.getConfig().serviceName,
|
|
74
|
+
agent.getConfig().serviceVersion,
|
|
75
|
+
agent.getConfig().environment,
|
|
76
|
+
agent
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
span.setAttribute('order.id', orderId);
|
|
80
|
+
|
|
81
|
+
try {
|
|
82
|
+
// Your business logic
|
|
83
|
+
const order = await fetchOrder(orderId);
|
|
84
|
+
span.setAttribute('order.amount', order.amount);
|
|
85
|
+
|
|
86
|
+
return order;
|
|
87
|
+
} catch (error) {
|
|
88
|
+
span.recordError(error);
|
|
89
|
+
throw error;
|
|
90
|
+
} finally {
|
|
91
|
+
span.end();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Configuration Options
|
|
97
|
+
|
|
98
|
+
| Option | Type | Default | Description |
|
|
99
|
+
|--------|------|---------|-------------|
|
|
100
|
+
| `serverUrl` | string | *required* | DevSkin backend URL |
|
|
101
|
+
| `apiKey` | string | *required* | API key for authentication |
|
|
102
|
+
| `serviceName` | string | *required* | Name of your service |
|
|
103
|
+
| `serviceVersion` | string | undefined | Version of your service |
|
|
104
|
+
| `environment` | string | undefined | Environment (production, staging, etc) |
|
|
105
|
+
| `enabled` | boolean | true | Enable/disable agent |
|
|
106
|
+
| `sampleRate` | number | 1.0 | Sample rate (0.0 to 1.0) |
|
|
107
|
+
| `instrumentHttp` | boolean | true | Auto-instrument HTTP |
|
|
108
|
+
| `instrumentExpress` | boolean | true | Auto-instrument Express |
|
|
109
|
+
| `batchSize` | number | 100 | Batch size before flushing |
|
|
110
|
+
| `flushInterval` | number | 10000 | Flush interval in ms |
|
|
111
|
+
| `debug` | boolean | false | Enable debug logging |
|
|
112
|
+
|
|
113
|
+
## Features
|
|
114
|
+
|
|
115
|
+
- ✅ Automatic HTTP request/response tracing
|
|
116
|
+
- ✅ Express middleware for automatic route tracing
|
|
117
|
+
- ✅ Manual span creation
|
|
118
|
+
- ✅ Distributed tracing with trace ID propagation
|
|
119
|
+
- ✅ Error tracking and reporting
|
|
120
|
+
- ✅ Sampling support
|
|
121
|
+
- ✅ Async context propagation
|
|
122
|
+
- ✅ Service discovery
|
|
123
|
+
|
|
124
|
+
## Best Practices
|
|
125
|
+
|
|
126
|
+
1. **Initialize early**: Call `init()` and `startAgent()` as early as possible in your application
|
|
127
|
+
2. **Use Express middleware**: For Express apps, use the provided middleware for automatic instrumentation
|
|
128
|
+
3. **Sample in production**: Set `sampleRate` to a value < 1.0 in high-traffic production environments
|
|
129
|
+
4. **Add context**: Use `span.setAttribute()` to add business context to your traces
|
|
130
|
+
5. **Graceful shutdown**: Call `stopAgent()` before your application exits
|
|
131
|
+
|
|
132
|
+
## Environment Variables
|
|
133
|
+
|
|
134
|
+
You can also configure the agent using environment variables:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
DEVSKIN_SERVER_URL=https://api-monitoring.devskin.com
|
|
138
|
+
DEVSKIN_API_KEY=your-api-key
|
|
139
|
+
DEVSKIN_SERVICE_NAME=my-service
|
|
140
|
+
DEVSKIN_ENVIRONMENT=production
|
|
141
|
+
DEVSKIN_SAMPLE_RATE=1.0
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
```javascript
|
|
145
|
+
const agent = init({
|
|
146
|
+
serverUrl: process.env.DEVSKIN_SERVER_URL,
|
|
147
|
+
apiKey: process.env.DEVSKIN_API_KEY,
|
|
148
|
+
serviceName: process.env.DEVSKIN_SERVICE_NAME,
|
|
149
|
+
environment: process.env.DEVSKIN_ENVIRONMENT,
|
|
150
|
+
sampleRate: parseFloat(process.env.DEVSKIN_SAMPLE_RATE || '1.0'),
|
|
151
|
+
});
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## License
|
|
155
|
+
|
|
156
|
+
MIT
|
package/dist/agent.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AgentConfig, Span, Transaction, LogEntry, ErrorData } from './types';
|
|
2
|
+
export declare class Agent {
|
|
3
|
+
private config;
|
|
4
|
+
private apiClient;
|
|
5
|
+
private spanBuffer;
|
|
6
|
+
private transactionBuffer;
|
|
7
|
+
private logBuffer;
|
|
8
|
+
private errorBuffer;
|
|
9
|
+
private flushTimer?;
|
|
10
|
+
private initialized;
|
|
11
|
+
constructor(config: AgentConfig);
|
|
12
|
+
start(): Promise<void>;
|
|
13
|
+
stop(): Promise<void>;
|
|
14
|
+
private initHttpInstrumentation;
|
|
15
|
+
private sendServiceMetadata;
|
|
16
|
+
reportSpan(span: Span): void;
|
|
17
|
+
reportTransaction(transaction: Transaction): void;
|
|
18
|
+
reportLog(log: LogEntry): void;
|
|
19
|
+
reportError(error: ErrorData): void;
|
|
20
|
+
flush(): Promise<void>;
|
|
21
|
+
getConfig(): AgentConfig;
|
|
22
|
+
shouldSample(): boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function init(config: AgentConfig): Agent;
|
|
25
|
+
export declare function getAgent(): Agent | null;
|
|
26
|
+
export declare function startAgent(): Promise<void>;
|
|
27
|
+
export declare function stopAgent(): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQ9E,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,WAAW;IAgCzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAuBb,uBAAuB;YAYvB,mBAAmB;IAuBjC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAa5B,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAajD,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;IAa9B,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAa7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B,SAAS,IAAI,WAAW;IAOxB,YAAY,IAAI,OAAO;CAGxB;AAUD,wBAAgB,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAQ/C;AAKD,wBAAgB,QAAQ,IAAI,KAAK,GAAG,IAAI,CAEvC;AAKD,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAKhD;AAKD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/C"}
|
package/dist/agent.js
ADDED
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.Agent = void 0;
|
|
37
|
+
exports.init = init;
|
|
38
|
+
exports.getAgent = getAgent;
|
|
39
|
+
exports.startAgent = startAgent;
|
|
40
|
+
exports.stopAgent = stopAgent;
|
|
41
|
+
const api_client_1 = require("./api-client");
|
|
42
|
+
const id_generator_1 = require("./utils/id-generator");
|
|
43
|
+
class Agent {
|
|
44
|
+
constructor(config) {
|
|
45
|
+
this.spanBuffer = [];
|
|
46
|
+
this.transactionBuffer = [];
|
|
47
|
+
this.logBuffer = [];
|
|
48
|
+
this.errorBuffer = [];
|
|
49
|
+
this.initialized = false;
|
|
50
|
+
this.config = {
|
|
51
|
+
enabled: true,
|
|
52
|
+
sampleRate: 1.0,
|
|
53
|
+
instrumentHttp: true,
|
|
54
|
+
instrumentExpress: true,
|
|
55
|
+
batchSize: 100,
|
|
56
|
+
flushInterval: 10000,
|
|
57
|
+
debug: false,
|
|
58
|
+
...config,
|
|
59
|
+
};
|
|
60
|
+
if (!this.config.enabled) {
|
|
61
|
+
console.log('[DevSkin Agent] Agent is disabled');
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (!this.config.serverUrl || !this.config.apiKey || !this.config.serviceName) {
|
|
65
|
+
throw new Error('[DevSkin Agent] serverUrl, apiKey, and serviceName are required');
|
|
66
|
+
}
|
|
67
|
+
this.apiClient = new api_client_1.ApiClient(this.config.serverUrl, this.config.apiKey, this.config.serviceName, this.config.debug);
|
|
68
|
+
}
|
|
69
|
+
async start() {
|
|
70
|
+
if (!this.config.enabled)
|
|
71
|
+
return;
|
|
72
|
+
if (this.initialized)
|
|
73
|
+
return;
|
|
74
|
+
this.initialized = true;
|
|
75
|
+
if (this.config.debug) {
|
|
76
|
+
console.log('[DevSkin Agent] Starting agent for service:', this.config.serviceName);
|
|
77
|
+
}
|
|
78
|
+
this.flushTimer = setInterval(() => {
|
|
79
|
+
this.flush();
|
|
80
|
+
}, this.config.flushInterval);
|
|
81
|
+
await this.sendServiceMetadata();
|
|
82
|
+
if (this.config.instrumentHttp) {
|
|
83
|
+
await this.initHttpInstrumentation();
|
|
84
|
+
}
|
|
85
|
+
if (this.config.debug) {
|
|
86
|
+
console.log('[DevSkin Agent] Agent started successfully');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async stop() {
|
|
90
|
+
if (!this.config.enabled)
|
|
91
|
+
return;
|
|
92
|
+
if (this.config.debug) {
|
|
93
|
+
console.log('[DevSkin Agent] Stopping agent...');
|
|
94
|
+
}
|
|
95
|
+
if (this.flushTimer) {
|
|
96
|
+
clearInterval(this.flushTimer);
|
|
97
|
+
}
|
|
98
|
+
await this.flush();
|
|
99
|
+
this.initialized = false;
|
|
100
|
+
if (this.config.debug) {
|
|
101
|
+
console.log('[DevSkin Agent] Agent stopped');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async initHttpInstrumentation() {
|
|
105
|
+
try {
|
|
106
|
+
const { instrumentHttp } = await Promise.resolve().then(() => __importStar(require('./instrumentation/http')));
|
|
107
|
+
instrumentHttp(this);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error('[DevSkin Agent] Failed to initialize HTTP instrumentation:', error.message);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
async sendServiceMetadata() {
|
|
114
|
+
try {
|
|
115
|
+
await this.apiClient.sendServiceMetadata({
|
|
116
|
+
service_version: this.config.serviceVersion,
|
|
117
|
+
environment: this.config.environment,
|
|
118
|
+
language: 'node.js',
|
|
119
|
+
language_version: process.version,
|
|
120
|
+
metadata: {
|
|
121
|
+
platform: process.platform,
|
|
122
|
+
arch: process.arch,
|
|
123
|
+
node_version: process.version,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (this.config.debug) {
|
|
129
|
+
console.error('[DevSkin Agent] Failed to send service metadata:', error.message);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
reportSpan(span) {
|
|
134
|
+
if (!this.config.enabled)
|
|
135
|
+
return;
|
|
136
|
+
this.spanBuffer.push(span);
|
|
137
|
+
if (this.spanBuffer.length >= this.config.batchSize) {
|
|
138
|
+
this.flush();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
reportTransaction(transaction) {
|
|
142
|
+
if (!this.config.enabled)
|
|
143
|
+
return;
|
|
144
|
+
this.transactionBuffer.push(transaction);
|
|
145
|
+
if (this.transactionBuffer.length >= this.config.batchSize) {
|
|
146
|
+
this.flush();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
reportLog(log) {
|
|
150
|
+
if (!this.config.enabled)
|
|
151
|
+
return;
|
|
152
|
+
this.logBuffer.push(log);
|
|
153
|
+
if (this.logBuffer.length >= this.config.batchSize) {
|
|
154
|
+
this.flush();
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
reportError(error) {
|
|
158
|
+
if (!this.config.enabled)
|
|
159
|
+
return;
|
|
160
|
+
this.errorBuffer.push(error);
|
|
161
|
+
if (this.errorBuffer.length >= this.config.batchSize) {
|
|
162
|
+
this.flush();
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
async flush() {
|
|
166
|
+
if (!this.config.enabled)
|
|
167
|
+
return;
|
|
168
|
+
const spans = [...this.spanBuffer];
|
|
169
|
+
const transactions = [...this.transactionBuffer];
|
|
170
|
+
const logs = [...this.logBuffer];
|
|
171
|
+
const errors = [...this.errorBuffer];
|
|
172
|
+
this.spanBuffer = [];
|
|
173
|
+
this.transactionBuffer = [];
|
|
174
|
+
this.logBuffer = [];
|
|
175
|
+
this.errorBuffer = [];
|
|
176
|
+
try {
|
|
177
|
+
await Promise.all([
|
|
178
|
+
this.apiClient.sendSpans(spans),
|
|
179
|
+
this.apiClient.sendTransactions(transactions),
|
|
180
|
+
this.apiClient.sendLogs(logs),
|
|
181
|
+
this.apiClient.sendErrors(errors),
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
if (this.config.debug) {
|
|
186
|
+
console.error('[DevSkin Agent] Failed to flush data:', error.message);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
getConfig() {
|
|
191
|
+
return this.config;
|
|
192
|
+
}
|
|
193
|
+
shouldSample() {
|
|
194
|
+
return (0, id_generator_1.shouldSample)(this.config.sampleRate || 1.0);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
exports.Agent = Agent;
|
|
198
|
+
let globalAgent = null;
|
|
199
|
+
function init(config) {
|
|
200
|
+
if (globalAgent) {
|
|
201
|
+
console.warn('[DevSkin Agent] Agent already initialized');
|
|
202
|
+
return globalAgent;
|
|
203
|
+
}
|
|
204
|
+
globalAgent = new Agent(config);
|
|
205
|
+
return globalAgent;
|
|
206
|
+
}
|
|
207
|
+
function getAgent() {
|
|
208
|
+
return globalAgent;
|
|
209
|
+
}
|
|
210
|
+
async function startAgent() {
|
|
211
|
+
if (!globalAgent) {
|
|
212
|
+
throw new Error('[DevSkin Agent] Agent not initialized. Call init() first.');
|
|
213
|
+
}
|
|
214
|
+
await globalAgent.start();
|
|
215
|
+
}
|
|
216
|
+
async function stopAgent() {
|
|
217
|
+
if (globalAgent) {
|
|
218
|
+
await globalAgent.stop();
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Span, Transaction, LogEntry, ErrorData } from './types';
|
|
2
|
+
export declare class ApiClient {
|
|
3
|
+
private client;
|
|
4
|
+
private apiKey;
|
|
5
|
+
private serviceName;
|
|
6
|
+
private debug;
|
|
7
|
+
constructor(serverUrl: string, apiKey: string, serviceName: string, debug?: boolean);
|
|
8
|
+
sendSpans(spans: Span[]): Promise<void>;
|
|
9
|
+
sendTransactions(transactions: Transaction[]): Promise<void>;
|
|
10
|
+
sendLogs(logs: LogEntry[]): Promise<void>;
|
|
11
|
+
sendErrors(errors: ErrorData[]): Promise<void>;
|
|
12
|
+
sendServiceMetadata(metadata: Record<string, any>): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAKjE,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAU;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,UAAQ;IAkB3E,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBvC,gBAAgB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB5D,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzC,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB9C,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAcxE"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ApiClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
class ApiClient {
|
|
9
|
+
constructor(serverUrl, apiKey, serviceName, debug = false) {
|
|
10
|
+
this.apiKey = apiKey;
|
|
11
|
+
this.serviceName = serviceName;
|
|
12
|
+
this.debug = debug;
|
|
13
|
+
this.client = axios_1.default.create({
|
|
14
|
+
baseURL: serverUrl,
|
|
15
|
+
timeout: 30000,
|
|
16
|
+
headers: {
|
|
17
|
+
'Content-Type': 'application/json',
|
|
18
|
+
'X-DevSkin-API-Key': apiKey,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async sendSpans(spans) {
|
|
23
|
+
if (spans.length === 0)
|
|
24
|
+
return;
|
|
25
|
+
try {
|
|
26
|
+
if (this.debug) {
|
|
27
|
+
console.log(`[DevSkin Agent] Sending ${spans.length} spans`);
|
|
28
|
+
}
|
|
29
|
+
await this.client.post('/api/v1/apm/spans', {
|
|
30
|
+
service_name: this.serviceName,
|
|
31
|
+
spans,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error('[DevSkin Agent] Failed to send spans:', error.message);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
async sendTransactions(transactions) {
|
|
39
|
+
if (transactions.length === 0)
|
|
40
|
+
return;
|
|
41
|
+
try {
|
|
42
|
+
if (this.debug) {
|
|
43
|
+
console.log(`[DevSkin Agent] Sending ${transactions.length} transactions`);
|
|
44
|
+
}
|
|
45
|
+
await this.client.post('/api/v1/apm/transactions', {
|
|
46
|
+
service_name: this.serviceName,
|
|
47
|
+
transactions,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
console.error('[DevSkin Agent] Failed to send transactions:', error.message);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async sendLogs(logs) {
|
|
55
|
+
if (logs.length === 0)
|
|
56
|
+
return;
|
|
57
|
+
try {
|
|
58
|
+
if (this.debug) {
|
|
59
|
+
console.log(`[DevSkin Agent] Sending ${logs.length} logs`);
|
|
60
|
+
}
|
|
61
|
+
await this.client.post('/api/v1/logs/batch', {
|
|
62
|
+
service_name: this.serviceName,
|
|
63
|
+
logs,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.error('[DevSkin Agent] Failed to send logs:', error.message);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async sendErrors(errors) {
|
|
71
|
+
if (errors.length === 0)
|
|
72
|
+
return;
|
|
73
|
+
try {
|
|
74
|
+
if (this.debug) {
|
|
75
|
+
console.log(`[DevSkin Agent] Sending ${errors.length} errors`);
|
|
76
|
+
}
|
|
77
|
+
await this.client.post('/api/v1/apm/errors', {
|
|
78
|
+
service_name: this.serviceName,
|
|
79
|
+
errors,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error('[DevSkin Agent] Failed to send errors:', error.message);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async sendServiceMetadata(metadata) {
|
|
87
|
+
try {
|
|
88
|
+
if (this.debug) {
|
|
89
|
+
console.log('[DevSkin Agent] Sending service metadata');
|
|
90
|
+
}
|
|
91
|
+
await this.client.post('/api/v1/apm/services', {
|
|
92
|
+
service_name: this.serviceName,
|
|
93
|
+
...metadata,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.error('[DevSkin Agent] Failed to send service metadata:', error.message);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.ApiClient = ApiClient;
|
|
102
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export * from './agent';
|
|
3
|
+
export * from './span';
|
|
4
|
+
export * from './api-client';
|
|
5
|
+
export * from './utils/context';
|
|
6
|
+
export * from './utils/id-generator';
|
|
7
|
+
export { expressMiddleware, expressErrorHandler } from './instrumentation/express';
|
|
8
|
+
export { init, getAgent, startAgent, stopAgent } from './agent';
|
|
9
|
+
export { SpanBuilder, TransactionBuilder } from './span';
|
|
10
|
+
export { Context } from './utils/context';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGnF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.Context = exports.TransactionBuilder = exports.SpanBuilder = exports.stopAgent = exports.startAgent = exports.getAgent = exports.init = exports.expressErrorHandler = exports.expressMiddleware = void 0;
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./agent"), exports);
|
|
20
|
+
__exportStar(require("./span"), exports);
|
|
21
|
+
__exportStar(require("./api-client"), exports);
|
|
22
|
+
__exportStar(require("./utils/context"), exports);
|
|
23
|
+
__exportStar(require("./utils/id-generator"), exports);
|
|
24
|
+
var express_1 = require("./instrumentation/express");
|
|
25
|
+
Object.defineProperty(exports, "expressMiddleware", { enumerable: true, get: function () { return express_1.expressMiddleware; } });
|
|
26
|
+
Object.defineProperty(exports, "expressErrorHandler", { enumerable: true, get: function () { return express_1.expressErrorHandler; } });
|
|
27
|
+
var agent_1 = require("./agent");
|
|
28
|
+
Object.defineProperty(exports, "init", { enumerable: true, get: function () { return agent_1.init; } });
|
|
29
|
+
Object.defineProperty(exports, "getAgent", { enumerable: true, get: function () { return agent_1.getAgent; } });
|
|
30
|
+
Object.defineProperty(exports, "startAgent", { enumerable: true, get: function () { return agent_1.startAgent; } });
|
|
31
|
+
Object.defineProperty(exports, "stopAgent", { enumerable: true, get: function () { return agent_1.stopAgent; } });
|
|
32
|
+
var span_1 = require("./span");
|
|
33
|
+
Object.defineProperty(exports, "SpanBuilder", { enumerable: true, get: function () { return span_1.SpanBuilder; } });
|
|
34
|
+
Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return span_1.TransactionBuilder; } });
|
|
35
|
+
var context_1 = require("./utils/context");
|
|
36
|
+
Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_1.Context; } });
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAoBA,0CAAwB;AACxB,0CAAwB;AACxB,yCAAuB;AACvB,+CAA6B;AAC7B,kDAAgC;AAChC,uDAAqC;AACrC,qDAAmF;AAA1E,4GAAA,iBAAiB,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAG/C,iCAAgE;AAAvD,6FAAA,IAAI,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,kGAAA,SAAS,OAAA;AAC9C,+BAAyD;AAAhD,mGAAA,WAAW,OAAA;AAAE,0GAAA,kBAAkB,OAAA;AACxC,2CAA0C;AAAjC,kGAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Request, Response, NextFunction } from 'express';
|
|
2
|
+
import { Agent } from '../agent';
|
|
3
|
+
export declare function expressMiddleware(agent: Agent): (req: Request, res: Response, next: NextFunction) => void;
|
|
4
|
+
export declare function expressErrorHandler(agent: Agent): (err: Error, req: Request, res: Response, next: NextFunction) => void;
|
|
5
|
+
//# sourceMappingURL=express.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/instrumentation/express.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAOjC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,IAGpC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UAgGxD;AAKD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,IACtC,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,UA6BpE"}
|