@@ -26,8 +26,8 @@ const PROVISIONING_STATUSES: ReadonlySet<WorkspaceStatus> = new Set([
2626
2727interface ObservedWorkspaceState {
2828 readonly status : WorkspaceStatus ;
29- readonly transition : WorkspaceBuild [ "transition" ] ;
30- readonly reason : WorkspaceBuild [ "reason" ] ;
29+ readonly buildTransition : WorkspaceBuild [ "transition" ] ;
30+ readonly buildReason : WorkspaceBuild [ "reason" ] ;
3131 readonly observedAtMs : number ;
3232}
3333
@@ -53,12 +53,16 @@ export class WorkspaceStateTelemetry {
5353 ) { }
5454
5555 public observe ( workspace : Workspace ) : void {
56- const { status, transition, reason } = workspace . latest_build ;
56+ const {
57+ status,
58+ transition : buildTransition ,
59+ reason : buildReason ,
60+ } = workspace . latest_build ;
5761 const previous = this . observed ;
5862 if (
5963 previous ?. status === status &&
60- previous . transition === transition &&
61- previous . reason === reason
64+ previous . buildTransition === buildTransition &&
65+ previous . buildReason === buildReason
6266 ) {
6367 return ;
6468 }
@@ -86,20 +90,25 @@ export class WorkspaceStateTelemetry {
8690 workspaceName : this . workspaceName ,
8791 from : previous ?. status ?? INITIAL_STATE ,
8892 to : status ,
89- transition,
90- reason,
93+ "build. transition" : buildTransition ,
94+ "build. reason" : buildReason ,
9195 } ,
9296 measurements ,
9397 ) ;
94- this . observed = { status, transition, reason, observedAtMs : now } ;
98+ this . observed = {
99+ status,
100+ buildTransition,
101+ buildReason,
102+ observedAtMs : now ,
103+ } ;
95104 }
96105}
97106
98107/**
99108 * Emits `workspace.agent.state_transitioned` as the agent's `status` and
100109 * `lifecycle_state` change. The agent has two state dimensions so the event
101- * carries qualified `fromStatus`/`toStatus` and `fromLifecycleState`/
102- * `toLifecycleState` properties. Construct one per workspace.
110+ * carries `status.*` and `lifecycle_state.*` properties. Construct one per
111+ * workspace.
103112 */
104113export class WorkspaceAgentTelemetry {
105114 private observed : ObservedAgentState | undefined ;
@@ -124,10 +133,10 @@ export class WorkspaceAgentTelemetry {
124133 {
125134 workspaceName : this . workspaceName ,
126135 agentName : agent . name ,
127- fromStatus : previous ?. status ?? INITIAL_STATE ,
128- toStatus : agent . status ,
129- fromLifecycleState : previous ?. lifecycleState ?? INITIAL_STATE ,
130- toLifecycleState : agent . lifecycle_state ,
136+ "status.from" : previous ?. status ?? INITIAL_STATE ,
137+ "status.to" : agent . status ,
138+ "lifecycle_state.from" : previous ?. lifecycleState ?? INITIAL_STATE ,
139+ "lifecycle_state.to" : agent . lifecycle_state ,
131140 } ,
132141 previous ? { observedDurationMs : now - previous . observedAtMs } : { } ,
133142 ) ;
0 commit comments