@principal-ai/otel-collector-server 0.1.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.
Files changed (62) hide show
  1. package/README.md +252 -0
  2. package/dist/OTELCollectorServer.d.ts +52 -0
  3. package/dist/OTELCollectorServer.d.ts.map +1 -0
  4. package/dist/OTELCollectorServer.js +252 -0
  5. package/dist/OTELCollectorServer.js.map +1 -0
  6. package/dist/__tests__/fixtures/traces.d.ts +8 -0
  7. package/dist/__tests__/fixtures/traces.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/traces.js +186 -0
  9. package/dist/__tests__/fixtures/traces.js.map +1 -0
  10. package/dist/bin/otel-collector-server.d.ts +6 -0
  11. package/dist/bin/otel-collector-server.d.ts.map +1 -0
  12. package/dist/bin/otel-collector-server.js +132 -0
  13. package/dist/bin/otel-collector-server.js.map +1 -0
  14. package/dist/core/BinaryManager.d.ts +35 -0
  15. package/dist/core/BinaryManager.d.ts.map +1 -0
  16. package/dist/core/BinaryManager.js +143 -0
  17. package/dist/core/BinaryManager.js.map +1 -0
  18. package/dist/core/CollectorProcessManager.d.ts +60 -0
  19. package/dist/core/CollectorProcessManager.d.ts.map +1 -0
  20. package/dist/core/CollectorProcessManager.js +197 -0
  21. package/dist/core/CollectorProcessManager.js.map +1 -0
  22. package/dist/core/ConfigGenerator.d.ts +23 -0
  23. package/dist/core/ConfigGenerator.d.ts.map +1 -0
  24. package/dist/core/ConfigGenerator.js +115 -0
  25. package/dist/core/ConfigGenerator.js.map +1 -0
  26. package/dist/index.d.ts +20 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +31 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/output/ConsoleOutput.d.ts +24 -0
  31. package/dist/output/ConsoleOutput.d.ts.map +1 -0
  32. package/dist/output/ConsoleOutput.js +156 -0
  33. package/dist/output/ConsoleOutput.js.map +1 -0
  34. package/dist/output/FileOutput.d.ts +18 -0
  35. package/dist/output/FileOutput.d.ts.map +1 -0
  36. package/dist/output/FileOutput.js +88 -0
  37. package/dist/output/FileOutput.js.map +1 -0
  38. package/dist/output/MessagePortOutput.d.ts +19 -0
  39. package/dist/output/MessagePortOutput.d.ts.map +1 -0
  40. package/dist/output/MessagePortOutput.js +25 -0
  41. package/dist/output/MessagePortOutput.js.map +1 -0
  42. package/dist/output/TraceOutput.d.ts +13 -0
  43. package/dist/output/TraceOutput.d.ts.map +1 -0
  44. package/dist/output/TraceOutput.js +6 -0
  45. package/dist/output/TraceOutput.js.map +1 -0
  46. package/dist/router/PortRouter.d.ts +41 -0
  47. package/dist/router/PortRouter.d.ts.map +1 -0
  48. package/dist/router/PortRouter.js +130 -0
  49. package/dist/router/PortRouter.js.map +1 -0
  50. package/dist/server/OTLPForwardingServer.d.ts +59 -0
  51. package/dist/server/OTLPForwardingServer.d.ts.map +1 -0
  52. package/dist/server/OTLPForwardingServer.js +245 -0
  53. package/dist/server/OTLPForwardingServer.js.map +1 -0
  54. package/dist/shared/logger.d.ts +18 -0
  55. package/dist/shared/logger.d.ts.map +1 -0
  56. package/dist/shared/logger.js +59 -0
  57. package/dist/shared/logger.js.map +1 -0
  58. package/dist/shared/types.d.ts +47 -0
  59. package/dist/shared/types.d.ts.map +1 -0
  60. package/dist/shared/types.js +6 -0
  61. package/dist/shared/types.js.map +1 -0
  62. package/package.json +61 -0
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * Test fixtures for OTLP trace data
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createErrorTrace = exports.createNestedMockTrace = exports.createMockTrace = void 0;
7
+ const createMockTrace = (overrides) => {
8
+ return {
9
+ resourceSpans: [
10
+ {
11
+ resource: {
12
+ attributes: [
13
+ { key: 'service.name', value: { stringValue: 'test-service' } },
14
+ { key: 'service.version', value: { stringValue: '1.0.0' } },
15
+ { key: 'dev.server.url', value: { stringValue: 'http://localhost:3000' } },
16
+ ],
17
+ droppedAttributesCount: 0,
18
+ },
19
+ scopeSpans: [
20
+ {
21
+ scope: {
22
+ name: 'test-tracer',
23
+ version: '1.0.0',
24
+ },
25
+ spans: [
26
+ {
27
+ traceId: 'abc123',
28
+ spanId: 'def456',
29
+ name: 'HTTP GET /api/users',
30
+ kind: 2, // SERVER
31
+ startTimeUnixNano: '1737835200000000000',
32
+ endTimeUnixNano: '1737835200150000000',
33
+ attributes: [
34
+ { key: 'http.method', value: { stringValue: 'GET' } },
35
+ { key: 'http.status_code', value: { intValue: 200 } },
36
+ { key: 'http.route', value: { stringValue: '/api/users' } },
37
+ ],
38
+ droppedAttributesCount: 0,
39
+ events: [],
40
+ droppedEventsCount: 0,
41
+ links: [],
42
+ droppedLinksCount: 0,
43
+ status: {
44
+ code: 1, // OK
45
+ },
46
+ },
47
+ ],
48
+ },
49
+ ],
50
+ },
51
+ ],
52
+ ...overrides,
53
+ };
54
+ };
55
+ exports.createMockTrace = createMockTrace;
56
+ const createNestedMockTrace = () => {
57
+ return {
58
+ resourceSpans: [
59
+ {
60
+ resource: {
61
+ attributes: [
62
+ { key: 'service.name', value: { stringValue: 'web-ade' } },
63
+ { key: 'dev.server.url', value: { stringValue: 'http://localhost:3000' } },
64
+ ],
65
+ droppedAttributesCount: 0,
66
+ },
67
+ scopeSpans: [
68
+ {
69
+ scope: {
70
+ name: 'my-tracer',
71
+ },
72
+ spans: [
73
+ {
74
+ traceId: 'trace-123',
75
+ spanId: 'span-parent',
76
+ name: 'HTTP GET /api/users',
77
+ kind: 2, // SERVER
78
+ startTimeUnixNano: '1737835200000000000',
79
+ endTimeUnixNano: '1737835200045000000',
80
+ attributes: [
81
+ { key: 'http.method', value: { stringValue: 'GET' } },
82
+ { key: 'http.status_code', value: { intValue: 200 } },
83
+ ],
84
+ droppedAttributesCount: 0,
85
+ events: [],
86
+ droppedEventsCount: 0,
87
+ links: [],
88
+ droppedLinksCount: 0,
89
+ status: { code: 1 }, // OK
90
+ },
91
+ {
92
+ traceId: 'trace-123',
93
+ spanId: 'span-child-1',
94
+ parentSpanId: 'span-parent',
95
+ name: 'DB Query: SELECT * FROM users',
96
+ kind: 3, // CLIENT
97
+ startTimeUnixNano: '1737835200005000000',
98
+ endTimeUnixNano: '1737835200035000000',
99
+ attributes: [
100
+ { key: 'db.system', value: { stringValue: 'postgresql' } },
101
+ { key: 'db.statement', value: { stringValue: 'SELECT * FROM users' } },
102
+ ],
103
+ droppedAttributesCount: 0,
104
+ events: [],
105
+ droppedEventsCount: 0,
106
+ links: [],
107
+ droppedLinksCount: 0,
108
+ status: { code: 1 }, // OK
109
+ },
110
+ {
111
+ traceId: 'trace-123',
112
+ spanId: 'span-child-2',
113
+ parentSpanId: 'span-parent',
114
+ name: 'Cache lookup',
115
+ kind: 1, // INTERNAL
116
+ startTimeUnixNano: '1737835200036000000',
117
+ endTimeUnixNano: '1737835200038000000',
118
+ attributes: [],
119
+ droppedAttributesCount: 0,
120
+ events: [],
121
+ droppedEventsCount: 0,
122
+ links: [],
123
+ droppedLinksCount: 0,
124
+ status: { code: 1 }, // OK
125
+ },
126
+ ],
127
+ },
128
+ ],
129
+ },
130
+ ],
131
+ };
132
+ };
133
+ exports.createNestedMockTrace = createNestedMockTrace;
134
+ const createErrorTrace = () => {
135
+ return {
136
+ resourceSpans: [
137
+ {
138
+ resource: {
139
+ attributes: [
140
+ { key: 'service.name', value: { stringValue: 'error-service' } },
141
+ ],
142
+ droppedAttributesCount: 0,
143
+ },
144
+ scopeSpans: [
145
+ {
146
+ scope: { name: 'test' },
147
+ spans: [
148
+ {
149
+ traceId: 'error-trace',
150
+ spanId: 'error-span',
151
+ name: 'Failed operation',
152
+ kind: 1, // INTERNAL
153
+ startTimeUnixNano: '1737835200000000000',
154
+ endTimeUnixNano: '1737835200100000000',
155
+ attributes: [
156
+ { key: 'error', value: { boolValue: true } },
157
+ ],
158
+ droppedAttributesCount: 0,
159
+ events: [
160
+ {
161
+ timeUnixNano: '1737835200050000000',
162
+ name: 'exception',
163
+ attributes: [
164
+ { key: 'exception.type', value: { stringValue: 'Error' } },
165
+ { key: 'exception.message', value: { stringValue: 'Something went wrong' } },
166
+ ],
167
+ droppedAttributesCount: 0,
168
+ },
169
+ ],
170
+ droppedEventsCount: 0,
171
+ links: [],
172
+ droppedLinksCount: 0,
173
+ status: {
174
+ code: 2, // ERROR
175
+ message: 'Operation failed',
176
+ },
177
+ },
178
+ ],
179
+ },
180
+ ],
181
+ },
182
+ ],
183
+ };
184
+ };
185
+ exports.createErrorTrace = createErrorTrace;
186
+ //# sourceMappingURL=traces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traces.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/traces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for standalone OTEL Collector Server
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=otel-collector-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-collector-server.d.ts","sourceRoot":"","sources":["../../src/bin/otel-collector-server.ts"],"names":[],"mappings":";AAEA;;GAEG"}
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * CLI entry point for standalone OTEL Collector Server
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const OTELCollectorServer_1 = require("../OTELCollectorServer");
8
+ // Parse command line arguments
9
+ function parseArgs() {
10
+ const args = process.argv.slice(2);
11
+ const config = {
12
+ mode: 'standalone',
13
+ };
14
+ for (let i = 0; i < args.length; i++) {
15
+ const arg = args[i];
16
+ switch (arg) {
17
+ case '--port':
18
+ case '-p':
19
+ config.otlpPort = parseInt(args[++i], 10);
20
+ break;
21
+ case '--wrapper-port':
22
+ config.wrapperPort = parseInt(args[++i], 10);
23
+ break;
24
+ case '--output':
25
+ case '-o': {
26
+ const output = args[++i];
27
+ if (output !== 'console' && output !== 'file') {
28
+ console.error(`Invalid output: ${output}. Must be 'console' or 'file'`);
29
+ process.exit(1);
30
+ }
31
+ config.output = output;
32
+ break;
33
+ }
34
+ case '--file':
35
+ case '-f':
36
+ config.outputFile = args[++i];
37
+ config.output = 'file';
38
+ break;
39
+ case '--pretty':
40
+ config.prettyPrint = true;
41
+ break;
42
+ case '--no-pretty':
43
+ config.prettyPrint = false;
44
+ break;
45
+ case '--log-level':
46
+ case '-l': {
47
+ const level = args[++i];
48
+ if (!['debug', 'info', 'warn', 'error'].includes(level)) {
49
+ console.error(`Invalid log level: ${level}`);
50
+ process.exit(1);
51
+ }
52
+ config.logLevel = level;
53
+ break;
54
+ }
55
+ case '--version':
56
+ config.collectorVersion = args[++i];
57
+ break;
58
+ case '--help':
59
+ case '-h':
60
+ printHelp();
61
+ process.exit(0);
62
+ break;
63
+ default:
64
+ console.error(`Unknown argument: ${arg}`);
65
+ printHelp();
66
+ process.exit(1);
67
+ }
68
+ }
69
+ return config;
70
+ }
71
+ function printHelp() {
72
+ console.log(`
73
+ OpenTelemetry Collector Server - Standalone Mode
74
+
75
+ Usage: otel-collector-server [options]
76
+
77
+ Options:
78
+ -p, --port <port> OTLP endpoint port (default: 4318)
79
+ --wrapper-port <port> Wrapper HTTP port (default: 4319)
80
+ -o, --output <type> Output type: console | file (default: console)
81
+ -f, --file <path> Output file path (sets output to file)
82
+ --pretty Pretty print console output (default: true)
83
+ --no-pretty Disable pretty printing
84
+ -l, --log-level <level> Log level: debug | info | warn | error (default: info)
85
+ --version <version> Collector version (default: latest)
86
+ -h, --help Show this help message
87
+
88
+ Examples:
89
+ # Start with console output (pretty print)
90
+ otel-collector-server
91
+
92
+ # Start with file output
93
+ otel-collector-server --output file --file ./traces.jsonl
94
+
95
+ # Custom ports and debug logging
96
+ otel-collector-server --port 4318 --log-level debug
97
+
98
+ # Raw JSON console output
99
+ otel-collector-server --output console --no-pretty
100
+ `);
101
+ }
102
+ async function main() {
103
+ const config = parseArgs();
104
+ console.log('Starting OpenTelemetry Collector Server (Standalone Mode)\n');
105
+ const server = new OTELCollectorServer_1.OTELCollectorServer(config);
106
+ // Handle shutdown signals
107
+ const shutdown = async (signal) => {
108
+ console.log(`\nReceived ${signal}, shutting down gracefully...`);
109
+ await server.stop();
110
+ process.exit(0);
111
+ };
112
+ process.on('SIGINT', () => shutdown('SIGINT'));
113
+ process.on('SIGTERM', () => shutdown('SIGTERM'));
114
+ // Handle uncaught errors
115
+ process.on('uncaughtException', (err) => {
116
+ console.error('Uncaught exception:', err);
117
+ server.stop().finally(() => process.exit(1));
118
+ });
119
+ process.on('unhandledRejection', (err) => {
120
+ console.error('Unhandled rejection:', err);
121
+ server.stop().finally(() => process.exit(1));
122
+ });
123
+ try {
124
+ await server.start();
125
+ }
126
+ catch (err) {
127
+ console.error('Failed to start server:', err);
128
+ process.exit(1);
129
+ }
130
+ }
131
+ main();
132
+ //# sourceMappingURL=otel-collector-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel-collector-server.js","sourceRoot":"","sources":["../../src/bin/otel-collector-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * BinaryManager - Manages OpenTelemetry Collector binaries
3
+ */
4
+ import { Logger } from '../shared/logger';
5
+ import { BinaryInfo } from '../shared/types';
6
+ export declare class BinaryManager {
7
+ private logger;
8
+ private version;
9
+ private platform;
10
+ private arch;
11
+ private binaryName;
12
+ private customBinaryPath?;
13
+ constructor(version?: string, logger?: Logger, customBinaryPath?: string);
14
+ /**
15
+ * Ensure binary exists and is valid, return path
16
+ */
17
+ ensureBinary(): Promise<string>;
18
+ /**
19
+ * Get the expected binary path
20
+ */
21
+ getBinaryPath(): string;
22
+ /**
23
+ * Get binary info
24
+ */
25
+ getBinaryInfo(): BinaryInfo;
26
+ /**
27
+ * Validate binary exists and is executable
28
+ */
29
+ validateBinary(binaryPath: string): Promise<boolean>;
30
+ /**
31
+ * Make binary executable (Unix-like systems)
32
+ */
33
+ makeExecutable(binaryPath: string): Promise<void>;
34
+ }
35
+ //# sourceMappingURL=BinaryManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryManager.d.ts","sourceRoot":"","sources":["../../src/core/BinaryManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,MAAM,EAAgB,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAY7C,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM;IAwBxE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAcrC;;OAEG;IACH,aAAa,IAAI,MAAM;IAWvB;;OAEG;IACH,aAAa,IAAI,UAAU;IAS3B;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB1D;;OAEG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAaxD"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * BinaryManager - Manages OpenTelemetry Collector binaries
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.BinaryManager = void 0;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ const logger_1 = require("../shared/logger");
44
+ const DEFAULT_VERSION = 'v0.114.0';
45
+ const BINARY_NAMES = {
46
+ 'darwin-x64': 'otelcol_darwin_amd64',
47
+ 'darwin-arm64': 'otelcol_darwin_arm64',
48
+ 'linux-x64': 'otelcol_linux_amd64',
49
+ 'linux-arm64': 'otelcol_linux_arm64',
50
+ 'win32-x64': 'otelcol_windows_amd64.exe',
51
+ };
52
+ class BinaryManager {
53
+ constructor(version, logger, customBinaryPath) {
54
+ this.logger = logger || (0, logger_1.createLogger)('BinaryManager');
55
+ this.version = version || DEFAULT_VERSION;
56
+ this.platform = os.platform();
57
+ this.arch = os.arch();
58
+ this.customBinaryPath = customBinaryPath;
59
+ const platformKey = `${this.platform}-${this.arch}`;
60
+ this.binaryName = BINARY_NAMES[platformKey];
61
+ if (!this.binaryName && !customBinaryPath) {
62
+ throw new Error(`Unsupported platform: ${this.platform}-${this.arch}. ` +
63
+ `Supported: ${Object.keys(BINARY_NAMES).join(', ')}`);
64
+ }
65
+ if (customBinaryPath) {
66
+ this.logger.info(`Initialized with custom binary path: ${customBinaryPath}`);
67
+ }
68
+ else {
69
+ this.logger.info(`Initialized for ${platformKey}, version ${this.version}`);
70
+ }
71
+ }
72
+ /**
73
+ * Ensure binary exists and is valid, return path
74
+ */
75
+ async ensureBinary() {
76
+ const binaryPath = this.getBinaryPath();
77
+ if (await this.validateBinary(binaryPath)) {
78
+ this.logger.debug(`Binary found and valid: ${binaryPath}`);
79
+ return binaryPath;
80
+ }
81
+ throw new Error(`OpenTelemetry Collector binary not found at ${binaryPath}. ` +
82
+ `Please run 'npm run download-binaries' or bundle binaries with the package.`);
83
+ }
84
+ /**
85
+ * Get the expected binary path
86
+ */
87
+ getBinaryPath() {
88
+ // Use custom path if provided
89
+ if (this.customBinaryPath) {
90
+ return this.customBinaryPath;
91
+ }
92
+ // Look in binaries/ directory relative to this file
93
+ const binariesDir = path.join(__dirname, '../../binaries');
94
+ return path.join(binariesDir, this.binaryName);
95
+ }
96
+ /**
97
+ * Get binary info
98
+ */
99
+ getBinaryInfo() {
100
+ return {
101
+ path: this.getBinaryPath(),
102
+ version: this.version,
103
+ platform: this.platform,
104
+ arch: this.arch,
105
+ };
106
+ }
107
+ /**
108
+ * Validate binary exists and is executable
109
+ */
110
+ async validateBinary(binaryPath) {
111
+ try {
112
+ // Check if file exists
113
+ await fs.promises.access(binaryPath, fs.constants.F_OK);
114
+ // Check if executable (Unix-like systems)
115
+ if (this.platform !== 'win32') {
116
+ await fs.promises.access(binaryPath, fs.constants.X_OK);
117
+ }
118
+ return true;
119
+ }
120
+ catch (err) {
121
+ this.logger.debug(`Binary validation failed: ${err}`);
122
+ return false;
123
+ }
124
+ }
125
+ /**
126
+ * Make binary executable (Unix-like systems)
127
+ */
128
+ async makeExecutable(binaryPath) {
129
+ if (this.platform === 'win32') {
130
+ return; // Not needed on Windows
131
+ }
132
+ try {
133
+ await fs.promises.chmod(binaryPath, 0o755);
134
+ this.logger.debug(`Made binary executable: ${binaryPath}`);
135
+ }
136
+ catch (err) {
137
+ this.logger.error(`Failed to make binary executable: ${err}`);
138
+ throw err;
139
+ }
140
+ }
141
+ }
142
+ exports.BinaryManager = BinaryManager;
143
+ //# sourceMappingURL=BinaryManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BinaryManager.js","sourceRoot":"","sources":["../../src/core/BinaryManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * CollectorProcessManager - Manages OpenTelemetry Collector process lifecycle
3
+ */
4
+ import { EventEmitter } from 'events';
5
+ import { Logger } from '../shared/logger';
6
+ import { ProcessStats } from '../shared/types';
7
+ export interface ProcessManagerConfig {
8
+ binaryPath: string;
9
+ configPath: string;
10
+ maxRestartAttempts?: number;
11
+ restartDelay?: number;
12
+ healthCheckInterval?: number;
13
+ }
14
+ export declare class CollectorProcessManager extends EventEmitter {
15
+ private logger;
16
+ private config;
17
+ private collectorProcess;
18
+ private stats;
19
+ private startTime;
20
+ private restartCount;
21
+ private healthCheckTimer;
22
+ constructor(config: ProcessManagerConfig, logger?: Logger);
23
+ /**
24
+ * Start the collector process
25
+ */
26
+ start(): Promise<void>;
27
+ /**
28
+ * Stop the collector process
29
+ */
30
+ stop(): Promise<void>;
31
+ /**
32
+ * Check if collector is running
33
+ */
34
+ isRunning(): boolean;
35
+ /**
36
+ * Get process statistics
37
+ */
38
+ getStats(): ProcessStats;
39
+ /**
40
+ * Spawn the collector process
41
+ */
42
+ private spawnCollector;
43
+ /**
44
+ * Handle collector process exit
45
+ */
46
+ private handleExit;
47
+ /**
48
+ * Start health checks
49
+ */
50
+ private startHealthChecks;
51
+ /**
52
+ * Stop health checks
53
+ */
54
+ private stopHealthChecks;
55
+ /**
56
+ * Perform health check
57
+ */
58
+ private performHealthCheck;
59
+ }
60
+ //# sourceMappingURL=CollectorProcessManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectorProcessManager.d.ts","sourceRoot":"","sources":["../../src/core/CollectorProcessManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,MAAM,EAAgB,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAA+B;gBAE3C,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM;IAiBzD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B3B;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,QAAQ,IAAI,YAAY;IASxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsCtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAiB3B"}