Add data prompt (#267543)

For querying telemetry data. Uses the Azure MCP Server's kusto tool.
This commit is contained in:
Tyler James Leonhardt
2025-09-19 16:00:11 -07:00
committed by GitHub
parent ada50f7949
commit b20a91e37a
4 changed files with 86 additions and 0 deletions

50
.github/prompts/data.prompt.md vendored Normal file
View File

@@ -0,0 +1,50 @@
---
mode: agent
description: 'Answer data questions by querying telemetry docs and Kusto data.'
tools: ['edit', 'search', 'extensions', 'fetch', 'usages', 'runCommands', 'todos', 'kusto']
---
<overview>
Your goal is to answer questions about VS Code telemetry data, events, properties, and related documentation by using the context from the vscode-telemetry-docs repository.
</overview>
<instructions>
Before answering any telemetry-related questions:
1. **Check for Kusto tool**: Verify that the `kusto` tool is available for querying telemetry data
- If the Kusto tool is not available, inform the user to install the "Azure MCP Server" VS Code extension
- This extension provides access to Kusto/Azure Data Explorer functionality needed for telemetry queries
2. **Check for telemetry docs**: First verify that the `vscode-telemetry-docs/` folder exists in the workspace
- If it doesn't exist, inform the user to run `npm run mixin-telemetry-docs` to clone the telemetry documentation
- Wait for the user to run this command before proceeding
3. **Read context**: Once the folder exists, read the file `vscode-telemetry-docs/.github/copilot-instructions.md` to understand:
- The structure and purpose of the telemetry documentation
- How to navigate and interpret the telemetry data
- Key concepts and terminology used in VS Code telemetry
4. **Run actual queries**: Don't just describe what could be queried - actually execute Kusto queries to provide real data and insights:
- Use the appropriate Kusto cluster and database for the data type
- Always include proper time filtering to limit data volume
- Default to a rolling 28-day window if no specific timeframe is requested
- Format and present the query results clearly to answer the user's question
5. **Use proper time windows**: When no specific timeframe is provided:
- Default to a rolling 28-day window (standard practice in VS Code telemetry)
- Use full day boundaries to avoid partial day data
- Follow the time filtering patterns from the telemetry documentation
6. **Be specific**: Reference specific files, sections, or examples from the telemetry docs when possible to support your answers
7. **Stay focused**: Keep answers focused on telemetry-related topics and data questions
</instructions>
<format>
Your response should include:
- The actual Kusto query executed (formatted nicely)
- Real query results with data to answer the user's question
- Interpretation and analysis of the results
- References to specific documentation files when applicable
- Additional context or insights from the telemetry data
</format>

1
.gitignore vendored
View File

@@ -22,3 +22,4 @@ product.overrides.json
*.snap.actual
*.tsbuildinfo
.vscode-test
vscode-telemetry-docs/

View File

@@ -0,0 +1,34 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { execSync } from 'child_process';
import { join, resolve } from 'path';
import { existsSync, rmSync } from 'fs';
import { fileURLToPath } from 'url';
const rootPath = resolve(fileURLToPath(import.meta.url), '..', '..', '..');
const telemetryDocsPath = join(rootPath, 'vscode-telemetry-docs');
const repoUrl = 'https://github.com/microsoft/vscode-telemetry-docs';
console.log('Cloning vscode-telemetry-docs repository...');
// Remove existing directory if it exists
if (existsSync(telemetryDocsPath)) {
console.log('Removing existing vscode-telemetry-docs directory...');
rmSync(telemetryDocsPath, { recursive: true, force: true });
}
try {
// Clone the repository (shallow clone of main branch only)
console.log(`Cloning ${repoUrl} to ${telemetryDocsPath}...`);
execSync(`git clone --depth 1 --branch main --single-branch ${repoUrl} vscode-telemetry-docs`, {
cwd: rootPath,
stdio: 'inherit'
});
console.log('Successfully cloned vscode-telemetry-docs repository.');
} catch (error) {
console.error('Failed to clone vscode-telemetry-docs repository:', error.message);
process.exit(1);
}

View File

@@ -38,6 +38,7 @@
"7z": "7z",
"update-grammars": "node build/npm/update-all-grammars.mjs",
"update-localization-extension": "node build/npm/update-localization-extension.js",
"mixin-telemetry-docs": "node build/npm/mixin-telemetry-docs.mjs",
"smoketest": "node build/lib/preLaunch.js && cd test/smoke && npm run compile && node test/index.js",
"smoketest-no-compile": "cd test/smoke && node test/index.js",
"download-builtin-extensions": "node build/lib/builtInExtensions.js",