@mark1russell7/harness 0.15.0 → 0.15.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/build/index.d.ts +50 -1
- package/build/index.js +86 -18
- package/build/index.js.map +1 -1
- package/package.json +2 -2
package/build/index.d.ts
CHANGED
|
@@ -181,6 +181,35 @@ export declare const streamsLoadOf: (events: readonly ProbeEvent[], streams: rea
|
|
|
181
181
|
readonly pool: RunLoad;
|
|
182
182
|
readonly streams: Readonly<Record<string, RunLoad>>;
|
|
183
183
|
} | null;
|
|
184
|
+
/** This function gives the pool of some measures: it sums the counts and joins the times, in the order of the measures. */
|
|
185
|
+
export declare const poolOf: (measures: readonly RunLoad[]) => RunLoad & {
|
|
186
|
+
readonly failed: number;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* This time is the tolerance of a closed-loop estimate, in ms. A send later than its expected time
|
|
190
|
+
* by more than this tolerance is a pause of the client: a driver gap.
|
|
191
|
+
*/
|
|
192
|
+
export declare const CLOSED_TOLERANCE = 5;
|
|
193
|
+
/**
|
|
194
|
+
* A run estimate is the latency of the open loop that a closed-loop stream hid (SYS-91). The package
|
|
195
|
+
* rigor-chaos puts back each send that a stall or a pause of the client hid (`closedLoopPlan`).
|
|
196
|
+
* `hidden` counts those sends, and `driverGaps` counts the pauses of the client. Its times are in ms.
|
|
197
|
+
*/
|
|
198
|
+
type RunEstimate = LoadMeasure & {
|
|
199
|
+
readonly hidden: number;
|
|
200
|
+
readonly driverGaps: number;
|
|
201
|
+
readonly driverGapTotal: number;
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* This function gives the estimate of one closed-loop stream from its requests, in the order of their
|
|
205
|
+
* sends. Each time is a time of a line of the client. The client waits `interval` ms after each reply,
|
|
206
|
+
* thus the interval is also the pause of the driver. The function gives undefined for no request, and
|
|
207
|
+
* for a request with no reply before the last request.
|
|
208
|
+
*/
|
|
209
|
+
export declare const estimateOf: (requests: ReadonlyArray<{
|
|
210
|
+
readonly sent: number;
|
|
211
|
+
readonly done: number | null;
|
|
212
|
+
}>, end: number, interval: number) => RunEstimate | undefined;
|
|
184
213
|
/** A load spread is a part of the distribution of one measure of an open-loop cell, over its counted runs. */
|
|
185
214
|
interface LoadSpread {
|
|
186
215
|
readonly p50: Quantity;
|
|
@@ -224,6 +253,22 @@ export declare const loadVerdict: (prediction: LoadPrediction, runs: ReadonlyArr
|
|
|
224
253
|
readonly name: string;
|
|
225
254
|
readonly load: RunLoad | undefined;
|
|
226
255
|
}>) => LoadJudgement;
|
|
256
|
+
/**
|
|
257
|
+
* An estimate verdict sums the closed-loop estimates of a cell over its counted runs. Its latency
|
|
258
|
+
* is an estimate of the open loop, not a measure of it: a record of an open-loop client stays the
|
|
259
|
+
* better measure. Each hidden send after a request with no reply counts at its age at the end.
|
|
260
|
+
*/
|
|
261
|
+
interface EstimateVerdict {
|
|
262
|
+
readonly planned: number;
|
|
263
|
+
readonly hidden: number;
|
|
264
|
+
readonly driverGaps: number;
|
|
265
|
+
readonly driverGapTotal: Quantity;
|
|
266
|
+
readonly latency: LoadSpread | null;
|
|
267
|
+
/** This text gives the estimate in words, for the verdict of the cell. */
|
|
268
|
+
readonly words: string;
|
|
269
|
+
}
|
|
270
|
+
/** This function gives the estimate verdict of the counted runs, or undefined when no run has an estimate. */
|
|
271
|
+
export declare const estimateVerdict: (estimates: ReadonlyArray<RunEstimate | undefined>) => EstimateVerdict | undefined;
|
|
227
272
|
//#endregion
|
|
228
273
|
//#region src/driver.d.ts
|
|
229
274
|
/**
|
|
@@ -785,6 +830,8 @@ interface Verdict {
|
|
|
785
830
|
readonly reordering?: Reordering;
|
|
786
831
|
/** This record is the load of an open-loop cell over its counted runs. */
|
|
787
832
|
readonly load?: LoadVerdict;
|
|
833
|
+
/** This record is the estimate of the open loop of a closed-loop stream over its counted runs (SYS-91). */
|
|
834
|
+
readonly estimate?: EstimateVerdict;
|
|
788
835
|
/** This record is the time of the proxy of a calibration cell, in each direction. */
|
|
789
836
|
readonly proxy?: {
|
|
790
837
|
readonly hop: string;
|
|
@@ -974,6 +1021,8 @@ interface Measured {
|
|
|
974
1021
|
readonly samples?: readonly Quantity[];
|
|
975
1022
|
/** This measure is the run of an open-loop cell against its schedule (`Run.schedule`), with its failed replies. Its times are in ms. */
|
|
976
1023
|
readonly load?: RunLoad;
|
|
1024
|
+
/** This estimate is the open loop that a closed-loop stream of the client of the harness hid (SYS-91). Its times are in ms. */
|
|
1025
|
+
readonly estimate?: RunEstimate;
|
|
977
1026
|
/** This count is the number of keepalive probes that the kernel sent. */
|
|
978
1027
|
readonly probes: number;
|
|
979
1028
|
/** This count is the number of segments that the kernel sent again. */
|
|
@@ -2661,5 +2710,5 @@ export declare const spread: (runs: number, environments: number) => number[];
|
|
|
2661
2710
|
*/
|
|
2662
2711
|
export declare const runCell: (cell: Cell, say?: (line: string) => void) => Promise<CellResult>;
|
|
2663
2712
|
//#endregion
|
|
2664
|
-
export { type Agent, type BuildImage, type BuildRecord, CLIENT_CAPABILITIES, type CallReading, type Cell, type CellResult, type Client, type ClientCapability, type ClientImage, type ClockPair, type Cloud, type Cluster, type ClusterClientAt, type ClusterLab, type ClusterStage, type ConntrackPrediction, type ConntrackReading, type ContextFile, type CountBand, type Crossings, type Cut, type Decision, type Drill, type DriverBand, type DriverSocket, type DriverStep, type DriverStepTime, type ErrorOnTheWay, type Fabric, type FabricLab, type FabricManifest, type FabricParts, type Fault, type FaultPlace, type FaultSide, type Group, type GroupClient, type GroupLab, type GroupMeasured, type GroupNetworkFault, type GroupPlace, type GroupPrediction, type GroupReading, type GroupRole, type GroupVerdict, type GroupView, type Hop, type HopEvent, type HopPlace, type HopSignal, type HopWrite, type Host, type HostSetting, type HostSysctl, type HttpProbe, type ImagePlan, type ImageSource, type Interval, type Jitter, type Kafka, type KafkaLab, type KafkaMember, type KafkaPause, type KernelRecord, type Lab, type Layer, type LeafViews, type LineCount, type LineMatch, type LoadBand, type LoadJudgement, type LoadPlan, type LoadPrediction, type LoadSpread, type LoadStream, type LoadVerdict, type Manifest, type ManifestHop, type Measured, type MemberLine, type MiddleboxEvent, type MiddleboxExpectation, type MiddleboxForm, type NetworkFault, type NodeLine, type Observer, type OplogRead, type OplogTime, type Outcome, type Outcomes, type Pair, type PairSets, type Pairing, type PartitionView, type PauseBand, type PauseCommit, type PausePrediction, type PauseReading, type Pinnable, type PinnedImage, type PortsPrediction, type PortsReading, type Prediction, type Probe, type ProbeEvent, type ProgramEvent, type ProxyHop, type ProxyTime, type QueueBand, type QueueConnection, type QueueConnectionReading, type QueueEnd, type QueuePrediction, type QueueReading, type ReconnectReading, type ReconnectVerdict, type Reconnects, type RecordCode, type Recovers, type RecoveryMeasured, type Reference, type Reordering, type ReplicaSet, type ReplicaSetLab, type ReplicaSetStage, type Replies, type RequestPrediction, type RequestReading, type RouteLine, type RouterHop, type RttRange, type Run, type RunBackup, type RunDrill, type RunFabric, type RunGroup, type RunLoad, type RunPart, type RunPause, type RunRoute, type RunStream, type RunTopology, type SentinelEvent, type SentinelStage, type Shipped, type ShippedImage, type Sibling, type SocketPlace, type Spread, type Stage, type StageBand, type StageVerdict, type StallReading, type Stamp, type Status, type StatusRow, type Subject, type Substrate, type SubstrateSource, type Target, type Topology, type Toxic, type Verdict, type WallStamp, type Writes, type WsProbe, isHopPlace, latestEndOf };
|
|
2713
|
+
export { type Agent, type BuildImage, type BuildRecord, CLIENT_CAPABILITIES, type CallReading, type Cell, type CellResult, type Client, type ClientCapability, type ClientImage, type ClockPair, type Cloud, type Cluster, type ClusterClientAt, type ClusterLab, type ClusterStage, type ConntrackPrediction, type ConntrackReading, type ContextFile, type CountBand, type Crossings, type Cut, type Decision, type Drill, type DriverBand, type DriverSocket, type DriverStep, type DriverStepTime, type ErrorOnTheWay, type EstimateVerdict, type Fabric, type FabricLab, type FabricManifest, type FabricParts, type Fault, type FaultPlace, type FaultSide, type Group, type GroupClient, type GroupLab, type GroupMeasured, type GroupNetworkFault, type GroupPlace, type GroupPrediction, type GroupReading, type GroupRole, type GroupVerdict, type GroupView, type Hop, type HopEvent, type HopPlace, type HopSignal, type HopWrite, type Host, type HostSetting, type HostSysctl, type HttpProbe, type ImagePlan, type ImageSource, type Interval, type Jitter, type Kafka, type KafkaLab, type KafkaMember, type KafkaPause, type KernelRecord, type Lab, type Layer, type LeafViews, type LineCount, type LineMatch, type LoadBand, type LoadJudgement, type LoadPlan, type LoadPrediction, type LoadSpread, type LoadStream, type LoadVerdict, type Manifest, type ManifestHop, type Measured, type MemberLine, type MiddleboxEvent, type MiddleboxExpectation, type MiddleboxForm, type NetworkFault, type NodeLine, type Observer, type OplogRead, type OplogTime, type Outcome, type Outcomes, type Pair, type PairSets, type Pairing, type PartitionView, type PauseBand, type PauseCommit, type PausePrediction, type PauseReading, type Pinnable, type PinnedImage, type PortsPrediction, type PortsReading, type Prediction, type Probe, type ProbeEvent, type ProgramEvent, type ProxyHop, type ProxyTime, type QueueBand, type QueueConnection, type QueueConnectionReading, type QueueEnd, type QueuePrediction, type QueueReading, type ReconnectReading, type ReconnectVerdict, type Reconnects, type RecordCode, type Recovers, type RecoveryMeasured, type Reference, type Reordering, type ReplicaSet, type ReplicaSetLab, type ReplicaSetStage, type Replies, type RequestPrediction, type RequestReading, type RouteLine, type RouterHop, type RttRange, type Run, type RunBackup, type RunDrill, type RunEstimate, type RunFabric, type RunGroup, type RunLoad, type RunPart, type RunPause, type RunRoute, type RunStream, type RunTopology, type SentinelEvent, type SentinelStage, type Shipped, type ShippedImage, type Sibling, type SocketPlace, type Spread, type Stage, type StageBand, type StageVerdict, type StallReading, type Stamp, type Status, type StatusRow, type Subject, type Substrate, type SubstrateSource, type Target, type Topology, type Toxic, type Verdict, type WallStamp, type Writes, type WsProbe, isHopPlace, latestEndOf };
|
|
2665
2714
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { A as unlockedManifests, B as isHopPlace, C as programOf, D as subjectPr
|
|
|
2
2
|
import { quantity, valueIn } from "@mark1russell7/quantity";
|
|
3
3
|
import { median, medianInterval as medianInterval$1, quantile, quantileSorted } from "@mark1russell7/rigor-statistics";
|
|
4
4
|
import { rungVerdict } from "@mark1russell7/rigor-bench";
|
|
5
|
-
import { measureLoad, schedule, scheduleHeld } from "@mark1russell7/rigor-chaos";
|
|
5
|
+
import { closedLoopPlan, measureLoad, schedule, scheduleHeld } from "@mark1russell7/rigor-chaos";
|
|
6
6
|
import { createHash, randomBytes } from "node:crypto";
|
|
7
7
|
import { execFile } from "node:child_process";
|
|
8
8
|
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
@@ -99,21 +99,56 @@ const streamsLoadOf = (events, streams) => {
|
|
|
99
99
|
const start = events.find((event) => event.ev === "scheduled")?.t;
|
|
100
100
|
if (start === void 0) return null;
|
|
101
101
|
const each = streams.map((stream) => [stream.key, measureOf(events, start, stream.schedule, stream.key)]);
|
|
102
|
-
|
|
102
|
+
return {
|
|
103
|
+
pool: poolOf(each.map(([, measure]) => measure)),
|
|
104
|
+
streams: Object.fromEntries(each)
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
/** This function gives the pool of some measures: it sums the counts and joins the times, in the order of the measures. */
|
|
108
|
+
const poolOf = (measures) => {
|
|
103
109
|
const sum = (count) => measures.reduce((total, measure) => total + count(measure), 0);
|
|
104
110
|
const join = (times) => measures.flatMap(times);
|
|
105
111
|
return {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
planned: sum((measure) => measure.planned),
|
|
113
|
+
unsent: sum((measure) => measure.unsent),
|
|
114
|
+
unfinished: sum((measure) => measure.unfinished),
|
|
115
|
+
failed: sum((measure) => measure.failed ?? 0),
|
|
116
|
+
latency: join((measure) => measure.latency),
|
|
117
|
+
service: join((measure) => measure.service),
|
|
118
|
+
lag: join((measure) => measure.lag),
|
|
119
|
+
censored: join((measure) => measure.censored)
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* This time is the tolerance of a closed-loop estimate, in ms. A send later than its expected time
|
|
124
|
+
* by more than this tolerance is a pause of the client: a driver gap.
|
|
125
|
+
*/
|
|
126
|
+
const CLOSED_TOLERANCE = 5;
|
|
127
|
+
/**
|
|
128
|
+
* This function gives the estimate of one closed-loop stream from its requests, in the order of their
|
|
129
|
+
* sends. Each time is a time of a line of the client. The client waits `interval` ms after each reply,
|
|
130
|
+
* thus the interval is also the pause of the driver. The function gives undefined for no request, and
|
|
131
|
+
* for a request with no reply before the last request.
|
|
132
|
+
*/
|
|
133
|
+
const estimateOf = (requests, end, interval) => {
|
|
134
|
+
const start = requests[0]?.sent;
|
|
135
|
+
if (start === void 0 || requests.slice(0, -1).some((request) => request.done === null)) return void 0;
|
|
136
|
+
const loop = requests.map((request) => ({
|
|
137
|
+
sent: fromStart(start, request.sent),
|
|
138
|
+
done: request.done === null ? null : fromStart(start, request.done)
|
|
139
|
+
}));
|
|
140
|
+
const stop = Math.max(fromStart(start, end), ...loop.map((request) => request.done ?? request.sent), interval);
|
|
141
|
+
const run = closedLoopPlan(loop, {
|
|
142
|
+
interval,
|
|
143
|
+
end: stop,
|
|
144
|
+
tolerance: 5,
|
|
145
|
+
pause: interval
|
|
146
|
+
});
|
|
147
|
+
return {
|
|
148
|
+
...measureLoad(run.plan, run.completions, stop),
|
|
149
|
+
hidden: run.hidden,
|
|
150
|
+
driverGaps: run.driverGaps,
|
|
151
|
+
driverGapTotal: run.driverGapTotal
|
|
117
152
|
};
|
|
118
153
|
};
|
|
119
154
|
/** This function gives the spread of a list of times in ms, or null for no time. */
|
|
@@ -246,6 +281,28 @@ const loadVerdict = (prediction, runs) => {
|
|
|
246
281
|
}
|
|
247
282
|
};
|
|
248
283
|
};
|
|
284
|
+
/** This function gives the estimate verdict of the counted runs, or undefined when no run has an estimate. */
|
|
285
|
+
const estimateVerdict = (estimates) => {
|
|
286
|
+
const runs = estimates.filter((estimate) => estimate !== void 0);
|
|
287
|
+
if (runs.length === 0) return void 0;
|
|
288
|
+
const pool = poolOf(runs);
|
|
289
|
+
const total = (count) => runs.reduce((sum, estimate) => sum + count(estimate), 0);
|
|
290
|
+
const hidden = total((estimate) => estimate.hidden);
|
|
291
|
+
const driverGaps = total((estimate) => estimate.driverGaps);
|
|
292
|
+
const driverGapTotal = total((estimate) => estimate.driverGapTotal);
|
|
293
|
+
const latency = spreadOf$1([...pool.latency, ...pool.censored]);
|
|
294
|
+
const seconds = (time) => (valueIn(time, "ms") / 1e3).toFixed(3);
|
|
295
|
+
const spread = latency === null ? "no latency" : `median ${seconds(latency.p50)} s, p99 ${seconds(latency.p99)} s, slowest ${seconds(latency.max)} s`;
|
|
296
|
+
const gaps = driverGaps === 0 ? "no pause of the client" : `${driverGaps} pauses of the client, ${Math.round(driverGapTotal)} ms in all`;
|
|
297
|
+
return {
|
|
298
|
+
planned: pool.planned,
|
|
299
|
+
hidden,
|
|
300
|
+
driverGaps,
|
|
301
|
+
driverGapTotal: quantity(driverGapTotal, "ms"),
|
|
302
|
+
latency,
|
|
303
|
+
words: `The estimate of the open loop puts back ${hidden} hidden sends, with ${gaps}: ${spread}.`
|
|
304
|
+
};
|
|
305
|
+
};
|
|
249
306
|
//#endregion
|
|
250
307
|
//#region src/verdict.ts
|
|
251
308
|
/** This function gives the words of the outcome of a second request: its connection, a retry, and its end. */
|
|
@@ -687,7 +744,9 @@ const verdictOfBand = (prediction, runs, delta = NOISE) => {
|
|
|
687
744
|
reordering.fast,
|
|
688
745
|
reordering.seen
|
|
689
746
|
].some((count) => (count ?? 0) > 0) ? ` Reordering: ${reorderingWords(reordering)}.` : "";
|
|
690
|
-
const
|
|
747
|
+
const estimate = estimateVerdict(counted.map((run) => run.estimate));
|
|
748
|
+
const estimated = estimate === void 0 ? "" : ` ${estimate.words}`;
|
|
749
|
+
const why = samples.length === 0 ? `${counted.length} runs measured, with no reply: ${prediction.why}` : `${counted.length} runs, ${samples.length} replies: median ${s(median(samples)).value} s, p99 ${s(quantileOf(samples, .99)).value} s, slowest ${s(samples.at(-1)).value} s, ${retransmissions} retransmissions, ${ended.length} connections ended.${reordered}${estimated} ${prediction.why}`;
|
|
691
750
|
return {
|
|
692
751
|
...empty,
|
|
693
752
|
decision: "measured",
|
|
@@ -696,6 +755,7 @@ const verdictOfBand = (prediction, runs, delta = NOISE) => {
|
|
|
696
755
|
median: samples.length === 0 ? null : s(median(samples)),
|
|
697
756
|
...samples.length === 0 ? {} : { slowest: s(samples.at(-1)) },
|
|
698
757
|
...reordering === void 0 ? {} : { reordering },
|
|
758
|
+
...estimate === void 0 ? {} : { estimate },
|
|
699
759
|
why
|
|
700
760
|
};
|
|
701
761
|
}
|
|
@@ -3019,11 +3079,18 @@ const measureSocket = (cell, run) => {
|
|
|
3019
3079
|
};
|
|
3020
3080
|
const sends = load === void 0 ? events.filter((event) => event.ev === "sent").slice(1) : [];
|
|
3021
3081
|
const answers = events.some((event) => event.ev === "replied") ? "replied" : "data";
|
|
3022
|
-
const
|
|
3082
|
+
const requests = sends.map((send, n) => {
|
|
3023
3083
|
const next = sends[n + 1]?.t ?? Infinity;
|
|
3024
|
-
|
|
3025
|
-
|
|
3084
|
+
return {
|
|
3085
|
+
send,
|
|
3086
|
+
reply: events.find((event) => event.ev === answers && event.t > send.t && event.t < next)
|
|
3087
|
+
};
|
|
3026
3088
|
});
|
|
3089
|
+
const samples = requests.flatMap(({ send, reply }) => reply === void 0 ? [] : [between(send.t, reply.t)]);
|
|
3090
|
+
const estimate = cell.probe.mode === "stream" && cell.probe.driver === void 0 && cell.probe.interval !== void 0 ? estimateOf(requests.map(({ send, reply }) => ({
|
|
3091
|
+
sent: send.t,
|
|
3092
|
+
done: reply?.t ?? null
|
|
3093
|
+
})), events.reduce((latest, event) => Math.max(latest, event.t), 0), valueIn(cell.probe.interval, "ms")) : void 0;
|
|
3027
3094
|
const from = prediction.from === void 0 ? void 0 : referenceAt(prediction.from);
|
|
3028
3095
|
const until = ended ?? after.at(-1)?.t;
|
|
3029
3096
|
const peerRecords = peerCookie === void 0 ? [] : kernel.filter((record) => record.netns === peerNetns && record.cookie === peerCookie);
|
|
@@ -3056,6 +3123,7 @@ const measureSocket = (cell, run) => {
|
|
|
3056
3123
|
steps: retransmitted.filter((record) => record.mono > request.t).map((record) => between(request.t, record.mono)),
|
|
3057
3124
|
samples,
|
|
3058
3125
|
...load === void 0 ? {} : { load },
|
|
3126
|
+
...estimate === void 0 ? {} : { estimate },
|
|
3059
3127
|
reordering: reorderingOf(socket.filter((record) => record.mono > request.t), peerRecords.filter((record) => record.mono > request.t)),
|
|
3060
3128
|
...crossings,
|
|
3061
3129
|
void: voided
|
|
@@ -8935,6 +9003,6 @@ const runCell = async (cell, say = () => {}) => {
|
|
|
8935
9003
|
}
|
|
8936
9004
|
};
|
|
8937
9005
|
//#endregion
|
|
8938
|
-
export { AWS_FROM, CLIENT_CAPABILITIES, CLIENT_NAMES, CLUSTER_STAGES, CONVERGE_MS, DAEMONS, DEBUG, DIRTY, DROP_HANDLING, FABRIC_CLIENT, FABRIC_DEVICE, FABRIC_TARGET, FRR_IMAGE, GIVES_AWAY, HASH_SCRIPT, INJECT, INSERT, KAFKA_TAIL_MS, KEPT, LINGER_MS, LISTING, LOAD_FORMAT, LOAD_PATH, LOCK_NAMES, LOSS_MARGIN, MEMBER_MARKS, MONITOR_DOWN, NODE_MARKS, NOISE, PINNED, PUMP, PUMP_SLACK, QUIET_MS, RELATIVE, REPLICA_SET_STAGES, REPOSITORY, RESTART, ROUTERS, SCHEDULE_PATH, SEED_DOCUMENT, SHIPPED_CLIENTS, SHIPPED_NAMES, STAGES, STANDBY_READY, STATUS_SCRIPT, STEPS, STEP_DOWN, amqpClientImage, basesOf, bootstrapOf, brokerEnv, buildOf, buildRecordOf, callOf, cancelsOf, cargoVersions, clockOffsetOf, closeOrExit, cloudOf, clusterArgs, clusterConf, clusterCutOf, clusterHostsOf, clusterOnce, clusterStagesOf, clusterViewOf, commitProblems, comparable, controllerEnv, crossingsOf, cutOf, deadlineOf, delayVoids, deviceOf, drillOnce, drillSpan, dropFinding, dropOf, endpointAfter, envOf, errorsOf, exitOf, fieldOf, fieldsOf, firstUnanswered, frrConf, goHttpImage, goVersions, groupOnce, groupVerdictOf, grpcClientImage, harnessImage, harnessRecord, harnessVersion, hashOf, highestHeld, hikariClientImage, hzOf, imageOf, imageProblems, inContext, infoOf, initiateScript, isFenceLine, isHopPlace, jarVersions, jitterOf, jitterOfLines, judge, kafkaArgs, kafkaClientImage, kafkaCutOf, kafkaOnce, kafkaPauseOnce, kafkaViewOf, lagsOf, laterMove, latestEndOf, leafLacks, leftAfter, loadOf, loadPlanOf, loadVerdict, locksOf, logNameOf, logTimeOf, manifestProblems, matches, measure, measureConntrack, measureDriver, measureGroup, measurePause, measurePorts, measureQueue, medianInterval, memberCommand, memberConfig, memberLineOf, mongoClientImage, monotonicAt, monotonicOf, namesGroup, nodeClientImage, nodeCommand, nodeHttpImage, nodeIdOf, nodeLineOf, nodeNameOf, nodesOnMonotonic, noiseOf, npmVersions, numbersOf, onMonotonic, openClusterLab, openFabric, openGroupLab, openKafkaLab, openLab, openReplicaSetLab, openStandby, pairArgs, pairOnce, pairingOf, pairingsOf, pauseReady, peersOf, pgClientImage, pingsOf, plainOf, planOf, programLines, programOf, quantileOf, readCpu, readHost, readOplog, reconnectFinding, reconnectOf, recordProblems, recoveryFindings, recoveryOf, referenceOf, reorderingOf, replicaSetArgs, replicaSetOnce, replicaSetStagesOf, requestOf, requestWords, restamped, routeLine, routerImage, routesOf, runCell, seedScript, sentinelConfig, sessionsOf, shippedClientRecord, shippedSource, sliceQuery, socketAt, socketOf, socketsOf, spread, spreadOf, stagesOf, standaloneCommand, standbyCommand, statusViewOf, stealShare, stopScript, streamsLoadOf, subjectClient, subjectProblems, subscriptionsOf, substrateHere, substrateKey, substrateOf, substrateOn, targetImageOf, targetSourceOf, templated, toolJsonOf, topicOf, topologyOf, toxicBody, unlockedManifests, unpinnedBases, unpoolable, verdictOf, versionsOf, viewOf, writesOf };
|
|
9006
|
+
export { AWS_FROM, CLIENT_CAPABILITIES, CLIENT_NAMES, CLOSED_TOLERANCE, CLUSTER_STAGES, CONVERGE_MS, DAEMONS, DEBUG, DIRTY, DROP_HANDLING, FABRIC_CLIENT, FABRIC_DEVICE, FABRIC_TARGET, FRR_IMAGE, GIVES_AWAY, HASH_SCRIPT, INJECT, INSERT, KAFKA_TAIL_MS, KEPT, LINGER_MS, LISTING, LOAD_FORMAT, LOAD_PATH, LOCK_NAMES, LOSS_MARGIN, MEMBER_MARKS, MONITOR_DOWN, NODE_MARKS, NOISE, PINNED, PUMP, PUMP_SLACK, QUIET_MS, RELATIVE, REPLICA_SET_STAGES, REPOSITORY, RESTART, ROUTERS, SCHEDULE_PATH, SEED_DOCUMENT, SHIPPED_CLIENTS, SHIPPED_NAMES, STAGES, STANDBY_READY, STATUS_SCRIPT, STEPS, STEP_DOWN, amqpClientImage, basesOf, bootstrapOf, brokerEnv, buildOf, buildRecordOf, callOf, cancelsOf, cargoVersions, clockOffsetOf, closeOrExit, cloudOf, clusterArgs, clusterConf, clusterCutOf, clusterHostsOf, clusterOnce, clusterStagesOf, clusterViewOf, commitProblems, comparable, controllerEnv, crossingsOf, cutOf, deadlineOf, delayVoids, deviceOf, drillOnce, drillSpan, dropFinding, dropOf, endpointAfter, envOf, errorsOf, estimateOf, estimateVerdict, exitOf, fieldOf, fieldsOf, firstUnanswered, frrConf, goHttpImage, goVersions, groupOnce, groupVerdictOf, grpcClientImage, harnessImage, harnessRecord, harnessVersion, hashOf, highestHeld, hikariClientImage, hzOf, imageOf, imageProblems, inContext, infoOf, initiateScript, isFenceLine, isHopPlace, jarVersions, jitterOf, jitterOfLines, judge, kafkaArgs, kafkaClientImage, kafkaCutOf, kafkaOnce, kafkaPauseOnce, kafkaViewOf, lagsOf, laterMove, latestEndOf, leafLacks, leftAfter, loadOf, loadPlanOf, loadVerdict, locksOf, logNameOf, logTimeOf, manifestProblems, matches, measure, measureConntrack, measureDriver, measureGroup, measurePause, measurePorts, measureQueue, medianInterval, memberCommand, memberConfig, memberLineOf, mongoClientImage, monotonicAt, monotonicOf, namesGroup, nodeClientImage, nodeCommand, nodeHttpImage, nodeIdOf, nodeLineOf, nodeNameOf, nodesOnMonotonic, noiseOf, npmVersions, numbersOf, onMonotonic, openClusterLab, openFabric, openGroupLab, openKafkaLab, openLab, openReplicaSetLab, openStandby, pairArgs, pairOnce, pairingOf, pairingsOf, pauseReady, peersOf, pgClientImage, pingsOf, plainOf, planOf, poolOf, programLines, programOf, quantileOf, readCpu, readHost, readOplog, reconnectFinding, reconnectOf, recordProblems, recoveryFindings, recoveryOf, referenceOf, reorderingOf, replicaSetArgs, replicaSetOnce, replicaSetStagesOf, requestOf, requestWords, restamped, routeLine, routerImage, routesOf, runCell, seedScript, sentinelConfig, sessionsOf, shippedClientRecord, shippedSource, sliceQuery, socketAt, socketOf, socketsOf, spread, spreadOf, stagesOf, standaloneCommand, standbyCommand, statusViewOf, stealShare, stopScript, streamsLoadOf, subjectClient, subjectProblems, subscriptionsOf, substrateHere, substrateKey, substrateOf, substrateOn, targetImageOf, targetSourceOf, templated, toolJsonOf, topicOf, topologyOf, toxicBody, unlockedManifests, unpinnedBases, unpoolable, verdictOf, versionsOf, viewOf, writesOf };
|
|
8939
9007
|
|
|
8940
9008
|
//# sourceMappingURL=index.js.map
|