@flowrensic/node 0.5.10 → 0.6.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/dist/cjs/client-interceptor.d.ts +2 -0
- package/dist/cjs/client-interceptor.d.ts.map +1 -1
- package/dist/cjs/client-interceptor.js +1 -1
- package/dist/cjs/client-interceptor.js.map +1 -1
- package/dist/cjs/client.d.ts +5 -3
- package/dist/cjs/client.d.ts.map +1 -1
- package/dist/cjs/client.js +4 -2
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/activity_metrics_pb.d.ts +43 -0
- package/dist/cjs/gen/flowrensic/v1/activity_metrics_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/activity_metrics_pb.js +18 -13
- package/dist/cjs/gen/flowrensic/v1/activity_metrics_pb.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/catalog_pb.d.ts +7 -0
- package/dist/cjs/gen/flowrensic/v1/catalog_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/catalog_pb.js +1 -1
- package/dist/cjs/gen/flowrensic/v1/catalog_pb.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/cost_pb.d.ts +20 -0
- package/dist/cjs/gen/flowrensic/v1/cost_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/cost_pb.js +1 -1
- package/dist/cjs/gen/flowrensic/v1/cost_pb.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/finding_pb.d.ts +104 -1
- package/dist/cjs/gen/flowrensic/v1/finding_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/finding_pb.js +43 -2
- package/dist/cjs/gen/flowrensic/v1/finding_pb.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/replay_pb.d.ts +6 -0
- package/dist/cjs/gen/flowrensic/v1/replay_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/replay_pb.js +1 -1
- package/dist/cjs/gen/flowrensic/v1/replay_pb.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/services_pb.d.ts +24 -2
- package/dist/cjs/gen/flowrensic/v1/services_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/services_pb.js +1 -1
- package/dist/cjs/gen/flowrensic/v1/services_pb.js.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/workflow_history_pb.d.ts +6 -0
- package/dist/cjs/gen/flowrensic/v1/workflow_history_pb.d.ts.map +1 -1
- package/dist/cjs/gen/flowrensic/v1/workflow_history_pb.js +1 -1
- package/dist/cjs/gen/flowrensic/v1/workflow_history_pb.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/replay.d.ts +4 -0
- package/dist/cjs/replay.d.ts.map +1 -1
- package/dist/cjs/replay.js +3 -2
- package/dist/cjs/replay.js.map +1 -1
- package/dist/cjs/sink.d.ts +22 -1
- package/dist/cjs/sink.d.ts.map +1 -1
- package/dist/cjs/sink.js +157 -24
- package/dist/cjs/sink.js.map +1 -1
- package/dist/cjs/telemetry.d.ts +8 -0
- package/dist/cjs/telemetry.d.ts.map +1 -1
- package/dist/cjs/telemetry.js +45 -27
- package/dist/cjs/telemetry.js.map +1 -1
- package/dist/esm/client-interceptor.d.ts +2 -0
- package/dist/esm/client-interceptor.d.ts.map +1 -1
- package/dist/esm/client-interceptor.js +1 -1
- package/dist/esm/client-interceptor.js.map +1 -1
- package/dist/esm/client.d.ts +5 -3
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +4 -3
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/activity_metrics_pb.d.ts +43 -0
- package/dist/esm/gen/flowrensic/v1/activity_metrics_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/activity_metrics_pb.js +17 -12
- package/dist/esm/gen/flowrensic/v1/activity_metrics_pb.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/catalog_pb.d.ts +7 -0
- package/dist/esm/gen/flowrensic/v1/catalog_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/catalog_pb.js +1 -1
- package/dist/esm/gen/flowrensic/v1/catalog_pb.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/cost_pb.d.ts +20 -0
- package/dist/esm/gen/flowrensic/v1/cost_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/cost_pb.js +1 -1
- package/dist/esm/gen/flowrensic/v1/cost_pb.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/finding_pb.d.ts +104 -1
- package/dist/esm/gen/flowrensic/v1/finding_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/finding_pb.js +42 -1
- package/dist/esm/gen/flowrensic/v1/finding_pb.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/replay_pb.d.ts +6 -0
- package/dist/esm/gen/flowrensic/v1/replay_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/replay_pb.js +1 -1
- package/dist/esm/gen/flowrensic/v1/replay_pb.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/services_pb.d.ts +24 -2
- package/dist/esm/gen/flowrensic/v1/services_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/services_pb.js +1 -1
- package/dist/esm/gen/flowrensic/v1/services_pb.js.map +1 -1
- package/dist/esm/gen/flowrensic/v1/workflow_history_pb.d.ts +6 -0
- package/dist/esm/gen/flowrensic/v1/workflow_history_pb.d.ts.map +1 -1
- package/dist/esm/gen/flowrensic/v1/workflow_history_pb.js +1 -1
- package/dist/esm/gen/flowrensic/v1/workflow_history_pb.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/replay.d.ts +4 -0
- package/dist/esm/replay.d.ts.map +1 -1
- package/dist/esm/replay.js +3 -2
- package/dist/esm/replay.js.map +1 -1
- package/dist/esm/sink.d.ts +22 -1
- package/dist/esm/sink.d.ts.map +1 -1
- package/dist/esm/sink.js +158 -25
- package/dist/esm/sink.js.map +1 -1
- package/dist/esm/telemetry.d.ts +8 -0
- package/dist/esm/telemetry.d.ts.map +1 -1
- package/dist/esm/telemetry.js +45 -27
- package/dist/esm/telemetry.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/sink.js
CHANGED
|
@@ -1,46 +1,179 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createAttemptSink = createAttemptSink;
|
|
4
|
+
const node_os_1 = require("node:os");
|
|
4
5
|
const connect_1 = require("@connectrpc/connect");
|
|
5
6
|
const connect_node_1 = require("@connectrpc/connect-node");
|
|
7
|
+
const client_js_1 = require("./client.js");
|
|
6
8
|
const services_pb_js_1 = require("./gen/flowrensic/v1/services_pb.js");
|
|
9
|
+
function add(counts, env, n) {
|
|
10
|
+
const now = (counts.get(env) ?? 0) + n;
|
|
11
|
+
if (now === 0)
|
|
12
|
+
counts.delete(env);
|
|
13
|
+
else
|
|
14
|
+
counts.set(env, now);
|
|
15
|
+
}
|
|
7
16
|
function createAttemptSink(options) {
|
|
8
|
-
const { baseUrl, batchSize = 64, flushIntervalMs = 1000 } = options;
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
const { baseUrl, batchSize = 64, flushIntervalMs = 1000, sendTimeoutMs = 5000, maxWaiting = 10_000, maxBatchSize = 500, } = options;
|
|
18
|
+
const workerId = options.workerId ?? `${(0, node_os_1.hostname)()}-${String(process.pid)}`;
|
|
19
|
+
const ingest = (0, connect_1.createClient)(services_pb_js_1.IngestService, (0, connect_node_1.createConnectTransport)({
|
|
20
|
+
baseUrl,
|
|
21
|
+
httpVersion: '1.1',
|
|
22
|
+
interceptors: options.envKey === undefined ? [] : [(0, client_js_1.envKeyInterceptor)(options.envKey)],
|
|
23
|
+
}));
|
|
24
|
+
// The waiting attempts, oldest first, from head on.
|
|
25
|
+
let queue = [];
|
|
26
|
+
let head = 0;
|
|
27
|
+
const waitingByEnv = new Map();
|
|
28
|
+
// Counted since the last report that was answered.
|
|
29
|
+
const dropped = new Map();
|
|
30
|
+
const timedOut = new Map();
|
|
31
|
+
// The records waiting per env as the last answered report gave them.
|
|
32
|
+
let reportedWaiting = new Map();
|
|
33
|
+
let droppedTotal = 0;
|
|
34
|
+
let timedOutTotal = 0;
|
|
35
|
+
let sending;
|
|
36
|
+
let reporting;
|
|
37
|
+
let scheduled = false;
|
|
38
|
+
const waitingCount = () => queue.length - head;
|
|
39
|
+
const drop = (env, n) => {
|
|
40
|
+
add(dropped, env, n);
|
|
41
|
+
droppedTotal += n;
|
|
42
|
+
};
|
|
43
|
+
const take = (count) => {
|
|
44
|
+
const out = [];
|
|
45
|
+
for (let i = 0; i < count; i += 1) {
|
|
46
|
+
const one = queue[head];
|
|
47
|
+
queue[head] = undefined;
|
|
48
|
+
head += 1;
|
|
49
|
+
if (one === undefined)
|
|
50
|
+
continue;
|
|
51
|
+
add(waitingByEnv, one.env, -1);
|
|
52
|
+
out.push(one);
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
};
|
|
56
|
+
// The slots before head are given back once a batch leaves, never while a
|
|
57
|
+
// record is recorded.
|
|
58
|
+
const compact = () => {
|
|
59
|
+
if (head > 1024 && head * 2 > queue.length) {
|
|
60
|
+
queue = queue.slice(head);
|
|
61
|
+
head = 0;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
// One send at a time. Once it ends the next starts right away while records
|
|
65
|
+
// wait. A send that fails or times out is not sent again.
|
|
66
|
+
const startSend = () => {
|
|
67
|
+
if (sending !== undefined || waitingCount() === 0)
|
|
16
68
|
return;
|
|
17
|
-
|
|
69
|
+
const events = take(Math.min(maxBatchSize, waitingCount()));
|
|
70
|
+
compact();
|
|
71
|
+
sending = (async () => {
|
|
72
|
+
try {
|
|
73
|
+
await ingest.ingestActivityEvents({ events, workerId }, { timeoutMs: sendTimeoutMs });
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
const envs = new Set();
|
|
77
|
+
for (const one of events) {
|
|
78
|
+
drop(one.env, 1);
|
|
79
|
+
envs.add(one.env);
|
|
80
|
+
}
|
|
81
|
+
if (error instanceof connect_1.ConnectError && error.code === connect_1.Code.DeadlineExceeded) {
|
|
82
|
+
for (const env of envs)
|
|
83
|
+
add(timedOut, env, 1);
|
|
84
|
+
timedOutTotal += 1;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
sending = undefined;
|
|
89
|
+
startSend();
|
|
90
|
+
}
|
|
91
|
+
})();
|
|
18
92
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
93
|
+
const schedule = () => {
|
|
94
|
+
if (scheduled || sending !== undefined)
|
|
95
|
+
return;
|
|
96
|
+
scheduled = true;
|
|
97
|
+
setImmediate(() => {
|
|
98
|
+
scheduled = false;
|
|
99
|
+
startSend();
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
// At most one report at a time, and only when a count changed since the
|
|
103
|
+
// last report that was answered.
|
|
104
|
+
const report = () => {
|
|
105
|
+
if (reporting !== undefined)
|
|
106
|
+
return;
|
|
107
|
+
const envs = new Set([...dropped.keys(), ...timedOut.keys(), ...waitingByEnv.keys(), ...reportedWaiting.keys()]);
|
|
108
|
+
const changed = [...envs].some((env) => dropped.has(env) || timedOut.has(env) || (waitingByEnv.get(env) ?? 0) !== (reportedWaiting.get(env) ?? 0));
|
|
109
|
+
if (!changed)
|
|
110
|
+
return;
|
|
111
|
+
const sentDropped = new Map(dropped);
|
|
112
|
+
const sentTimedOut = new Map(timedOut);
|
|
113
|
+
const sentWaiting = new Map(waitingByEnv);
|
|
114
|
+
const reports = [...envs].map((env) => ({
|
|
115
|
+
$typeName: 'flowrensic.v1.WorkerBufferReport',
|
|
116
|
+
env,
|
|
117
|
+
recordsDropped: BigInt(sentDropped.get(env) ?? 0),
|
|
118
|
+
sendsTimedOut: BigInt(sentTimedOut.get(env) ?? 0),
|
|
119
|
+
recordsWaiting: BigInt(sentWaiting.get(env) ?? 0),
|
|
120
|
+
}));
|
|
121
|
+
reporting = (async () => {
|
|
122
|
+
try {
|
|
123
|
+
await ingest.ingestActivityEvents({ workerId, reports }, { timeoutMs: sendTimeoutMs });
|
|
124
|
+
for (const [env, n] of sentDropped)
|
|
125
|
+
add(dropped, env, -n);
|
|
126
|
+
for (const [env, n] of sentTimedOut)
|
|
127
|
+
add(timedOut, env, -n);
|
|
128
|
+
reportedWaiting = sentWaiting;
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// Kept, and sent again with what was counted since.
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
reporting = undefined;
|
|
135
|
+
}
|
|
136
|
+
})();
|
|
24
137
|
};
|
|
25
138
|
const timer = setInterval(() => {
|
|
26
|
-
|
|
139
|
+
startSend();
|
|
140
|
+
report();
|
|
27
141
|
}, flushIntervalMs);
|
|
28
142
|
timer.unref();
|
|
143
|
+
const flush = async () => {
|
|
144
|
+
for (;;) {
|
|
145
|
+
if (sending !== undefined)
|
|
146
|
+
await sending;
|
|
147
|
+
else if (waitingCount() > 0)
|
|
148
|
+
startSend();
|
|
149
|
+
else
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (reporting !== undefined)
|
|
153
|
+
await reporting;
|
|
154
|
+
report();
|
|
155
|
+
if (reporting !== undefined)
|
|
156
|
+
await reporting;
|
|
157
|
+
};
|
|
29
158
|
return {
|
|
30
159
|
record(attempt) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
160
|
+
queue.push(attempt);
|
|
161
|
+
add(waitingByEnv, attempt.env, 1);
|
|
162
|
+
if (waitingCount() > maxWaiting) {
|
|
163
|
+
const [oldest] = take(1);
|
|
164
|
+
if (oldest !== undefined)
|
|
165
|
+
drop(oldest.env, 1);
|
|
34
166
|
}
|
|
167
|
+
if (waitingCount() >= batchSize)
|
|
168
|
+
schedule();
|
|
35
169
|
},
|
|
36
|
-
|
|
37
|
-
await sendSafely();
|
|
38
|
-
await inFlight;
|
|
39
|
-
},
|
|
170
|
+
flush,
|
|
40
171
|
async close() {
|
|
41
172
|
clearInterval(timer);
|
|
42
|
-
await
|
|
43
|
-
|
|
173
|
+
await flush();
|
|
174
|
+
},
|
|
175
|
+
counts() {
|
|
176
|
+
return { dropped: droppedTotal, timedOut: timedOutTotal, waiting: waitingCount() };
|
|
44
177
|
},
|
|
45
178
|
};
|
|
46
179
|
}
|
package/dist/cjs/sink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/sink.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"sink.js","sourceRoot":"","sources":["../../src/sink.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAEnC,iDAAoF;AACpF,2DAAkE;AAGlE,2CAAgD;AAChD,uEAAmE;AAyCnE,SAAS,GAAG,CAAC,MAA2B,EAAE,GAAW,EAAE,CAAS;IAC9D,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,GAAG,KAAK,CAAC;QAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;QAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,2BAAkC,OAAoB;IACpD,MAAM,EACJ,OAAO,EACP,SAAS,GAAG,EAAE,EACd,eAAe,GAAG,IAAI,EACtB,aAAa,GAAG,IAAI,EACpB,UAAU,GAAG,MAAM,EACnB,YAAY,GAAG,GAAG,GACnB,GAAG,OAAO,CAAC;IACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,GAAG,IAAA,kBAAQ,GAAE,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5E,MAAM,MAAM,GAAiC,IAAA,sBAAY,EACvD,8BAAa,EACb,IAAA,qCAAsB,EAAC;QACrB,OAAO;QACP,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,6BAAiB,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACtF,CAAC,CACH,CAAC;IAEF,oDAAoD;IACpD,IAAI,KAAK,GAAoC,EAAE,CAAC;IAChD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,mDAAmD;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,qEAAqE;IACrE,IAAI,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,IAAI,OAAkC,CAAC;IACvC,IAAI,SAAoC,CAAC;IACzC,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;IAEvD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,CAAS,EAAQ,EAAE;QAC5C,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,YAAY,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,KAAa,EAAqB,EAAE;QAChD,MAAM,GAAG,GAAsB,EAAE,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACxB,IAAI,IAAI,CAAC,CAAC;YACV,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;IAEF,0EAA0E;IAC1E,sBAAsB;IACtB,MAAM,OAAO,GAAG,GAAS,EAAE;QACzB,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;IACH,CAAC,CAAC;IAEF,4EAA4E;IAC5E,0DAA0D;IAC1D,MAAM,SAAS,GAAG,GAAS,EAAE;QAC3B,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,EAAE,KAAK,CAAC;YAAE,OAAO;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;QACV,OAAO,GAAG,CAAC,KAAK,IAAmB,EAAE;YACnC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;YACxF,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,IAAI,KAAK,YAAY,sBAAY,IAAI,KAAK,CAAC,IAAI,KAAK,cAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1E,KAAK,MAAM,GAAG,IAAI,IAAI;wBAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC9C,aAAa,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,OAAO,GAAG,SAAS,CAAC;gBACpB,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,IAAI,SAAS,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAC/C,SAAS,GAAG,IAAI,CAAC;QACjB,YAAY,CAAC,GAAG,EAAE;YAChB,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,wEAAwE;IACxE,iCAAiC;IACjC,MAAM,MAAM,GAAG,GAAS,EAAE;QACxB,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjH,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAC5B,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CACnH,CAAC;QACF,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAyB,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5D,SAAS,EAAE,kCAAkC;YAC7C,GAAG;YACH,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,aAAa,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAClD,CAAC,CAAC,CAAC;QACJ,SAAS,GAAG,CAAC,KAAK,IAAmB,EAAE;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,oBAAoB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC;gBACvF,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,WAAW;oBAAE,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,YAAY;oBAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,eAAe,GAAG,WAAW,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;oBAAS,CAAC;gBACT,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC;IACX,CAAC,EAAE,eAAe,CAAC,CAAC;IACpB,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;QACtC,SAAS,CAAC;YACR,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,OAAO,CAAC;iBACpC,IAAI,YAAY,EAAE,GAAG,CAAC;gBAAE,SAAS,EAAE,CAAC;;gBACpC,MAAM;QACb,CAAC;QACD,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,SAAS,CAAC;QAC7C,MAAM,EAAE,CAAC;QACT,IAAI,SAAS,KAAK,SAAS;YAAE,MAAM,SAAS,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO;QACL,MAAM,CAAC,OAAO;YACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,YAAY,EAAE,GAAG,UAAU,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,MAAM,KAAK,SAAS;oBAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,YAAY,EAAE,IAAI,SAAS;gBAAE,QAAQ,EAAE,CAAC;QAC9C,CAAC;QACD,KAAK;QACL,KAAK,CAAC,KAAK;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,MAAM,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,MAAM;YACJ,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC;QACrF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/cjs/telemetry.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export interface EnvInstanceTelemetryOptions {
|
|
|
23
23
|
baseUrl: string;
|
|
24
24
|
/** The environment this worker runs in, as the Flowrensic env list names it. */
|
|
25
25
|
deployEnv: string;
|
|
26
|
+
/** The access key of that env, sent on every call to Flowrensic. */
|
|
27
|
+
envKey?: string;
|
|
26
28
|
/** Which run of that env this is, from the CI env. Left out, it has none. */
|
|
27
29
|
envInstanceId?: string;
|
|
28
30
|
/**
|
|
@@ -43,6 +45,12 @@ export interface EnvInstanceTelemetryOptions {
|
|
|
43
45
|
namespace: string;
|
|
44
46
|
/** Left out, fail. */
|
|
45
47
|
noAnswer?: NoAnswerStrategy;
|
|
48
|
+
/**
|
|
49
|
+
* How long one call to Flowrensic may take before it is given up, in
|
|
50
|
+
* milliseconds: the handshake, each forwarding call, the handover and each
|
|
51
|
+
* send of the sink. Left out, 5 seconds.
|
|
52
|
+
*/
|
|
53
|
+
sendTimeoutMs?: number;
|
|
46
54
|
}
|
|
47
55
|
export interface EnvInstanceTelemetry {
|
|
48
56
|
/** Whether the handshake told this worker to collect the engine's metrics. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AASA,OAAO,EAAqB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AASA,OAAO,EAAqB,KAAK,WAAW,EAAmB,MAAM,WAAW,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnF;IAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,GACxC;IAAE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAQ5C,MAAM,WAAW,2BAA2B;IAC1C,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+GAA+G;IAC/G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AA8BD;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,oBAAoB,CAAC,CAyJ/B"}
|
package/dist/cjs/telemetry.js
CHANGED
|
@@ -9,6 +9,8 @@ const client_js_1 = require("./client.js");
|
|
|
9
9
|
const sink_js_1 = require("./sink.js");
|
|
10
10
|
/** The interval a worker forwards on when no answer carried one, in seconds. */
|
|
11
11
|
const defaultIntervalSeconds = 5;
|
|
12
|
+
/** How long one call to Flowrensic may take when the options carry none, in milliseconds. */
|
|
13
|
+
const defaultSendTimeoutMs = 5000;
|
|
12
14
|
/** Runs the job and swallows what it throws. */
|
|
13
15
|
async function ignoringFailure(job) {
|
|
14
16
|
try {
|
|
@@ -48,13 +50,15 @@ async function startEnvInstanceTelemetry(options) {
|
|
|
48
50
|
const metricsAddress = options.metricsAddress ?? '';
|
|
49
51
|
const workerMetricsAddress = options.workerMetricsAddress ?? '';
|
|
50
52
|
const workerId = options.workerId ?? `${(0, node_os_1.hostname)()}-${String(process.pid)}`;
|
|
51
|
-
const
|
|
53
|
+
const timeoutMs = options.sendTimeoutMs ?? defaultSendTimeoutMs;
|
|
54
|
+
const keyed = options.envKey === undefined ? {} : { envKey: options.envKey };
|
|
55
|
+
const client = (0, client_js_1.createFlowrensicClient)(baseUrl, keyed);
|
|
52
56
|
const strategy = options.noAnswer ?? { strategy: 'fail' };
|
|
53
57
|
const attempts = strategy.strategy === 'retry' ? Math.max(1, strategy.attempts) : 1;
|
|
54
58
|
const handshake = async () => {
|
|
55
59
|
for (let attempt = 1;; attempt += 1) {
|
|
56
60
|
try {
|
|
57
|
-
return await client.ingest.envInstanceHandshake({ deployEnv, envInstanceId, metricsAddress });
|
|
61
|
+
return await client.ingest.envInstanceHandshake({ deployEnv, envInstanceId, metricsAddress }, { timeoutMs });
|
|
58
62
|
}
|
|
59
63
|
catch (error) {
|
|
60
64
|
if (strategy.strategy !== 'retry' || attempt >= attempts || !noAnswer(error))
|
|
@@ -86,7 +90,7 @@ async function startEnvInstanceTelemetry(options) {
|
|
|
86
90
|
const connection = await worker_1.NativeConnection.connect({ address: temporalAddress });
|
|
87
91
|
// The runs the interceptor saw, as run id to workflow id.
|
|
88
92
|
const seen = new Map();
|
|
89
|
-
const inner = (0, sink_js_1.createAttemptSink)({ baseUrl });
|
|
93
|
+
const inner = (0, sink_js_1.createAttemptSink)({ baseUrl, workerId, sendTimeoutMs: timeoutMs, ...keyed });
|
|
90
94
|
const sink = {
|
|
91
95
|
record(attempt) {
|
|
92
96
|
if (attempt.runKey !== '' && attempt.workflowExecutionId !== '') {
|
|
@@ -100,22 +104,27 @@ async function startEnvInstanceTelemetry(options) {
|
|
|
100
104
|
async close() {
|
|
101
105
|
await inner.close();
|
|
102
106
|
},
|
|
107
|
+
counts() {
|
|
108
|
+
return inner.counts();
|
|
109
|
+
},
|
|
103
110
|
};
|
|
104
|
-
|
|
105
|
-
|
|
111
|
+
// Each call has the timeout, and the signal of its tick, which shutdown
|
|
112
|
+
// aborts.
|
|
113
|
+
const scrape = async (signal) => {
|
|
114
|
+
const res = await fetch(`http://${metricsAddress}/metrics`, { signal: AbortSignal.any([signal, AbortSignal.timeout(timeoutMs)]) });
|
|
106
115
|
if (!res.ok)
|
|
107
116
|
throw new Error(`metrics endpoint returned ${res.status}`);
|
|
108
117
|
const exposition = await res.text();
|
|
109
|
-
await client.ingest.ingestEnvInstanceMetrics({ deployEnv, envInstanceId, exposition });
|
|
118
|
+
await client.ingest.ingestEnvInstanceMetrics({ deployEnv, envInstanceId, exposition }, { timeoutMs, signal });
|
|
110
119
|
};
|
|
111
|
-
const scrapeWorker = async () => {
|
|
112
|
-
const res = await fetch(`http://${workerMetricsAddress}/metrics
|
|
120
|
+
const scrapeWorker = async (signal) => {
|
|
121
|
+
const res = await fetch(`http://${workerMetricsAddress}/metrics`, { signal: AbortSignal.any([signal, AbortSignal.timeout(timeoutMs)]) });
|
|
113
122
|
if (!res.ok)
|
|
114
123
|
throw new Error(`worker metrics endpoint returned ${res.status}`);
|
|
115
124
|
const exposition = await res.text();
|
|
116
|
-
await client.ingest.ingestWorkerMetrics({ deployEnv, envInstanceId, workerId, exposition });
|
|
125
|
+
await client.ingest.ingestWorkerMetrics({ deployEnv, envInstanceId, workerId, exposition }, { timeoutMs, signal });
|
|
117
126
|
};
|
|
118
|
-
const forwardHistory = async (runId, workflowId) => {
|
|
127
|
+
const forwardHistory = async (runId, workflowId, signal) => {
|
|
119
128
|
const events = [];
|
|
120
129
|
let nextPageToken;
|
|
121
130
|
for (;;) {
|
|
@@ -136,30 +145,34 @@ async function startEnvInstanceTelemetry(options) {
|
|
|
136
145
|
envInstanceId,
|
|
137
146
|
runId,
|
|
138
147
|
raw: new TextEncoder().encode((0, proto_utils_js_1.historyToJSON)({ events })),
|
|
139
|
-
});
|
|
148
|
+
}, { timeoutMs, signal });
|
|
140
149
|
};
|
|
141
|
-
const collect = async () => {
|
|
150
|
+
const collect = async (signal) => {
|
|
142
151
|
if (forwarding)
|
|
143
|
-
await ignoringFailure(scrape);
|
|
152
|
+
await ignoringFailure(async () => { await scrape(signal); });
|
|
144
153
|
if (workerMetricsAddress !== '')
|
|
145
|
-
await ignoringFailure(scrapeWorker);
|
|
154
|
+
await ignoringFailure(async () => { await scrapeWorker(signal); });
|
|
146
155
|
for (const [runId, workflowId] of [...seen]) {
|
|
156
|
+
if (signal.aborted)
|
|
157
|
+
return;
|
|
147
158
|
await ignoringFailure(async () => {
|
|
148
|
-
await forwardHistory(runId, workflowId);
|
|
159
|
+
await forwardHistory(runId, workflowId, signal);
|
|
149
160
|
});
|
|
150
161
|
}
|
|
151
162
|
};
|
|
152
|
-
// One tick at a time: a tick
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
163
|
+
// One tick at a time: a tick that comes while the one before it still works
|
|
164
|
+
// is skipped, not queued.
|
|
165
|
+
let working;
|
|
166
|
+
const tick = () => {
|
|
167
|
+
if (working !== undefined)
|
|
168
|
+
return;
|
|
169
|
+
const stop = new AbortController();
|
|
170
|
+
const done = collect(stop.signal).finally(() => {
|
|
171
|
+
working = undefined;
|
|
172
|
+
});
|
|
173
|
+
working = { done, stop };
|
|
157
174
|
};
|
|
158
|
-
const timer = intervalSeconds > 0
|
|
159
|
-
? setInterval(() => {
|
|
160
|
-
void queue(collect);
|
|
161
|
-
}, intervalSeconds * 1000)
|
|
162
|
-
: undefined;
|
|
175
|
+
const timer = intervalSeconds > 0 ? setInterval(tick, intervalSeconds * 1000) : undefined;
|
|
163
176
|
timer?.unref();
|
|
164
177
|
return {
|
|
165
178
|
forwarding,
|
|
@@ -168,10 +181,15 @@ async function startEnvInstanceTelemetry(options) {
|
|
|
168
181
|
async shutdown() {
|
|
169
182
|
if (timer !== undefined)
|
|
170
183
|
clearInterval(timer);
|
|
171
|
-
|
|
184
|
+
// The tick at work is cut short, so the last one starts at once.
|
|
185
|
+
if (working !== undefined) {
|
|
186
|
+
working.stop.abort();
|
|
187
|
+
await working.done;
|
|
188
|
+
}
|
|
189
|
+
await collect(new AbortController().signal);
|
|
172
190
|
await sink.close();
|
|
173
191
|
await ignoringFailure(async () => {
|
|
174
|
-
await client.ingest.envInstanceHandover({ deployEnv, envInstanceId });
|
|
192
|
+
await client.ingest.envInstanceHandover({ deployEnv, envInstanceId }, { timeoutMs });
|
|
175
193
|
});
|
|
176
194
|
await connection.close();
|
|
177
195
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":";;;AAAA,qCAAmC;AAEnC,iDAAyD;AACzD,0EAAsE;AACtE,+CAAsD;AAEtD,2CAAqD;AAGrD,
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ export interface ClientInterceptorOptions {
|
|
|
5
5
|
baseUrl: string;
|
|
6
6
|
/** The Flowrensic namespace id of the namespace this client talks to, the same one the worker interceptor is given. */
|
|
7
7
|
namespaceId: string;
|
|
8
|
+
/** The access key of the env of that namespace, sent with every send. */
|
|
9
|
+
envKey?: string;
|
|
8
10
|
}
|
|
9
11
|
/**
|
|
10
12
|
* Sends every query that throws to Flowrensic, with the workflow it was for and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-interceptor.d.ts","sourceRoot":"","sources":["../../src/client-interceptor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAQ/C,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,uHAAuH;IACvH,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client-interceptor.d.ts","sourceRoot":"","sources":["../../src/client-interceptor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAQ/C,MAAM,WAAW,wBAAwB;IACvC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,uHAAuH;IACvH,WAAW,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAWD;;;;GAIG;AACH,qBAAa,2BAA4B,YAAW,yBAAyB;IAG/D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAE1C,YAA6B,OAAO,EAAE,wBAAwB,EAE7D;IAEK,KAAK,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvG;YAEa,IAAI;CAoBnB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,wBAAwB,GAAG,yBAAyB,CAExG"}
|
|
@@ -23,7 +23,7 @@ export class FlowrensicClientInterceptor {
|
|
|
23
23
|
client;
|
|
24
24
|
constructor(options) {
|
|
25
25
|
this.options = options;
|
|
26
|
-
this.client = createFlowrensicClient(options.baseUrl);
|
|
26
|
+
this.client = createFlowrensicClient(options.baseUrl, options.envKey === undefined ? {} : { envKey: options.envKey });
|
|
27
27
|
}
|
|
28
28
|
async query(input, next) {
|
|
29
29
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-interceptor.js","sourceRoot":"","sources":["../../src/client-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,sBAAsB,EAAyB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client-interceptor.js","sourceRoot":"","sources":["../../src/client-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,EAAE,sBAAsB,EAAyB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,iEAAiE;AACjE,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAW5B,SAAS,QAAQ,CAAC,GAAY;IAC5B,KAAK,IAAI,CAAC,GAAY,GAAG,EAAE,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAI,CAAyB,CAAC,KAAK,EAAE,CAAC;QAC/F,MAAM,IAAI,GAAI,CAAwB,CAAC,IAAI,CAAC;QAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,2BAA2B;IAGT,OAAO;IAFnB,MAAM,CAAmB;IAE1C,YAA6B,OAAiC;uBAAjC,OAAO;QAClC,IAAI,CAAC,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAyB,EAAE,IAA8C;QACnF,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC5B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,KAAyB,EAAE,GAAY;QACxD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBACzC,KAAK,EAAE;oBACL;wBACE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;wBACrC,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,UAAU;wBAC9C,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;wBAC1C,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM;wBAC1E,SAAS,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;wBAClE,OAAO,EAAE,iBAAiB,CAAC,IAAI,IAAI,EAAE,CAAC;qBACvC;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,OAAiC;IAC3E,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/esm/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Client } from '@connectrpc/connect';
|
|
1
|
+
import { type Client, type Interceptor } from '@connectrpc/connect';
|
|
2
2
|
import { CatalogService, IngestService, QueryService } from './gen/flowrensic/v1/services_pb.js';
|
|
3
3
|
export interface FlowrensicClient {
|
|
4
4
|
catalog: Client<typeof CatalogService>;
|
|
@@ -6,10 +6,12 @@ export interface FlowrensicClient {
|
|
|
6
6
|
query: Client<typeof QueryService>;
|
|
7
7
|
}
|
|
8
8
|
export interface FlowrensicClientOptions {
|
|
9
|
-
/** The access key of the env this client
|
|
9
|
+
/** The access key of the env this client sends data for. Every ingest call carries it. */
|
|
10
10
|
envKey?: string;
|
|
11
11
|
}
|
|
12
|
-
/** The header
|
|
12
|
+
/** The header every ingest call carries the env's access key in. */
|
|
13
13
|
export declare const ENV_KEY_HEADER = "Flowrensic-Env-Key";
|
|
14
|
+
/** Puts envKey on every call of IngestService. */
|
|
15
|
+
export declare function envKeyInterceptor(envKey: string): Interceptor;
|
|
14
16
|
export declare function createFlowrensicClient(baseUrl: string, options?: FlowrensicClientOptions): FlowrensicClient;
|
|
15
17
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/esm/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,oEAAoE;AACpE,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAEnD,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAK7D;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,gBAAgB,CAWlB"}
|
package/dist/esm/client.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { createClient } from '@connectrpc/connect';
|
|
2
2
|
import { createConnectTransport } from '@connectrpc/connect-node';
|
|
3
3
|
import { CatalogService, IngestService, QueryService } from './gen/flowrensic/v1/services_pb.js';
|
|
4
|
-
/** The header
|
|
4
|
+
/** The header every ingest call carries the env's access key in. */
|
|
5
5
|
export const ENV_KEY_HEADER = 'Flowrensic-Env-Key';
|
|
6
|
-
|
|
6
|
+
/** Puts envKey on every call of IngestService. */
|
|
7
|
+
export function envKeyInterceptor(envKey) {
|
|
7
8
|
return (next) => async (req) => {
|
|
8
|
-
if (req.
|
|
9
|
+
if (req.service.typeName === IngestService.typeName)
|
|
9
10
|
req.header.set(ENV_KEY_HEADER, envKey);
|
|
10
11
|
return await next(req);
|
|
11
12
|
};
|
package/dist/esm/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAajG,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAajG,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC;AAEnD,kDAAkD;AAClD,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC7B,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,aAAa,CAAC,QAAQ;YAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC5F,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,OAAO,GAA4B,EAAE;IAErC,MAAM,SAAS,GAAG,sBAAsB,CAAC;QACvC,OAAO;QACP,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACtF,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,SAAS,CAAC;QAChD,MAAM,EAAE,YAAY,CAAC,aAAa,EAAE,SAAS,CAAC;QAC9C,KAAK,EAAE,YAAY,CAAC,YAAY,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
|
|
@@ -226,12 +226,55 @@ export type IngestActivityEventsRequest = Message<"flowrensic.v1.IngestActivityE
|
|
|
226
226
|
* @generated from field: repeated flowrensic.v1.ActivityAttempt events = 1;
|
|
227
227
|
*/
|
|
228
228
|
events: ActivityAttempt[];
|
|
229
|
+
/**
|
|
230
|
+
* The worker that sends the call. The records waiting are kept per worker.
|
|
231
|
+
*
|
|
232
|
+
* @generated from field: string worker_id = 2;
|
|
233
|
+
*/
|
|
234
|
+
workerId: string;
|
|
235
|
+
/**
|
|
236
|
+
* What the worker's buffer dropped and timed out since its last report that
|
|
237
|
+
* was answered, and what waits in it now, one entry per env. A call that
|
|
238
|
+
* carries reports may carry no events.
|
|
239
|
+
*
|
|
240
|
+
* @generated from field: repeated flowrensic.v1.WorkerBufferReport reports = 3;
|
|
241
|
+
*/
|
|
242
|
+
reports: WorkerBufferReport[];
|
|
229
243
|
};
|
|
230
244
|
/**
|
|
231
245
|
* Describes the message flowrensic.v1.IngestActivityEventsRequest.
|
|
232
246
|
* Use `create(IngestActivityEventsRequestSchema)` to create a new message.
|
|
233
247
|
*/
|
|
234
248
|
export declare const IngestActivityEventsRequestSchema: GenMessage<IngestActivityEventsRequest>;
|
|
249
|
+
/**
|
|
250
|
+
* One env's counts of a worker's buffer. env is the env the records carry,
|
|
251
|
+
* empty for records that carry none.
|
|
252
|
+
*
|
|
253
|
+
* @generated from message flowrensic.v1.WorkerBufferReport
|
|
254
|
+
*/
|
|
255
|
+
export type WorkerBufferReport = Message<"flowrensic.v1.WorkerBufferReport"> & {
|
|
256
|
+
/**
|
|
257
|
+
* @generated from field: string env = 1;
|
|
258
|
+
*/
|
|
259
|
+
env: string;
|
|
260
|
+
/**
|
|
261
|
+
* @generated from field: int64 records_dropped = 2;
|
|
262
|
+
*/
|
|
263
|
+
recordsDropped: bigint;
|
|
264
|
+
/**
|
|
265
|
+
* @generated from field: int64 sends_timed_out = 3;
|
|
266
|
+
*/
|
|
267
|
+
sendsTimedOut: bigint;
|
|
268
|
+
/**
|
|
269
|
+
* @generated from field: int64 records_waiting = 4;
|
|
270
|
+
*/
|
|
271
|
+
recordsWaiting: bigint;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Describes the message flowrensic.v1.WorkerBufferReport.
|
|
275
|
+
* Use `create(WorkerBufferReportSchema)` to create a new message.
|
|
276
|
+
*/
|
|
277
|
+
export declare const WorkerBufferReportSchema: GenMessage<WorkerBufferReport>;
|
|
235
278
|
/**
|
|
236
279
|
* @generated from message flowrensic.v1.IngestActivityEventsResponse
|
|
237
280
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity_metrics_pb.d.ts","sourceRoot":"","sources":["../../../../../src/gen/flowrensic/v1/activity_metrics_pb.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAEjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,
|
|
1
|
+
{"version":3,"file":"activity_metrics_pb.d.ts","sourceRoot":"","sources":["../../../../../src/gen/flowrensic/v1/activity_metrics_pb.ts"],"names":[],"mappings":"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"}
|