@ue-shed/observability 0.5.0 → 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/health.d.ts +2 -2
- package/dist/health.js.map +1 -1
- package/dist/index.d.ts +2 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -200
- package/dist/index.js.map +1 -1
- package/dist/metrics.d.ts +72 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +201 -0
- package/dist/metrics.js.map +1 -0
- package/package.json +5 -1
package/dist/health.d.ts
CHANGED
|
@@ -24,8 +24,6 @@ export declare const RuntimeHealthInput: Schema.Struct<{
|
|
|
24
24
|
export interface RuntimeHealthInput extends Schema.Schema.Type<typeof RuntimeHealthInput> {
|
|
25
25
|
}
|
|
26
26
|
export declare const RuntimeHealth: Schema.Struct<{
|
|
27
|
-
readonly reasons: Schema.$Array<Schema.String>;
|
|
28
|
-
readonly status: Schema.Literals<readonly ["healthy", "degraded", "unhealthy"]>;
|
|
29
27
|
readonly capabilities: Schema.$Array<Schema.Struct<{
|
|
30
28
|
readonly available: Schema.Boolean;
|
|
31
29
|
readonly name: Schema.String;
|
|
@@ -39,6 +37,8 @@ export declare const RuntimeHealth: Schema.Struct<{
|
|
|
39
37
|
readonly queueDepth: Schema.Number;
|
|
40
38
|
}>;
|
|
41
39
|
readonly telemetry: Schema.Literals<readonly ["disabled", "ready", "degraded"]>;
|
|
40
|
+
readonly reasons: Schema.$Array<Schema.String>;
|
|
41
|
+
readonly status: Schema.Literals<readonly ["healthy", "degraded", "unhealthy"]>;
|
|
42
42
|
}>;
|
|
43
43
|
export interface RuntimeHealth extends Schema.Schema.Type<typeof RuntimeHealth> {
|
|
44
44
|
}
|
package/dist/health.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../src/health.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,78 +1,9 @@
|
|
|
1
1
|
import type { SpanProcessor } from "@opentelemetry/sdk-trace-base";
|
|
2
|
-
import { Config,
|
|
2
|
+
import { Config, Layer, Schema } from "effect";
|
|
3
3
|
export * from "./health.js";
|
|
4
4
|
export declare const TelemetryMode: Schema.Literals<readonly ["disabled", "console"]>;
|
|
5
5
|
export type TelemetryMode = typeof TelemetryMode.Type;
|
|
6
|
-
export
|
|
7
|
-
export declare const streamDrops: Metric.Counter<number>;
|
|
8
|
-
export declare const streamGaps: Metric.Counter<number>;
|
|
9
|
-
export declare const cameraReplacements: Metric.Counter<number>;
|
|
10
|
-
export declare const authoringTransitions: Metric.Frequency;
|
|
11
|
-
export declare const coverage: Metric.Gauge<number>;
|
|
12
|
-
export declare const observatoryMetrics: {
|
|
13
|
-
actorsChanged: Metric.Counter<number>;
|
|
14
|
-
actorsSampled: Metric.Counter<number>;
|
|
15
|
-
boundsCalculations: Metric.Counter<number>;
|
|
16
|
-
bytes: Metric.Counter<number>;
|
|
17
|
-
catalogDuration: Metric.Histogram<number>;
|
|
18
|
-
decodeApplyDuration: Metric.Histogram<number>;
|
|
19
|
-
ipcReplacements: Metric.Counter<number>;
|
|
20
|
-
packets: Metric.Counter<number>;
|
|
21
|
-
paintDuration: Metric.Histogram<number>;
|
|
22
|
-
presentationHz: Metric.Gauge<number>;
|
|
23
|
-
producerReplacements: Metric.Counter<number>;
|
|
24
|
-
receiverReplacements: Metric.Counter<number>;
|
|
25
|
-
sampleHz: Metric.Gauge<number>;
|
|
26
|
-
sequenceGaps: Metric.Counter<number>;
|
|
27
|
-
};
|
|
28
|
-
export declare const reviewAssessmentMetrics: {
|
|
29
|
-
attempts: Metric.Counter<number>;
|
|
30
|
-
duration: Metric.Histogram<number>;
|
|
31
|
-
failures: Metric.Counter<number>;
|
|
32
|
-
samples: Metric.Histogram<number>;
|
|
33
|
-
};
|
|
34
|
-
export declare const operationMetrics: {
|
|
35
|
-
errors: Metric.Counter<number>;
|
|
36
|
-
latency: Metric.Histogram<number>;
|
|
37
|
-
traffic: Metric.Counter<number>;
|
|
38
|
-
};
|
|
39
|
-
export declare function recordStreamState(state: {
|
|
40
|
-
readonly drops: number;
|
|
41
|
-
readonly gaps: number;
|
|
42
|
-
readonly queueDepth: number;
|
|
43
|
-
}): Effect.Effect<void>;
|
|
44
|
-
export declare const recordCameraReplacements: (count: number) => Effect.Effect<void>;
|
|
45
|
-
export declare const recordAuthoringTransition: (transition: string) => Effect.Effect<void>;
|
|
46
|
-
export declare const recordCoverage: (ratio: number) => Effect.Effect<void>;
|
|
47
|
-
export declare function recordObservatoryCatalog(input: {
|
|
48
|
-
readonly boundsCalculations: number;
|
|
49
|
-
readonly durationMs: number;
|
|
50
|
-
}): Effect.Effect<void>;
|
|
51
|
-
export declare function recordObservatoryPacket(input: {
|
|
52
|
-
readonly actorsChanged: number;
|
|
53
|
-
readonly actorsSampled: number;
|
|
54
|
-
readonly bytes: number;
|
|
55
|
-
readonly decodeApplyMs: number;
|
|
56
|
-
readonly producerReplacements?: number;
|
|
57
|
-
readonly sequenceGap?: boolean;
|
|
58
|
-
}): Effect.Effect<void>;
|
|
59
|
-
export declare const recordObservatoryReceiverReplacements: (count: number) => Effect.Effect<void>;
|
|
60
|
-
export declare const recordObservatoryIpcReplacements: (count: number) => Effect.Effect<void>;
|
|
61
|
-
export declare const recordObservatoryPaintDuration: (durationMs: number) => Effect.Effect<void>;
|
|
62
|
-
export declare function recordObservatoryCadence(input: {
|
|
63
|
-
readonly presentationHz?: number;
|
|
64
|
-
readonly sampleHz?: number;
|
|
65
|
-
}): Effect.Effect<void>;
|
|
66
|
-
/**
|
|
67
|
-
* Aggregates only bounded assessment facts. Callers must not attach actor, view, operation, map,
|
|
68
|
-
* artifact, or filesystem identity to these metrics.
|
|
69
|
-
*/
|
|
70
|
-
export declare function recordReviewAssessment(input: {
|
|
71
|
-
readonly assessmentDurationMs?: number;
|
|
72
|
-
readonly sampleCount?: number;
|
|
73
|
-
readonly status: "assessed" | "assessment_failed" | "not_assessed";
|
|
74
|
-
}): Effect.Effect<void>;
|
|
75
|
-
export declare function observeOperation<A, E, R>(name: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
|
|
6
|
+
export * from "./metrics.js";
|
|
76
7
|
export interface RuntimeObservabilityOptions {
|
|
77
8
|
readonly serviceName: string;
|
|
78
9
|
readonly serviceVersion?: string;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAU,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGvD,cAAc,aAAa,CAAC;AAE5B,eAAO,MAAM,aAAa,mDAA2C,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAC;AAEtD,cAAc,cAAc,CAAC;AAK7B,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACvC;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,2BAA2B,sFAiB7E"}
|
package/dist/index.js
CHANGED
|
@@ -1,206 +1,8 @@
|
|
|
1
|
-
import { Config, Effect,
|
|
1
|
+
import { Config, Effect, Layer, Schema } from "effect";
|
|
2
2
|
import { defaultHealthInput, runtimeHealthLayer } from "./health.js";
|
|
3
3
|
export * from "./health.js";
|
|
4
4
|
export const TelemetryMode = Schema.Literals(["disabled", "console"]);
|
|
5
|
-
|
|
6
|
-
description: "Completed UE Shed runtime operations",
|
|
7
|
-
incremental: true
|
|
8
|
-
});
|
|
9
|
-
const operationErrors = Metric.counter("ue_shed_operation_error_total", {
|
|
10
|
-
description: "Failed UE Shed runtime operations",
|
|
11
|
-
incremental: true
|
|
12
|
-
});
|
|
13
|
-
const operationLatency = Metric.histogram("ue_shed_operation_duration_ms", {
|
|
14
|
-
boundaries: [1, 5, 10, 25, 50, 100, 250, 500, 1_000, 5_000, 30_000],
|
|
15
|
-
description: "UE Shed operation duration in milliseconds"
|
|
16
|
-
});
|
|
17
|
-
export const queueDepth = Metric.gauge("ue_shed_queue_depth", {
|
|
18
|
-
description: "Current bounded queue depth"
|
|
19
|
-
});
|
|
20
|
-
export const streamDrops = Metric.counter("ue_shed_stream_drop_total", {
|
|
21
|
-
description: "Dropped stream items",
|
|
22
|
-
incremental: true
|
|
23
|
-
});
|
|
24
|
-
export const streamGaps = Metric.counter("ue_shed_stream_gap_total", {
|
|
25
|
-
description: "Detected stream gaps",
|
|
26
|
-
incremental: true
|
|
27
|
-
});
|
|
28
|
-
export const cameraReplacements = Metric.counter("ue_shed_camera_replacement_total", {
|
|
29
|
-
description: "Camera frames replaced by bounded delivery",
|
|
30
|
-
incremental: true
|
|
31
|
-
});
|
|
32
|
-
export const authoringTransitions = Metric.frequency("ue_shed_authoring_transition_total", {
|
|
33
|
-
description: "Apply and Save authority transition outcomes"
|
|
34
|
-
});
|
|
35
|
-
export const coverage = Metric.gauge("ue_shed_coverage_ratio", {
|
|
36
|
-
description: "Domain coverage ratio from zero to one"
|
|
37
|
-
});
|
|
38
|
-
const observatoryCatalogDuration = Metric.histogram("ue_shed_observatory_catalog_duration_ms", {
|
|
39
|
-
boundaries: [1, 5, 10, 25, 50, 100, 250, 500, 1_000, 5_000],
|
|
40
|
-
description: "Unreal catalog collection duration in milliseconds"
|
|
41
|
-
});
|
|
42
|
-
const observatoryBoundsCalculations = Metric.counter("ue_shed_observatory_bounds_calculations_total", {
|
|
43
|
-
description: "Actor bounds calculations performed during catalog collection",
|
|
44
|
-
incremental: true
|
|
45
|
-
});
|
|
46
|
-
const observatoryActorsSampled = Metric.counter("ue_shed_observatory_actors_sampled_total", {
|
|
47
|
-
description: "Actors sampled by the Unreal transform producer",
|
|
48
|
-
incremental: true
|
|
49
|
-
});
|
|
50
|
-
const observatoryActorsChanged = Metric.counter("ue_shed_observatory_actors_changed_total", {
|
|
51
|
-
description: "Actors included in changed-transform packets",
|
|
52
|
-
incremental: true
|
|
53
|
-
});
|
|
54
|
-
const observatoryPackets = Metric.counter("ue_shed_observatory_packets_total", {
|
|
55
|
-
description: "Decoded Observatory transform packets",
|
|
56
|
-
incremental: true
|
|
57
|
-
});
|
|
58
|
-
const observatoryBytes = Metric.counter("ue_shed_observatory_bytes_total", {
|
|
59
|
-
description: "Bytes received on the Observatory actor stream",
|
|
60
|
-
incremental: true
|
|
61
|
-
});
|
|
62
|
-
const observatorySequenceGaps = Metric.counter("ue_shed_observatory_sequence_gap_total", {
|
|
63
|
-
description: "Detected Observatory transform sequence gaps",
|
|
64
|
-
incremental: true
|
|
65
|
-
});
|
|
66
|
-
const observatoryProducerReplacements = Metric.counter("ue_shed_observatory_producer_replacement_total", {
|
|
67
|
-
description: "Producer-side Observatory packet replacements",
|
|
68
|
-
incremental: true
|
|
69
|
-
});
|
|
70
|
-
const observatoryReceiverReplacements = Metric.counter("ue_shed_observatory_receiver_replacement_total", {
|
|
71
|
-
description: "Host receiver Observatory packet replacements",
|
|
72
|
-
incremental: true
|
|
73
|
-
});
|
|
74
|
-
const observatoryIpcReplacements = Metric.counter("ue_shed_observatory_ipc_replacement_total", {
|
|
75
|
-
description: "Workbench IPC Observatory event replacements",
|
|
76
|
-
incremental: true
|
|
77
|
-
});
|
|
78
|
-
const observatoryDecodeApplyDuration = Metric.histogram("ue_shed_observatory_decode_apply_duration_ms", {
|
|
79
|
-
boundaries: [0.1, 0.25, 0.5, 1, 2, 4, 8, 16.7, 33, 50, 100],
|
|
80
|
-
description: "Decode plus retained-state apply duration in milliseconds"
|
|
81
|
-
});
|
|
82
|
-
const observatoryPaintDuration = Metric.histogram("ue_shed_observatory_paint_duration_ms", {
|
|
83
|
-
boundaries: [0.1, 0.25, 0.5, 1, 2, 4, 8, 16.7, 33, 50, 100],
|
|
84
|
-
description: "World Scout Canvas paint duration in milliseconds"
|
|
85
|
-
});
|
|
86
|
-
const observatorySampleHz = Metric.gauge("ue_shed_observatory_sample_hz", {
|
|
87
|
-
description: "Effective Observatory transform sample cadence"
|
|
88
|
-
});
|
|
89
|
-
const observatoryPresentationHz = Metric.gauge("ue_shed_observatory_presentation_hz", {
|
|
90
|
-
description: "Effective World Scout presentation cadence"
|
|
91
|
-
});
|
|
92
|
-
const reviewAssessmentAttempts = Metric.counter("ue_shed_review_assessment_total", {
|
|
93
|
-
description: "Map Review visibility assessments with bounded producer evidence",
|
|
94
|
-
incremental: true
|
|
95
|
-
});
|
|
96
|
-
const reviewAssessmentFailures = Metric.counter("ue_shed_review_assessment_failure_total", {
|
|
97
|
-
description: "Map Review visibility assessments without usable raw evidence",
|
|
98
|
-
incremental: true
|
|
99
|
-
});
|
|
100
|
-
const reviewAssessmentDuration = Metric.histogram("ue_shed_review_assessment_duration_ms", {
|
|
101
|
-
boundaries: [0.1, 0.25, 0.5, 1, 2, 4, 8, 16, 33, 50, 100, 250, 500, 1_000, 5_000],
|
|
102
|
-
description: "Unreal auxiliary visibility assessment and readback duration in milliseconds"
|
|
103
|
-
});
|
|
104
|
-
const reviewAssessmentSamples = Metric.histogram("ue_shed_review_assessment_samples", {
|
|
105
|
-
boundaries: [0, 1, 9, 64, 256, 1_024, 4_096, 16_384, 57_600],
|
|
106
|
-
description: "Bounded image-space or collision samples in a Map Review visibility assessment"
|
|
107
|
-
});
|
|
108
|
-
export const observatoryMetrics = {
|
|
109
|
-
actorsChanged: observatoryActorsChanged,
|
|
110
|
-
actorsSampled: observatoryActorsSampled,
|
|
111
|
-
boundsCalculations: observatoryBoundsCalculations,
|
|
112
|
-
bytes: observatoryBytes,
|
|
113
|
-
catalogDuration: observatoryCatalogDuration,
|
|
114
|
-
decodeApplyDuration: observatoryDecodeApplyDuration,
|
|
115
|
-
ipcReplacements: observatoryIpcReplacements,
|
|
116
|
-
packets: observatoryPackets,
|
|
117
|
-
paintDuration: observatoryPaintDuration,
|
|
118
|
-
presentationHz: observatoryPresentationHz,
|
|
119
|
-
producerReplacements: observatoryProducerReplacements,
|
|
120
|
-
receiverReplacements: observatoryReceiverReplacements,
|
|
121
|
-
sampleHz: observatorySampleHz,
|
|
122
|
-
sequenceGaps: observatorySequenceGaps
|
|
123
|
-
};
|
|
124
|
-
export const reviewAssessmentMetrics = {
|
|
125
|
-
attempts: reviewAssessmentAttempts,
|
|
126
|
-
duration: reviewAssessmentDuration,
|
|
127
|
-
failures: reviewAssessmentFailures,
|
|
128
|
-
samples: reviewAssessmentSamples
|
|
129
|
-
};
|
|
130
|
-
export const operationMetrics = {
|
|
131
|
-
errors: operationErrors,
|
|
132
|
-
latency: operationLatency,
|
|
133
|
-
traffic: operationTraffic
|
|
134
|
-
};
|
|
135
|
-
export function recordStreamState(state) {
|
|
136
|
-
return Effect.all([
|
|
137
|
-
Metric.update(queueDepth, state.queueDepth),
|
|
138
|
-
Metric.update(streamDrops, state.drops),
|
|
139
|
-
Metric.update(streamGaps, state.gaps)
|
|
140
|
-
]).pipe(Effect.asVoid);
|
|
141
|
-
}
|
|
142
|
-
export const recordCameraReplacements = (count) => Metric.update(cameraReplacements, count);
|
|
143
|
-
export const recordAuthoringTransition = (transition) => Metric.update(authoringTransitions, transition);
|
|
144
|
-
export const recordCoverage = (ratio) => Metric.update(coverage, Math.max(0, Math.min(1, ratio)));
|
|
145
|
-
export function recordObservatoryCatalog(input) {
|
|
146
|
-
return Effect.all([
|
|
147
|
-
Metric.update(observatoryCatalogDuration, Math.max(0, input.durationMs)),
|
|
148
|
-
Metric.update(observatoryBoundsCalculations, Math.max(0, input.boundsCalculations))
|
|
149
|
-
]).pipe(Effect.asVoid);
|
|
150
|
-
}
|
|
151
|
-
export function recordObservatoryPacket(input) {
|
|
152
|
-
return Effect.all([
|
|
153
|
-
Metric.update(observatoryPackets, 1),
|
|
154
|
-
Metric.update(observatoryBytes, Math.max(0, input.bytes)),
|
|
155
|
-
Metric.update(observatoryActorsSampled, Math.max(0, input.actorsSampled)),
|
|
156
|
-
Metric.update(observatoryActorsChanged, Math.max(0, input.actorsChanged)),
|
|
157
|
-
Metric.update(observatoryDecodeApplyDuration, Math.max(0, input.decodeApplyMs)),
|
|
158
|
-
Metric.update(observatoryProducerReplacements, Math.max(0, input.producerReplacements ?? 0)),
|
|
159
|
-
Metric.update(observatorySequenceGaps, input.sequenceGap === true ? 1 : 0)
|
|
160
|
-
]).pipe(Effect.asVoid);
|
|
161
|
-
}
|
|
162
|
-
export const recordObservatoryReceiverReplacements = (count) => Metric.update(observatoryReceiverReplacements, Math.max(0, count));
|
|
163
|
-
export const recordObservatoryIpcReplacements = (count) => Metric.update(observatoryIpcReplacements, Math.max(0, count));
|
|
164
|
-
export const recordObservatoryPaintDuration = (durationMs) => Metric.update(observatoryPaintDuration, Math.max(0, durationMs));
|
|
165
|
-
export function recordObservatoryCadence(input) {
|
|
166
|
-
const updates = [];
|
|
167
|
-
if (input.sampleHz !== undefined) {
|
|
168
|
-
updates.push(Metric.update(observatorySampleHz, Math.max(0, input.sampleHz)));
|
|
169
|
-
}
|
|
170
|
-
if (input.presentationHz !== undefined) {
|
|
171
|
-
updates.push(Metric.update(observatoryPresentationHz, Math.max(0, input.presentationHz)));
|
|
172
|
-
}
|
|
173
|
-
return updates.length === 0 ? Effect.void : Effect.all(updates).pipe(Effect.asVoid);
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Aggregates only bounded assessment facts. Callers must not attach actor, view, operation, map,
|
|
177
|
-
* artifact, or filesystem identity to these metrics.
|
|
178
|
-
*/
|
|
179
|
-
export function recordReviewAssessment(input) {
|
|
180
|
-
const updates = [Metric.update(reviewAssessmentAttempts, 1)];
|
|
181
|
-
if (input.status === "assessment_failed") {
|
|
182
|
-
updates.push(Metric.update(reviewAssessmentFailures, 1));
|
|
183
|
-
}
|
|
184
|
-
if (input.assessmentDurationMs !== undefined) {
|
|
185
|
-
updates.push(Metric.update(reviewAssessmentDuration, Math.max(0, input.assessmentDurationMs)));
|
|
186
|
-
}
|
|
187
|
-
if (input.sampleCount !== undefined) {
|
|
188
|
-
updates.push(Metric.update(reviewAssessmentSamples, Math.max(0, input.sampleCount)));
|
|
189
|
-
}
|
|
190
|
-
return Effect.all(updates).pipe(Effect.asVoid);
|
|
191
|
-
}
|
|
192
|
-
export function observeOperation(name, effect) {
|
|
193
|
-
return Effect.gen(function* () {
|
|
194
|
-
const started = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
|
|
195
|
-
const exit = yield* Effect.exit(effect);
|
|
196
|
-
const finished = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
|
|
197
|
-
yield* Metric.update(operationTraffic, 1);
|
|
198
|
-
yield* Metric.update(operationLatency, Math.max(0, finished - started));
|
|
199
|
-
if (Exit.isFailure(exit))
|
|
200
|
-
yield* Metric.update(operationErrors, 1);
|
|
201
|
-
return yield* exit;
|
|
202
|
-
}).pipe(Effect.withSpan(name), Effect.annotateSpans("operation", name));
|
|
203
|
-
}
|
|
5
|
+
export * from "./metrics.js";
|
|
204
6
|
const telemetryModeConfig = Config.literals(["disabled", "console"], "UE_SHED_TELEMETRY_MODE").pipe(Config.withDefault("disabled"));
|
|
205
7
|
export function runtimeObservabilityLayer(options) {
|
|
206
8
|
return Layer.unwrap(Effect.gen(function* () {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErE,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;AAGtE,cAAc,cAAc,CAAC;AAC7B,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,wBAAwB,CAAC,CAAC,IAAI,CAClG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAC9B,CAAC;AAQF,MAAM,UAAU,yBAAyB,CAAC,OAAoC;IAC7E,OAAO,KAAK,CAAC,MAAM,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,mBAAmB,CAAC;QACxC,MAAM,MAAM,GAAG,kBAAkB,CAAC;YACjC,GAAG,kBAAkB;YACrB,SAAS,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO;SACrD,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAChE,mFAAmF;YACnF,oFAAoF;YACpF,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,EAAE,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACxF,OAAO,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC,CACF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Effect, Metric } from "effect";
|
|
2
|
+
export declare const queueDepth: Metric.Gauge<number>;
|
|
3
|
+
export declare const streamDrops: Metric.Counter<number>;
|
|
4
|
+
export declare const streamGaps: Metric.Counter<number>;
|
|
5
|
+
export declare const cameraReplacements: Metric.Counter<number>;
|
|
6
|
+
export declare const authoringTransitions: Metric.Frequency;
|
|
7
|
+
export declare const coverage: Metric.Gauge<number>;
|
|
8
|
+
export declare const observatoryMetrics: {
|
|
9
|
+
actorsChanged: Metric.Counter<number>;
|
|
10
|
+
actorsSampled: Metric.Counter<number>;
|
|
11
|
+
boundsCalculations: Metric.Counter<number>;
|
|
12
|
+
bytes: Metric.Counter<number>;
|
|
13
|
+
catalogDuration: Metric.Histogram<number>;
|
|
14
|
+
decodeApplyDuration: Metric.Histogram<number>;
|
|
15
|
+
ipcReplacements: Metric.Counter<number>;
|
|
16
|
+
packets: Metric.Counter<number>;
|
|
17
|
+
paintDuration: Metric.Histogram<number>;
|
|
18
|
+
presentationHz: Metric.Gauge<number>;
|
|
19
|
+
producerReplacements: Metric.Counter<number>;
|
|
20
|
+
receiverReplacements: Metric.Counter<number>;
|
|
21
|
+
sampleHz: Metric.Gauge<number>;
|
|
22
|
+
sequenceGaps: Metric.Counter<number>;
|
|
23
|
+
};
|
|
24
|
+
export declare const reviewAssessmentMetrics: {
|
|
25
|
+
attempts: Metric.Counter<number>;
|
|
26
|
+
duration: Metric.Histogram<number>;
|
|
27
|
+
failures: Metric.Counter<number>;
|
|
28
|
+
samples: Metric.Histogram<number>;
|
|
29
|
+
};
|
|
30
|
+
export declare const operationMetrics: {
|
|
31
|
+
errors: Metric.Counter<number>;
|
|
32
|
+
latency: Metric.Histogram<number>;
|
|
33
|
+
traffic: Metric.Counter<number>;
|
|
34
|
+
};
|
|
35
|
+
export declare function recordStreamState(state: {
|
|
36
|
+
readonly drops: number;
|
|
37
|
+
readonly gaps: number;
|
|
38
|
+
readonly queueDepth: number;
|
|
39
|
+
}): Effect.Effect<void>;
|
|
40
|
+
export declare const recordCameraReplacements: (count: number) => Effect.Effect<void>;
|
|
41
|
+
export declare const recordAuthoringTransition: (transition: string) => Effect.Effect<void>;
|
|
42
|
+
export declare const recordCoverage: (ratio: number) => Effect.Effect<void>;
|
|
43
|
+
export declare function recordObservatoryCatalog(input: {
|
|
44
|
+
readonly boundsCalculations: number;
|
|
45
|
+
readonly durationMs: number;
|
|
46
|
+
}): Effect.Effect<void>;
|
|
47
|
+
export declare function recordObservatoryPacket(input: {
|
|
48
|
+
readonly actorsChanged: number;
|
|
49
|
+
readonly actorsSampled: number;
|
|
50
|
+
readonly bytes: number;
|
|
51
|
+
readonly decodeApplyMs: number;
|
|
52
|
+
readonly producerReplacements?: number;
|
|
53
|
+
readonly sequenceGap?: boolean;
|
|
54
|
+
}): Effect.Effect<void>;
|
|
55
|
+
export declare const recordObservatoryReceiverReplacements: (count: number) => Effect.Effect<void>;
|
|
56
|
+
export declare const recordObservatoryIpcReplacements: (count: number) => Effect.Effect<void>;
|
|
57
|
+
export declare const recordObservatoryPaintDuration: (durationMs: number) => Effect.Effect<void>;
|
|
58
|
+
export declare function recordObservatoryCadence(input: {
|
|
59
|
+
readonly presentationHz?: number;
|
|
60
|
+
readonly sampleHz?: number;
|
|
61
|
+
}): Effect.Effect<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Aggregates only bounded assessment facts. Callers must not attach actor, view, operation, map,
|
|
64
|
+
* artifact, or filesystem identity to these metrics.
|
|
65
|
+
*/
|
|
66
|
+
export declare function recordReviewAssessment(input: {
|
|
67
|
+
readonly assessmentDurationMs?: number;
|
|
68
|
+
readonly sampleCount?: number;
|
|
69
|
+
readonly status: "assessed" | "assessment_failed" | "not_assessed";
|
|
70
|
+
}): Effect.Effect<void>;
|
|
71
|
+
export declare function observeOperation<A, E, R>(name: string, effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
|
|
72
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics.js
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { Effect, Exit, Metric } from "effect";
|
|
2
|
+
const operationTraffic = Metric.counter("ue_shed_operation_total", {
|
|
3
|
+
description: "Completed UE Shed runtime operations",
|
|
4
|
+
incremental: true
|
|
5
|
+
});
|
|
6
|
+
const operationErrors = Metric.counter("ue_shed_operation_error_total", {
|
|
7
|
+
description: "Failed UE Shed runtime operations",
|
|
8
|
+
incremental: true
|
|
9
|
+
});
|
|
10
|
+
const operationLatency = Metric.histogram("ue_shed_operation_duration_ms", {
|
|
11
|
+
boundaries: [1, 5, 10, 25, 50, 100, 250, 500, 1_000, 5_000, 30_000],
|
|
12
|
+
description: "UE Shed operation duration in milliseconds"
|
|
13
|
+
});
|
|
14
|
+
export const queueDepth = Metric.gauge("ue_shed_queue_depth", {
|
|
15
|
+
description: "Current bounded queue depth"
|
|
16
|
+
});
|
|
17
|
+
export const streamDrops = Metric.counter("ue_shed_stream_drop_total", {
|
|
18
|
+
description: "Dropped stream items",
|
|
19
|
+
incremental: true
|
|
20
|
+
});
|
|
21
|
+
export const streamGaps = Metric.counter("ue_shed_stream_gap_total", {
|
|
22
|
+
description: "Detected stream gaps",
|
|
23
|
+
incremental: true
|
|
24
|
+
});
|
|
25
|
+
export const cameraReplacements = Metric.counter("ue_shed_camera_replacement_total", {
|
|
26
|
+
description: "Camera frames replaced by bounded delivery",
|
|
27
|
+
incremental: true
|
|
28
|
+
});
|
|
29
|
+
export const authoringTransitions = Metric.frequency("ue_shed_authoring_transition_total", {
|
|
30
|
+
description: "Apply and Save authority transition outcomes"
|
|
31
|
+
});
|
|
32
|
+
export const coverage = Metric.gauge("ue_shed_coverage_ratio", {
|
|
33
|
+
description: "Domain coverage ratio from zero to one"
|
|
34
|
+
});
|
|
35
|
+
const observatoryCatalogDuration = Metric.histogram("ue_shed_observatory_catalog_duration_ms", {
|
|
36
|
+
boundaries: [1, 5, 10, 25, 50, 100, 250, 500, 1_000, 5_000],
|
|
37
|
+
description: "Unreal catalog collection duration in milliseconds"
|
|
38
|
+
});
|
|
39
|
+
const observatoryBoundsCalculations = Metric.counter("ue_shed_observatory_bounds_calculations_total", {
|
|
40
|
+
description: "Actor bounds calculations performed during catalog collection",
|
|
41
|
+
incremental: true
|
|
42
|
+
});
|
|
43
|
+
const observatoryActorsSampled = Metric.counter("ue_shed_observatory_actors_sampled_total", {
|
|
44
|
+
description: "Actors sampled by the Unreal transform producer",
|
|
45
|
+
incremental: true
|
|
46
|
+
});
|
|
47
|
+
const observatoryActorsChanged = Metric.counter("ue_shed_observatory_actors_changed_total", {
|
|
48
|
+
description: "Actors included in changed-transform packets",
|
|
49
|
+
incremental: true
|
|
50
|
+
});
|
|
51
|
+
const observatoryPackets = Metric.counter("ue_shed_observatory_packets_total", {
|
|
52
|
+
description: "Decoded Observatory transform packets",
|
|
53
|
+
incremental: true
|
|
54
|
+
});
|
|
55
|
+
const observatoryBytes = Metric.counter("ue_shed_observatory_bytes_total", {
|
|
56
|
+
description: "Bytes received on the Observatory actor stream",
|
|
57
|
+
incremental: true
|
|
58
|
+
});
|
|
59
|
+
const observatorySequenceGaps = Metric.counter("ue_shed_observatory_sequence_gap_total", {
|
|
60
|
+
description: "Detected Observatory transform sequence gaps",
|
|
61
|
+
incremental: true
|
|
62
|
+
});
|
|
63
|
+
const observatoryProducerReplacements = Metric.counter("ue_shed_observatory_producer_replacement_total", {
|
|
64
|
+
description: "Producer-side Observatory packet replacements",
|
|
65
|
+
incremental: true
|
|
66
|
+
});
|
|
67
|
+
const observatoryReceiverReplacements = Metric.counter("ue_shed_observatory_receiver_replacement_total", {
|
|
68
|
+
description: "Host receiver Observatory packet replacements",
|
|
69
|
+
incremental: true
|
|
70
|
+
});
|
|
71
|
+
const observatoryIpcReplacements = Metric.counter("ue_shed_observatory_ipc_replacement_total", {
|
|
72
|
+
description: "Workbench IPC Observatory event replacements",
|
|
73
|
+
incremental: true
|
|
74
|
+
});
|
|
75
|
+
const observatoryDecodeApplyDuration = Metric.histogram("ue_shed_observatory_decode_apply_duration_ms", {
|
|
76
|
+
boundaries: [0.1, 0.25, 0.5, 1, 2, 4, 8, 16.7, 33, 50, 100],
|
|
77
|
+
description: "Decode plus retained-state apply duration in milliseconds"
|
|
78
|
+
});
|
|
79
|
+
const observatoryPaintDuration = Metric.histogram("ue_shed_observatory_paint_duration_ms", {
|
|
80
|
+
boundaries: [0.1, 0.25, 0.5, 1, 2, 4, 8, 16.7, 33, 50, 100],
|
|
81
|
+
description: "World Scout Canvas paint duration in milliseconds"
|
|
82
|
+
});
|
|
83
|
+
const observatorySampleHz = Metric.gauge("ue_shed_observatory_sample_hz", {
|
|
84
|
+
description: "Effective Observatory transform sample cadence"
|
|
85
|
+
});
|
|
86
|
+
const observatoryPresentationHz = Metric.gauge("ue_shed_observatory_presentation_hz", {
|
|
87
|
+
description: "Effective World Scout presentation cadence"
|
|
88
|
+
});
|
|
89
|
+
const reviewAssessmentAttempts = Metric.counter("ue_shed_review_assessment_total", {
|
|
90
|
+
description: "Map Review visibility assessments with bounded producer evidence",
|
|
91
|
+
incremental: true
|
|
92
|
+
});
|
|
93
|
+
const reviewAssessmentFailures = Metric.counter("ue_shed_review_assessment_failure_total", {
|
|
94
|
+
description: "Map Review visibility assessments without usable raw evidence",
|
|
95
|
+
incremental: true
|
|
96
|
+
});
|
|
97
|
+
const reviewAssessmentDuration = Metric.histogram("ue_shed_review_assessment_duration_ms", {
|
|
98
|
+
boundaries: [0.1, 0.25, 0.5, 1, 2, 4, 8, 16, 33, 50, 100, 250, 500, 1_000, 5_000],
|
|
99
|
+
description: "Unreal auxiliary visibility assessment and readback duration in milliseconds"
|
|
100
|
+
});
|
|
101
|
+
const reviewAssessmentSamples = Metric.histogram("ue_shed_review_assessment_samples", {
|
|
102
|
+
boundaries: [0, 1, 9, 64, 256, 1_024, 4_096, 16_384, 57_600],
|
|
103
|
+
description: "Bounded image-space or collision samples in a Map Review visibility assessment"
|
|
104
|
+
});
|
|
105
|
+
export const observatoryMetrics = {
|
|
106
|
+
actorsChanged: observatoryActorsChanged,
|
|
107
|
+
actorsSampled: observatoryActorsSampled,
|
|
108
|
+
boundsCalculations: observatoryBoundsCalculations,
|
|
109
|
+
bytes: observatoryBytes,
|
|
110
|
+
catalogDuration: observatoryCatalogDuration,
|
|
111
|
+
decodeApplyDuration: observatoryDecodeApplyDuration,
|
|
112
|
+
ipcReplacements: observatoryIpcReplacements,
|
|
113
|
+
packets: observatoryPackets,
|
|
114
|
+
paintDuration: observatoryPaintDuration,
|
|
115
|
+
presentationHz: observatoryPresentationHz,
|
|
116
|
+
producerReplacements: observatoryProducerReplacements,
|
|
117
|
+
receiverReplacements: observatoryReceiverReplacements,
|
|
118
|
+
sampleHz: observatorySampleHz,
|
|
119
|
+
sequenceGaps: observatorySequenceGaps
|
|
120
|
+
};
|
|
121
|
+
export const reviewAssessmentMetrics = {
|
|
122
|
+
attempts: reviewAssessmentAttempts,
|
|
123
|
+
duration: reviewAssessmentDuration,
|
|
124
|
+
failures: reviewAssessmentFailures,
|
|
125
|
+
samples: reviewAssessmentSamples
|
|
126
|
+
};
|
|
127
|
+
export const operationMetrics = {
|
|
128
|
+
errors: operationErrors,
|
|
129
|
+
latency: operationLatency,
|
|
130
|
+
traffic: operationTraffic
|
|
131
|
+
};
|
|
132
|
+
export function recordStreamState(state) {
|
|
133
|
+
return Effect.all([
|
|
134
|
+
Metric.update(queueDepth, state.queueDepth),
|
|
135
|
+
Metric.update(streamDrops, state.drops),
|
|
136
|
+
Metric.update(streamGaps, state.gaps)
|
|
137
|
+
]).pipe(Effect.asVoid);
|
|
138
|
+
}
|
|
139
|
+
export const recordCameraReplacements = (count) => Metric.update(cameraReplacements, count);
|
|
140
|
+
export const recordAuthoringTransition = (transition) => Metric.update(authoringTransitions, transition);
|
|
141
|
+
export const recordCoverage = (ratio) => Metric.update(coverage, Math.max(0, Math.min(1, ratio)));
|
|
142
|
+
export function recordObservatoryCatalog(input) {
|
|
143
|
+
return Effect.all([
|
|
144
|
+
Metric.update(observatoryCatalogDuration, Math.max(0, input.durationMs)),
|
|
145
|
+
Metric.update(observatoryBoundsCalculations, Math.max(0, input.boundsCalculations))
|
|
146
|
+
]).pipe(Effect.asVoid);
|
|
147
|
+
}
|
|
148
|
+
export function recordObservatoryPacket(input) {
|
|
149
|
+
return Effect.all([
|
|
150
|
+
Metric.update(observatoryPackets, 1),
|
|
151
|
+
Metric.update(observatoryBytes, Math.max(0, input.bytes)),
|
|
152
|
+
Metric.update(observatoryActorsSampled, Math.max(0, input.actorsSampled)),
|
|
153
|
+
Metric.update(observatoryActorsChanged, Math.max(0, input.actorsChanged)),
|
|
154
|
+
Metric.update(observatoryDecodeApplyDuration, Math.max(0, input.decodeApplyMs)),
|
|
155
|
+
Metric.update(observatoryProducerReplacements, Math.max(0, input.producerReplacements ?? 0)),
|
|
156
|
+
Metric.update(observatorySequenceGaps, input.sequenceGap === true ? 1 : 0)
|
|
157
|
+
]).pipe(Effect.asVoid);
|
|
158
|
+
}
|
|
159
|
+
export const recordObservatoryReceiverReplacements = (count) => Metric.update(observatoryReceiverReplacements, Math.max(0, count));
|
|
160
|
+
export const recordObservatoryIpcReplacements = (count) => Metric.update(observatoryIpcReplacements, Math.max(0, count));
|
|
161
|
+
export const recordObservatoryPaintDuration = (durationMs) => Metric.update(observatoryPaintDuration, Math.max(0, durationMs));
|
|
162
|
+
export function recordObservatoryCadence(input) {
|
|
163
|
+
const updates = [];
|
|
164
|
+
if (input.sampleHz !== undefined) {
|
|
165
|
+
updates.push(Metric.update(observatorySampleHz, Math.max(0, input.sampleHz)));
|
|
166
|
+
}
|
|
167
|
+
if (input.presentationHz !== undefined) {
|
|
168
|
+
updates.push(Metric.update(observatoryPresentationHz, Math.max(0, input.presentationHz)));
|
|
169
|
+
}
|
|
170
|
+
return updates.length === 0 ? Effect.void : Effect.all(updates).pipe(Effect.asVoid);
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Aggregates only bounded assessment facts. Callers must not attach actor, view, operation, map,
|
|
174
|
+
* artifact, or filesystem identity to these metrics.
|
|
175
|
+
*/
|
|
176
|
+
export function recordReviewAssessment(input) {
|
|
177
|
+
const updates = [Metric.update(reviewAssessmentAttempts, 1)];
|
|
178
|
+
if (input.status === "assessment_failed") {
|
|
179
|
+
updates.push(Metric.update(reviewAssessmentFailures, 1));
|
|
180
|
+
}
|
|
181
|
+
if (input.assessmentDurationMs !== undefined) {
|
|
182
|
+
updates.push(Metric.update(reviewAssessmentDuration, Math.max(0, input.assessmentDurationMs)));
|
|
183
|
+
}
|
|
184
|
+
if (input.sampleCount !== undefined) {
|
|
185
|
+
updates.push(Metric.update(reviewAssessmentSamples, Math.max(0, input.sampleCount)));
|
|
186
|
+
}
|
|
187
|
+
return Effect.all(updates).pipe(Effect.asVoid);
|
|
188
|
+
}
|
|
189
|
+
export function observeOperation(name, effect) {
|
|
190
|
+
return Effect.gen(function* () {
|
|
191
|
+
const started = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
|
|
192
|
+
const exit = yield* Effect.exit(effect);
|
|
193
|
+
const finished = yield* Effect.clockWith((clock) => clock.currentTimeMillis);
|
|
194
|
+
yield* Metric.update(operationTraffic, 1);
|
|
195
|
+
yield* Metric.update(operationLatency, Math.max(0, finished - started));
|
|
196
|
+
if (Exit.isFailure(exit))
|
|
197
|
+
yield* Metric.update(operationErrors, 1);
|
|
198
|
+
return yield* exit;
|
|
199
|
+
}).pipe(Effect.withSpan(name), Effect.annotateSpans("operation", name));
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ue-shed/observability",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Headless OpenTelemetry composition, bounded metrics, and runtime health for UE Shed hosts.",
|
|
5
5
|
"homepage": "https://github.com/ue-shed/ue-shed#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -29,6 +29,10 @@
|
|
|
29
29
|
"./health": {
|
|
30
30
|
"types": "./dist/health.d.ts",
|
|
31
31
|
"import": "./dist/health.js"
|
|
32
|
+
},
|
|
33
|
+
"./metrics": {
|
|
34
|
+
"types": "./dist/metrics.d.ts",
|
|
35
|
+
"import": "./dist/metrics.js"
|
|
32
36
|
}
|
|
33
37
|
},
|
|
34
38
|
"publishConfig": {
|