Skip to content

Commit 30745ec

Browse files
committed
update query
1 parent c69a893 commit 30745ec

File tree

2 files changed

+39
-72
lines changed

2 files changed

+39
-72
lines changed

analysis/kusto/00-telemetry-validation.kql

Lines changed: 2 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -229,59 +229,8 @@ RawEventsVSCodeExt
229229
| summarize
230230
EventCount = count(),
231231
UniqueMachines = dcount(VSCodeMachineId)
232-
by FailureStage = tostring(Properties.failurestage)
232+
by FailureStage = tostring(Properties.failurestage), ExtVersion
233233
| extend TotalUniqueMachines = totalMachines
234234
| extend MachinePct = round(todouble(UniqueMachines) / todouble(TotalUniqueMachines) * 100, 1)
235-
| order by EventCount desc;
236-
237-
238-
// =============================================================================
239-
// CHECK 6: Registered vs Skipped — unique machine counts per manager
240-
// For each manager that can be skipped, compare registered vs skipped machine counts.
241-
// If a manager shows 0 registered AND 0 skipped, the telemetry path may be broken.
242-
// =============================================================================
243-
let totalMachines = toscalar(
244-
RawEventsVSCodeExt
245-
| where ServerTimestamp > ago(7d)
246-
| where ExtensionName == "ms-python.vscode-python-envs"
247-
| where ExtensionVersion != ""
248-
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtensionVersion)), _patch = tolong(extract("^1\\.\\d+\\.(\\d+)", 1, ExtensionVersion))
249-
| where _minor > 23 or (_minor == 23 and _patch >= 10781012)
250-
| summarize dcount(VSCodeMachineId)
251-
);
252-
let skipped = RawEventsVSCodeExt
253-
| where ServerTimestamp > ago(7d)
254-
| where EventName == "ms-python.vscode-python-envs/manager_registration.skipped"
255-
| extend ExtVersion = tostring(Properties["common.extversion"])
256-
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtVersion)), _patch = tolong(extract("^1\\.\\d+\\.(\\d+)", 1, ExtVersion))
257-
| where _minor > 23 or (_minor == 23 and _patch >= 10781012)
258-
| summarize SkippedMachines = dcount(VSCodeMachineId) by Manager = tostring(Properties.managername);
259-
let registered = RawEventsVSCodeExt
260-
| where ServerTimestamp > ago(7d)
261-
| where EventName == "ms-python.vscode-python-envs/environment_manager.registered"
262-
| extend ExtVersion = tostring(Properties["common.extversion"])
263-
| extend _minor = toint(extract("^1\\.(\\d+)", 1, ExtVersion)), _patch = tolong(extract("^1\\.\\d+\\.(\\d+)", 1, ExtVersion))
264-
| where _minor > 23 or (_minor == 23 and _patch >= 10781012)
265-
| extend RawManagerId = tostring(Properties.managerid)
266-
| where RawManagerId has_any ("conda", "pyenv", "pipenv", "poetry")
267-
| extend Manager = case(
268-
RawManagerId has "conda", "conda",
269-
RawManagerId has "pyenv", "pyenv",
270-
RawManagerId has "pipenv", "pipenv",
271-
RawManagerId has "poetry", "poetry",
272-
RawManagerId)
273-
| summarize RegisteredMachines = dcount(VSCodeMachineId) by Manager;
274-
skipped
275-
| join kind=fullouter registered on Manager
276-
| project
277-
Manager = coalesce(Manager, Manager1),
278-
RegisteredMachines = coalesce(RegisteredMachines, 0),
279-
SkippedMachines = coalesce(SkippedMachines, 0),
280-
TotalUniqueMachines = totalMachines
281-
| extend
282-
RegisteredPct = round(todouble(RegisteredMachines) / todouble(TotalUniqueMachines) * 100, 1),
283-
SkippedPct = round(todouble(SkippedMachines) / todouble(TotalUniqueMachines) * 100, 1)
284-
| order by Manager asc;
285-
286-
235+
| order by FailureStage asc, ExtVersion desc;
287236

