@comprehend/telemetry-node 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.
@@ -0,0 +1,110 @@
1
+ import { HrTime } from "@opentelemetry/api";
2
+ export type ObservationInputMessage = InitMessage | NewObservedEntityMessage | NewObservedInteractionMessage | ObservationMessage;
3
+ export type ObservationOutputMessage = InitAck | ObservedAck | ObservationsAck;
4
+ export interface InitMessage {
5
+ event: "init";
6
+ protocolVersion: 1;
7
+ token: string;
8
+ }
9
+ export interface NewObservedEntityMessage {
10
+ event: "new-entity";
11
+ type: string;
12
+ hash: string;
13
+ }
14
+ export interface NewObservedServiceMessage extends NewObservedEntityMessage {
15
+ type: "service";
16
+ name: string;
17
+ namespace?: string;
18
+ environment?: string;
19
+ }
20
+ export interface NewObservedHttpRouteMessage extends NewObservedEntityMessage {
21
+ type: "http-route";
22
+ parent: string;
23
+ method: string;
24
+ route: string;
25
+ }
26
+ export interface NewObservedDatabaseMessage extends NewObservedEntityMessage {
27
+ type: "database";
28
+ system: string;
29
+ name?: string;
30
+ host?: string;
31
+ port?: number;
32
+ }
33
+ export interface NewObservedHttpServiceMessage extends NewObservedEntityMessage {
34
+ type: "http-service";
35
+ protocol: string;
36
+ host: string;
37
+ port: number;
38
+ }
39
+ export interface NewObservedInteractionMessage {
40
+ event: "new-interaction";
41
+ type: string;
42
+ hash: string;
43
+ from: string;
44
+ to: string;
45
+ }
46
+ export interface NewObservedHttpRequestMessage extends NewObservedInteractionMessage {
47
+ type: "http-request";
48
+ }
49
+ export interface NewObservedDatabaseConnectionMessage extends NewObservedInteractionMessage {
50
+ type: "db-connection";
51
+ connection?: string;
52
+ user?: string;
53
+ }
54
+ export interface NewObservedDatabaseQueryMessage extends NewObservedInteractionMessage {
55
+ type: "db-query";
56
+ query: string;
57
+ selects?: string[];
58
+ inserts?: string[];
59
+ updates?: string[];
60
+ deletes?: string[];
61
+ }
62
+ export interface ObservationMessage {
63
+ event: "observations";
64
+ seq: number;
65
+ observations: Array<Observation>;
66
+ }
67
+ export interface Observation {
68
+ type: string;
69
+ subject: string;
70
+ timestamp: HrTime;
71
+ errorMessage?: string;
72
+ errorType?: string;
73
+ stack?: string;
74
+ }
75
+ export interface HttpClientObservation extends Observation {
76
+ type: "http-client";
77
+ path: string;
78
+ method: string;
79
+ duration: HrTime;
80
+ status?: number;
81
+ httpVersion?: string;
82
+ requestBytes?: number;
83
+ responseBytes?: number;
84
+ }
85
+ export interface HttpServerObservation extends Observation {
86
+ type: "http-server";
87
+ path: string;
88
+ status: number;
89
+ duration: HrTime;
90
+ httpVersion?: string;
91
+ requestBytes?: number;
92
+ responseBytes?: number;
93
+ userAgent?: string;
94
+ }
95
+ export interface DatabaseQueryObservation extends Observation {
96
+ type: "db-query";
97
+ duration: HrTime;
98
+ returnedRows?: number;
99
+ }
100
+ export interface InitAck {
101
+ type: "ack-authorized";
102
+ }
103
+ export interface ObservedAck {
104
+ type: "ack-observed";
105
+ hash: string;
106
+ }
107
+ export interface ObservationsAck {
108
+ type: "ack-observations";
109
+ seq: number;
110
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/jest.config.js ADDED
@@ -0,0 +1,11 @@
1
+ const { createDefaultPreset } = require("ts-jest");
2
+
3
+ const tsJestTransformCfg = createDefaultPreset().transform;
4
+
5
+ /** @type {import("jest").Config} **/
6
+ module.exports = {
7
+ testEnvironment: "node",
8
+ transform: {
9
+ ...tsJestTransformCfg,
10
+ },
11
+ };
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@comprehend/telemetry-node",
3
+ "version": "0.1.0",
4
+ "description": "Integration of comprehend.dev with OpenTelemetry in Node.js and similar environemnts.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "prepare": "npm run build",
10
+ "test": "jest"
11
+ },
12
+ "keywords": [],
13
+ "author": "Comprehend AB",
14
+ "license": "LicenseRef-Proprietary-Audit",
15
+ "private": false,
16
+ "dependencies": {
17
+ "@noble/hashes": "^1.8.0",
18
+ "ws": "^8.18.2"
19
+ },
20
+ "peerDependencies": {
21
+ "@opentelemetry/api": "^1.9.0",
22
+ "@opentelemetry/sdk-trace-base": "^2.0.1"
23
+ },
24
+ "devDependencies": {
25
+ "@opentelemetry/api": "^1.9.0",
26
+ "@opentelemetry/sdk-trace-base": "^2.0.1",
27
+ "@types/jest": "^29.5.14",
28
+ "@types/node": "^22.14.1",
29
+ "@types/ws": "^8.18.1",
30
+ "jest": "^29.7.0",
31
+ "ts-jest": "^29.3.4",
32
+ "ts-node": "^10.9.2",
33
+ "typescript": "^5.8.3"
34
+ }
35
+ }