1- // =============================================================================
2- // MANAGER_REGISTRATION.FAILED — Property Validation by Manager × Error Type (stable >= 1.24.0)
3- // For each manager, shows the breakdown of error types from registration failures.
4- // errorType reference: spawn_timeout, spawn_enoent, permission_denied, canceled,
5- // parse_error, process_crash, unknown.
6- // MachinePct = % of all stable machines that hit this manager+errorType combination.
7- // =============================================================================
8- RawEventsVSCodeExt
9- | where ServerTimestamp > ago (28 d )
10- | where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
11- | extend ExtVersion = tostring (Properties["common.extversion" ])
12- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
13- | where _minor >= 24 and (_minor % 2 ) == 0
14- | summarize
15- EventCount = count (),
16- UniqueMachines = dcount (VSCodeMachineId)
17- by ManagerName = tostring (Properties.managername), ErrorType = tostring (Properties.errortype)
18- | extend TotalUniqueMachines = toscalar (
19- RawEventsVSCodeExt
20- | where ServerTimestamp > ago (28 d )
21- | where ExtensionName == "ms-python.vscode-python-envs"
22- | where ExtensionVersion != ""
23- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtensionVersion))
24- | where _minor >= 24 and (_minor % 2 ) == 0
25- | summarize dcount (VSCodeMachineId)
26- )
27- | extend MachinePct = round (todouble (UniqueMachines) / todouble (TotalUniqueMachines) * 100 , 2 )
28- | order by EventCount desc
29-
30-
311// =============================================================================
322// MANAGER_REGISTRATION.FAILED — Total Failures by Manager × Extension Version (stable >= 1.24.0)
333// Total failure count per manager per version, regardless of error type.
344// MachinePct = % of machines on that version that had any registration failure for this manager.
355// Same manager name appears in consecutive rows, sorted by version ascending.
6+ // materialize() is used only for the lean denominator (VSCodeMachineId + ExtVersion, no Properties)
7+ // to stay within the cluster's materialize cache limit. Failures are scanned separately since
8+ // manager_registration.failed events are a tiny fraction of total events.
369// =============================================================================
37- let totalByVersion = RawEventsVSCodeExt
38- | where ServerTimestamp > ago (28 d )
39- | where ExtensionName == "ms-python.vscode-python-envs"
40- | extend ExtVersion = tostring (Properties["common.extversion" ])
41- | where ExtVersion != ""
42- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
43- | where _minor >= 24 and (_minor % 2 ) == 0
44- | summarize TotalMachines = dcount (VSCodeMachineId) by ExtVersion;
45- RawEventsVSCodeExt
46- | where ServerTimestamp > ago (28 d )
47- | where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
48- | extend ExtVersion = tostring (Properties["common.extversion" ])
49- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
50- | where _minor >= 24 and (_minor % 2 ) == 0
51- | summarize
52- EventCount = count (),
53- UniqueMachines = dcount (VSCodeMachineId)
54- by ManagerName = tostring (Properties.managername), ExtVersion
55- | join kind =inner totalByVersion on ExtVersion
56- | extend MachinePct = round (todouble (UniqueMachines) / todouble (TotalMachines) * 100 , 2 )
57- | project ManagerName, ExtVersion, EventCount, UniqueMachines, TotalMachines, MachinePct
58- | order by ManagerName asc , ExtVersion asc
59-
60-
61- // =============================================================================
62- // SPAWN_TIMEOUT Failures by Manager × Extension Version (stable >= 1.24.0)
63- // Shows whether spawn_timeout is improving or worsening across stable releases.
64- // If a new stable version shows higher MachinePct → that release regressed timeout handling.
65- // =============================================================================
66- let totalByVersion = RawEventsVSCodeExt
67- | where ServerTimestamp > ago (28 d )
68- | where ExtensionName == "ms-python.vscode-python-envs"
69- | where ExtensionVersion != ""
70- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtensionVersion))
71- | where _minor >= 24 and (_minor % 2 ) == 0
72- | summarize TotalMachines = dcount (VSCodeMachineId) by ExtVersion = ExtensionVersion;
10+ let stableVersions = materialize (
11+ RawEventsVSCodeExt
12+ | where ServerTimestamp > ago (28 d )
13+ | where ExtensionName == "ms-python.vscode-python-envs"
14+ | extend ExtVersion = tostring (Properties["common.extversion" ])
15+ | where isnotempty (ExtVersion)
16+ | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
17+ | where _minor >= 24 and (_minor % 2 ) == 0
18+ | project VSCodeMachineId, ExtVersion
19+ );
20+ let totalByVersion = stableVersions
21+ | summarize TotalMachines = dcount (VSCodeMachineId) by ExtVersion;
7322RawEventsVSCodeExt
7423| where ServerTimestamp > ago (28 d )
7524| where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
7625| extend ExtVersion = tostring (Properties["common.extversion" ])
7726| extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
7827| where _minor >= 24 and (_minor % 2 ) == 0
79- | where tostring (Properties.errortype) == "spawn_timeout"
8028| summarize
8129 EventCount = count (),
8230 UniqueMachines = dcount (VSCodeMachineId)
@@ -87,63 +35,37 @@ RawEventsVSCodeExt
8735| order by ManagerName asc , ExtVersion asc
8836
8937
90-
9138// =============================================================================
92- // Process Crash Failures by Manager × Extension Version (stable >= 1.24.0)
93- // Uses leftouter join from totalByVersion so ALL stable versions appear, including
94- // those with 0 crashes. With kind=inner, versions that had no process_crash failures
95- // (e.g. 1.24.x) are silently dropped — that's why only 1.26.0 was visible before.
39+ // SPAWN_TIMEOUT / PROCESS_CRASH / UNKNOWN Failures by Manager × Version (stable >= 1.24.0)
40+ // Merged from three separate queries into one to reduce table scans.
41+ // ErrorType column distinguishes the three categories — filter on it to reproduce the old views.
42+ // Note: versions with zero failures for a given error type are omitted (no row = no failures).
43+ // materialize() used only for the lean denominator; failures scanned separately.
9644// =============================================================================
97- let totalByVersion = RawEventsVSCodeExt
98- | where ServerTimestamp > ago (28 d )
99- | where ExtensionName == "ms-python.vscode-python-envs"
100- | where ExtensionVersion != ""
101- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtensionVersion))
102- | where _minor >= 24 and (_minor % 2 ) == 0
103- | summarize TotalMachines = dcount (VSCodeMachineId) by ExtVersion = ExtensionVersion;
104- let crashes = RawEventsVSCodeExt
105- | where ServerTimestamp > ago (28 d )
106- | where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
107- | extend ExtVersion = tostring (Properties["common.extversion" ])
108- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
109- | where _minor >= 24 and (_minor % 2 ) == 0
110- | where tostring (Properties.errortype) == "process_crash"
111- | summarize
112- EventCount = count (),
113- UniqueMachines = dcount (VSCodeMachineId)
114- by ManagerName = tostring (Properties.managername), ExtVersion;
115- totalByVersion
116- | join kind =leftouter crashes on ExtVersion
117- | where isnotempty (ManagerName)
118- | extend MachinePct = round (todouble (UniqueMachines) / todouble (TotalMachines) * 100 , 2 )
119- | project ManagerName, ExtVersion, EventCount, UniqueMachines, TotalMachines, MachinePct
120- | order by ManagerName asc , ExtVersion asc
121-
122-
123- // =============================================================================
124- // UNKNOWN Failures by Manager × Extension Version (stable >= 1.24.0)
125- // Shows whether unknown (unclassified) errors are improving or worsening across stable releases.
126- // High counts in the latest stable version → new unclassified error paths need investigation.
127- // =============================================================================
128- let totalByVersion = RawEventsVSCodeExt
129- | where ServerTimestamp > ago (28 d )
130- | where ExtensionName == "ms-python.vscode-python-envs"
131- | where ExtensionVersion != ""
132- | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtensionVersion))
133- | where _minor >= 24 and (_minor % 2 ) == 0
134- | summarize TotalMachines = dcount (VSCodeMachineId) by ExtVersion = ExtensionVersion;
45+ let stableVersions = materialize (
46+ RawEventsVSCodeExt
47+ | where ServerTimestamp > ago (28 d )
48+ | where ExtensionName == "ms-python.vscode-python-envs"
49+ | extend ExtVersion = tostring (Properties["common.extversion" ])
50+ | where isnotempty (ExtVersion)
51+ | extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
52+ | where _minor >= 24 and (_minor % 2 ) == 0
53+ | project VSCodeMachineId, ExtVersion
54+ );
55+ let totalByVersion = stableVersions
56+ | summarize TotalMachines = dcount (VSCodeMachineId) by ExtVersion;
13557RawEventsVSCodeExt
13658| where ServerTimestamp > ago (28 d )
13759| where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
60+ | where tostring (Properties.errortype) in ("spawn_timeout" , "process_crash" , "unknown" )
13861| extend ExtVersion = tostring (Properties["common.extversion" ])
13962| extend _minor = toint (extract ("^1\\.(\\d+)" , 1 , ExtVersion))
14063| where _minor >= 24 and (_minor % 2 ) == 0
141- | where tostring (Properties.errortype) == "unknown"
142- | summarize
143- EventCount = count (),
144- UniqueMachines = dcount (VSCodeMachineId)
145- by ManagerName = tostring (Properties.managername), ExtVersion
64+ | summarize EventCount = count (), UniqueMachines = dcount (VSCodeMachineId)
65+ by ManagerName = tostring (Properties.managername),
66+ ErrorType = tostring (Properties.errortype),
67+ ExtVersion
14668| join kind =inner totalByVersion on ExtVersion
14769| extend MachinePct = round (todouble (UniqueMachines) / todouble (TotalMachines) * 100 , 2 )
148- | project ManagerName, ExtVersion, EventCount, UniqueMachines, TotalMachines, MachinePct
149- | order by ManagerName asc , ExtVersion asc
70+ | project ManagerName, ErrorType, ExtVersion, EventCount, UniqueMachines, TotalMachines, MachinePct
71+ | order by ManagerName asc , ErrorType asc , ExtVersion asc
0 commit comments