Skip to content

Commit 88bdd5d

Browse files
committed
add stable
1 parent e467547 commit 88bdd5d

4 files changed

Lines changed: 402 additions & 2 deletions

File tree

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
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(28d)
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(28d)
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+
31+
// =============================================================================
32+
// MANAGER_REGISTRATION.FAILED — Total Failures by Manager × Extension Version (stable >= 1.24.0)
33+
// Total failure count per manager per version, regardless of error type.
34+
// MachinePct = % of machines on that version that had any registration failure for this manager.
35+
// Same manager name appears in consecutive rows, sorted by version ascending.
36+
// =============================================================================
37+
let totalByVersion = RawEventsVSCodeExt
38+
| where ServerTimestamp > ago(28d)
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(28d)
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(28d)
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;
73+
RawEventsVSCodeExt
74+
| where ServerTimestamp > ago(28d)
75+
| where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
76+
| extend ExtVersion = tostring(Properties["common.extversion"])
77+
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtVersion))
78+
| where _minor >= 24 and (_minor % 2) == 0
79+
| where tostring(Properties.errortype) == "spawn_timeout"
80+
| summarize
81+
EventCount = count(),
82+
UniqueMachines = dcount(VSCodeMachineId)
83+
by ManagerName = tostring(Properties.managername), ExtVersion
84+
| join kind=inner totalByVersion on ExtVersion
85+
| extend MachinePct = round(todouble(UniqueMachines) / todouble(TotalMachines) * 100, 2)
86+
| project ManagerName, ExtVersion, EventCount, UniqueMachines, TotalMachines, MachinePct
87+
| order by ManagerName asc, ExtVersion asc
88+
89+
90+
91+
// =============================================================================
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.
96+
// =============================================================================
97+
let totalByVersion = RawEventsVSCodeExt
98+
| where ServerTimestamp > ago(28d)
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(28d)
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(28d)
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;
135+
RawEventsVSCodeExt
136+
| where ServerTimestamp > ago(28d)
137+
| where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
138+
| extend ExtVersion = tostring(Properties["common.extversion"])
139+
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtVersion))
140+
| 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
146+
| join kind=inner totalByVersion on ExtVersion
147+
| extend MachinePct = round(todouble(UniqueMachines) / todouble(TotalMachines) * 100, 2)
148+
| project ManagerName, ExtVersion, EventCount, UniqueMachines, TotalMachines, MachinePct
149+
| order by ManagerName asc, ExtVersion asc
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Registration Failure Stage Breakdown per Manager (stable >= 1.24.0)
2+
// For events that DO have failureStage, what values are present?
3+
// Filters to stable releases only (even minor version >= 24, e.g. 1.24.x, 1.26.x, ...).
4+
// High counts at a specific stage → that code path is the priority fix target.
5+
RawEventsVSCodeExt
6+
| where ServerTimestamp > ago(28d)
7+
| where EventName == "ms-python.vscode-python-envs/manager_registration.failed"
8+
| extend ExtVersion = tostring(Properties["common.extversion"])
9+
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtVersion))
10+
| where _minor >= 24 and (_minor % 2) == 0
11+
| extend FailureStage = tostring(Properties.failurestage)
12+
| where isnotempty(FailureStage)
13+
| summarize EventCount = count(), Machines = dcount(VSCodeMachineId)
14+
by ManagerName = tostring(Properties.managername), FailureStage, ExtVersion
15+
| join kind=inner (
16+
RawEventsVSCodeExt
17+
| where ServerTimestamp > ago(28d)
18+
| where ExtensionName == "ms-python.vscode-python-envs"
19+
| extend ExtVersion = tostring(Properties["common.extversion"])
20+
| where ExtVersion != ""
21+
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtVersion))
22+
| where _minor >= 24 and (_minor % 2) == 0
23+
| summarize TotalMachines = dcount(VSCodeMachineId) by ExtVersion
24+
) on ExtVersion
25+
| extend MachinePct = round(todouble(Machines) / todouble(TotalMachines) * 100, 2)
26+
| project ManagerName, FailureStage, ExtVersion, EventCount, Machines, TotalMachines, MachinePct
27+
| order by ManagerName asc, FailureStage asc, ExtVersion asc

analysis/kusto/dashboard.ipynb renamed to analysis/kusto/dashboard-all-versions.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@
335335
],
336336
"metadata": {
337337
"kernelspec": {
338-
"display_name": ".venv",
338+
"display_name": ".venv (3.13.12)",
339339
"language": "python",
340340
"name": "python3"
341341
},
@@ -349,7 +349,7 @@
349349
"name": "python",
350350
"nbconvert_exporter": "python",
351351
"pygments_lexer": "ipython3",
352-
"version": "3.13.12"
352+
"version": "3.13.13"
353353
}
354354
},
355355
"nbformat": 4,

0 commit comments

Comments
 (0)