Overview
Draw Folder Structure collects anonymous performance and usage data to help improve functionality and stability. All telemetry is designed with privacy in mind and does not collect any personally identifiable information or sensitive project data.What is Collected
The extension collects the following types of data:Performance Metrics
Time taken to generate folder structure (in milliseconds)
Length of the generated Markdown output
Usage Statistics
The drawing style used for generation (e.g., “EmojiDashes”, “ClassicDashes”)
Whether the selected item was a directory or file
Whether recursive folder exploration was enabled
Whether .gitignore rules were respected
Number of exclusion patterns configured
Technical Context
Extension identifier: “drawfolderstructure”
Version of the Draw Folder Structure extension
Version of VS Code being used
VS Code language/locale setting
Operating system platform (e.g., “linux”, “darwin”, “win32”)
System architecture (e.g., “x64”, “arm64”)
Error Information
Type of error encountered (if any)
Technical error information to improve stability (no file paths or content)
What is NOT Collected
Tracked Events
The extension tracks the following events:Extension Lifecycle
Triggered when the extension is activated.Properties:
version: Current extension versionisFirstActivation: Whether this is the first time activatingpreviousVersion: Previously installed version (if any)
Triggered when the extension is updated to a new version.Properties:
fromVersion: Previous versiontoVersion: New version
Triggered when the extension is deactivated.Properties:
version: Current extension version
Command Execution
Triggered when the “Generate Markdown structure” command is executed.Properties:
style: Drawing style usedisDirectory: Whether target was a directoryallowRecursion: Recursion settingrespectGitignore: Gitignore settingexcludePatternsCount: Number of exclusion patternssuccess: Whether generation succeedederrorType: Type of error (if failed)
duration: Time taken (ms)outputLength: Length of output
Telemetry Service
Triggered when the telemetry service initializes successfully.Properties:
initializationTime: ISO timestamphasClient: Whether Azure client initialized
Implementation
The telemetry system is implemented using Azure Application Insights via theapplicationinsights npm package.
Service Location
The telemetry service is defined insrc/services/telemetry.ts:1
Key Features
Automatic Collection Control
Automatic Collection Control
The service disables most automatic collection features to ensure privacy:Only exception tracking is enabled to help identify and fix bugs.
Common Properties
Common Properties
Every telemetry event includes common properties for context:
Graceful Failure
Graceful Failure
All telemetry operations fail silently to ensure they never impact extension functionality:
API Methods
The telemetry service exposes the following methods:Privacy and Compliance
All telemetry data is:
- Anonymous: No personally identifiable information
- Aggregate: Used to understand overall usage patterns
- Secure: Transmitted over encrypted connections
- Purpose-limited: Used solely to improve the extension
Data Retention
Telemetry data is stored in Azure Application Insights according to Azure’s data retention policies. For more details, see Azure Application Insights documentation.Opting Out
If you wish to disable telemetry:- The extension respects VS Code’s global telemetry settings
- You can disable telemetry for all extensions in VS Code settings:
- Open Settings (
Ctrl+,orCmd+,) - Search for “telemetry”
- Set
telemetry.telemetryLeveltooff
- Open Settings (
Source Code Reference
- Telemetry service implementation:
src/services/telemetry.ts:1 - Event tracking in extension:
src/extension.ts:1 - Azure Application Insights setup details:
AZURE_INSIGHTS_SETUP.md(in source repository)
Questions or Concerns
If you have any questions or concerns about telemetry and privacy, please:- Open an issue on GitHub
- Contact the developer at [email protected]