analysis/kusto/dashboard.ipynb

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
"metadata": {},
7676
"outputs": [],
7777
"source": [
78-
"for title, query in sections[4:]:\n",
78+
"for title, query in sections[4:-1]:\n",
7979
" display(Markdown(f\"### {title}\"))\n",
8080
" try:\n",
8181
" df = run_kql(client, query)\n",
@@ -87,9 +87,27 @@
8787
]
8888
},
8989
{
90-
"cell_type": "markdown",
90+
"cell_type": "code",
91+
"execution_count": null,
9192
"id": "5",
9293
"metadata": {},
94+
"outputs": [],
95+
"source": [
96+
"title, query = sections[-1]\n",
97+
"display(Markdown(f\"### {title}\"))\n",
98+
"try:\n",
99+
" df = run_kql(client, query)\n",
100+
" display(df)\n",
101+
" if \"TotalUniqueMachines\" in df.columns:\n",
102+
" print(f\"Total unique machines: {df['TotalUniqueMachines'].iloc[0]:,}\")\n",
103+
"except Exception as e:\n",
104+
" print(f\" ⚠️ {e}\")"
105+
]
106+
},
107+
{
108+
"cell_type": "markdown",
109+
"id": "6",
110+
"metadata": {},
93111
"source": [
94112
"---\n",
95113
"## 1. Registration Failure Stage Breakdown (28 days)\n",
@@ -101,7 +119,7 @@
101119
{
102120
"cell_type": "code",
103121
"execution_count": null,
104-
"id": "6",
122+
"id": "7",
105123
"metadata": {},
106124
"outputs": [],
107125
"source": [
@@ -111,7 +129,7 @@
111129
},
112130
{
113131
"cell_type": "markdown",
114-
"id": "7",
132+
"id": "8",
115133
"metadata": {},
116134
"source": [
117135
"---\n",
@@ -124,7 +142,7 @@
124142
{
125143
"cell_type": "code",
126144
"execution_count": null,
127-
"id": "8",
145+
"id": "9",
128146
"metadata": {},
129147
"outputs": [],
130148
"source": [
@@ -134,7 +152,7 @@
134152
},
135153
{
136154
"cell_type": "markdown",
137-
"id": "9",
155+
"id": "10",
138156
"metadata": {},
139157
"source": [
140158
"---\n",
@@ -146,7 +164,7 @@
146164
{
147165
"cell_type": "code",
148166
"execution_count": null,
149-
"id": "10",
167+
"id": "11",
150168
"metadata": {},
151169
"outputs": [],
152170
"source": [
@@ -156,7 +174,7 @@
156174
},
157175
{
158176
"cell_type": "markdown",
159-
"id": "11",
177+
"id": "12",
160178
"metadata": {},
161179
"source": [
162180
"---\n",
@@ -168,7 +186,7 @@
168186
{
169187
"cell_type": "code",
170188
"execution_count": null,
171-
"id": "12",
189+
"id": "13",
172190
"metadata": {},
173191
"outputs": [],
174192
"source": [
@@ -178,7 +196,7 @@
178196
},
179197
{
180198
"cell_type": "markdown",
181-
"id": "13",
199+
"id": "14",
182200
"metadata": {},
183201
"source": [
184202
"---\n",
@@ -190,7 +208,7 @@
190208
{
191209
"cell_type": "code",
192210
"execution_count": null,
193-
"id": "14",
211+
"id": "15",
194212
"metadata": {},
195213
"outputs": [],
196214
"source": [
@@ -223,7 +241,7 @@
223241
},
224242
{
225243
"cell_type": "markdown",
226-
"id": "15",
244+
"id": "16",
227245
"metadata": {},
228246
"source": [
229247
"---\n",
@@ -235,7 +253,7 @@
235253
{
236254
"cell_type": "code",
237255
"execution_count": null,
238-
"id": "16",
256+
"id": "17",
239257
"metadata": {},
240258
"outputs": [],
241259
"source": [
@@ -258,7 +276,7 @@
258276
},
259277
{
260278
"cell_type": "markdown",
261-
"id": "17",
279+
"id": "18",
262280
"metadata": {},
263281
"source": [
264282
"---\n",
@@ -270,7 +288,7 @@
270288
{
271289
"cell_type": "code",
272290
"execution_count": null,
273-
"id": "18",
291+
"id": "19",
274292
"metadata": {},
275293
"outputs": [],
276294
"source": [
@@ -294,7 +312,7 @@
294312
},
295313
{
296314
"cell_type": "markdown",
297-
"id": "19",
315+
"id": "20",
298316
"metadata": {},
299317
"source": [
300318
"---\n",
@@ -306,7 +324,7 @@
306324
{
307325
"cell_type": "code",
308326
"execution_count": null,
309-
"id": "20",
327+
"id": "21",
310328
"metadata": {},
311329
"outputs": [],
312330
"source": [
@@ -316,7 +334,7 @@
316334
},
317335
{
318336
"cell_type": "markdown",
319-
"id": "21",
337+
"id": "22",
320338
"metadata": {},
321339
"source": [
322340
"---\n",
@@ -328,7 +346,7 @@
328346
{
329347
"cell_type": "code",
330348
"execution_count": null,
331-
"id": "22",
349+
"id": "23",
332350
"metadata": {},
333351
"outputs": [],
334352
"source": [

0 commit comments

Comments
 (0)