@flowrensic/node 0.5.11 → 0.6.1
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/esm/telemetry.js
CHANGED
|
@@ -6,6 +6,8 @@ import { createFlowrensicClient } from './client.js';
|
|
|
6
6
|
import { createAttemptSink } from './sink.js';
|
|
7
7
|
/** The interval a worker forwards on when no answer carried one, in seconds. */
|
|
8
8
|
const defaultIntervalSeconds = 5;
|
|
9
|
+
/** How long one call to Flowrensic may take when the options carry none, in milliseconds. */
|
|
10
|
+
const defaultSendTimeoutMs = 5000;
|
|
9
11
|
/** Runs the job and swallows what it throws. */
|
|
10
12
|
async function ignoringFailure(job) {
|
|
11
13
|
try {
|
|
@@ -45,13 +47,15 @@ export async function startEnvInstanceTelemetry(options) {
|
|
|
45
47
|
const metricsAddress = options.metricsAddress ?? '';
|
|
46
48
|
const workerMetricsAddress = options.workerMetricsAddress ?? '';
|
|
47
49
|
const workerId = options.workerId ?? `${hostname()}-${String(process.pid)}`;
|
|
48
|
-
const
|
|
50
|
+
const timeoutMs = options.sendTimeoutMs ?? defaultSendTimeoutMs;
|
|
51
|
+
const keyed = options.envKey === undefined ? {} : { envKey: options.envKey };
|
|
52
|
+
const client = createFlowrensicClient(baseUrl, keyed);
|
|
49
53
|
const strategy = options.noAnswer ?? { strategy: 'fail' };
|
|
50
54
|
const attempts = strategy.strategy === 'retry' ? Math.max(1, strategy.attempts) : 1;
|
|
51
55
|
const handshake = async () => {
|
|
52
56
|
for (let attempt = 1;; attempt += 1) {
|
|
53
57
|
try {
|
|
54
|
-
return await client.ingest.envInstanceHandshake({ deployEnv, envInstanceId, metricsAddress });
|
|
58
|
+
return await client.ingest.envInstanceHandshake({ deployEnv, envInstanceId, metricsAddress }, { timeoutMs });
|
|
55
59
|
}
|
|
56
60
|
catch (error) {
|
|
57
61
|
if (strategy.strategy !== 'retry' || attempt >= attempts || !noAnswer(error))
|
|
@@ -83,7 +87,7 @@ export async function startEnvInstanceTelemetry(options) {
|
|
|
83
87
|
const connection = await NativeConnection.connect({ address: temporalAddress });
|
|
84
88
|
// The runs the interceptor saw, as run id to workflow id.
|
|
85
89
|
const seen = new Map();
|
|
86
|
-
const inner = createAttemptSink({ baseUrl });
|
|
90
|
+
const inner = createAttemptSink({ baseUrl, workerId, sendTimeoutMs: timeoutMs, ...keyed });
|
|
87
91
|
const sink = {
|
|
88
92
|
record(attempt) {
|
|
89
93
|
if (attempt.runKey !== '' && attempt.workflowExecutionId !== '') {
|
|
@@ -97,22 +101,27 @@ export async function startEnvInstanceTelemetry(options) {
|
|
|
97
101
|
async close() {
|
|
98
102
|
await inner.close();
|
|
99
103
|
},
|
|
104
|
+
counts() {
|
|
105
|
+
return inner.counts();
|
|
106
|
+
},
|
|
100
107
|
};
|
|
101
|
-
|
|
102
|
-
|
|
108
|
+
// Each call has the timeout, and the signal of its tick, which shutdown
|
|
109
|
+
// aborts.
|
|
110
|
+
const scrape = async (signal) => {
|
|
111
|
+
const res = await fetch(`http://${metricsAddress}/metrics`, { signal: AbortSignal.any([signal, AbortSignal.timeout(timeoutMs)]) });
|
|
103
112
|
if (!res.ok)
|
|
104
113
|
throw new Error(`metrics endpoint returned ${res.status}`);
|
|
105
114
|
const exposition = await res.text();
|
|
106
|
-
await client.ingest.ingestEnvInstanceMetrics({ deployEnv, envInstanceId, exposition });
|
|
115
|
+
await client.ingest.ingestEnvInstanceMetrics({ deployEnv, envInstanceId, exposition }, { timeoutMs, signal });
|
|
107
116
|
};
|
|
108
|
-
const scrapeWorker = async () => {
|
|
109
|
-
const res = await fetch(`http://${workerMetricsAddress}/metrics
|
|
117
|
+
const scrapeWorker = async (signal) => {
|
|
118
|
+
const res = await fetch(`http://${workerMetricsAddress}/metrics`, { signal: AbortSignal.any([signal, AbortSignal.timeout(timeoutMs)]) });
|
|
110
119
|
if (!res.ok)
|
|
111
120
|
throw new Error(`worker metrics endpoint returned ${res.status}`);
|
|
112
121
|
const exposition = await res.text();
|
|
113
|
-
await client.ingest.ingestWorkerMetrics({ deployEnv, envInstanceId, workerId, exposition });
|
|
122
|
+
await client.ingest.ingestWorkerMetrics({ deployEnv, envInstanceId, workerId, exposition }, { timeoutMs, signal });
|
|
114
123
|
};
|
|
115
|
-
const forwardHistory = async (runId, workflowId) => {
|
|
124
|
+
const forwardHistory = async (runId, workflowId, signal) => {
|
|
116
125
|
const events = [];
|
|
117
126
|
let nextPageToken;
|
|
118
127
|
for (;;) {
|
|
@@ -133,30 +142,34 @@ export async function startEnvInstanceTelemetry(options) {
|
|
|
133
142
|
envInstanceId,
|
|
134
143
|
runId,
|
|
135
144
|
raw: new TextEncoder().encode(historyToJSON({ events })),
|
|
136
|
-
});
|
|
145
|
+
}, { timeoutMs, signal });
|
|
137
146
|
};
|
|
138
|
-
const collect = async () => {
|
|
147
|
+
const collect = async (signal) => {
|
|
139
148
|
if (forwarding)
|
|
140
|
-
await ignoringFailure(scrape);
|
|
149
|
+
await ignoringFailure(async () => { await scrape(signal); });
|
|
141
150
|
if (workerMetricsAddress !== '')
|
|
142
|
-
await ignoringFailure(scrapeWorker);
|
|
151
|
+
await ignoringFailure(async () => { await scrapeWorker(signal); });
|
|
143
152
|
for (const [runId, workflowId] of [...seen]) {
|
|
153
|
+
if (signal.aborted)
|
|
154
|
+
return;
|
|
144
155
|
await ignoringFailure(async () => {
|
|
145
|
-
await forwardHistory(runId, workflowId);
|
|
156
|
+
await forwardHistory(runId, workflowId, signal);
|
|
146
157
|
});
|
|
147
158
|
}
|
|
148
159
|
};
|
|
149
|
-
// One tick at a time: a tick
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
160
|
+
// One tick at a time: a tick that comes while the one before it still works
|
|
161
|
+
// is skipped, not queued.
|
|
162
|
+
let working;
|
|
163
|
+
const tick = () => {
|
|
164
|
+
if (working !== undefined)
|
|
165
|
+
return;
|
|
166
|
+
const stop = new AbortController();
|
|
167
|
+
const done = collect(stop.signal).finally(() => {
|
|
168
|
+
working = undefined;
|
|
169
|
+
});
|
|
170
|
+
working = { done, stop };
|
|
154
171
|
};
|
|
155
|
-
const timer = intervalSeconds > 0
|
|
156
|
-
? setInterval(() => {
|
|
157
|
-
void queue(collect);
|
|
158
|
-
}, intervalSeconds * 1000)
|
|
159
|
-
: undefined;
|
|
172
|
+
const timer = intervalSeconds > 0 ? setInterval(tick, intervalSeconds * 1000) : undefined;
|
|
160
173
|
timer?.unref();
|
|
161
174
|
return {
|
|
162
175
|
forwarding,
|
|
@@ -165,10 +178,15 @@ export async function startEnvInstanceTelemetry(options) {
|
|
|
165
178
|
async shutdown() {
|
|
166
179
|
if (timer !== undefined)
|
|
167
180
|
clearInterval(timer);
|
|
168
|
-
|
|
181
|
+
// The tick at work is cut short, so the last one starts at once.
|
|
182
|
+
if (working !== undefined) {
|
|
183
|
+
working.stop.abort();
|
|
184
|
+
await working.done;
|
|
185
|
+
}
|
|
186
|
+
await collect(new AbortController().signal);
|
|
169
187
|
await sink.close();
|
|
170
188
|
await ignoringFailure(async () => {
|
|
171
|
-
await client.ingest.envInstanceHandover({ deployEnv, envInstanceId });
|
|
189
|
+
await client.ingest.envInstanceHandover({ deployEnv, envInstanceId }, { timeoutMs });
|
|
172
190
|
});
|
|
173
191
|
await connection.close();
|
|
174
192
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAGrD,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED