summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerop Kipruto <[email protected]>2025-06-23 20:29:31 -0400
committerGitHub <[email protected]>2025-06-24 00:29:31 +0000
commitaca034fdfec0ec29bdb47c5feaa4eafd6e68fac7 (patch)
tree137496d8b1d3394e6ceeb7ccdd8e06ccdef301e8
parentb3741f7016a6b32ebdc5a9b5203191fc04910d3a (diff)
Refactor usage statistics to be a top-level setting (#1363)
This commit refactors the `usageStatisticsEnabled` setting from a sub-property of the `telemetry` configuration to a top-level setting. This change simplifies the configuration by decoupling usage statistics from the telemetry settings. The documentation has also been updated to reflect this change.
-rw-r--r--docs/cli/configuration.md28
-rw-r--r--docs/index.md1
-rw-r--r--packages/cli/src/config/config.ts3
-rw-r--r--packages/cli/src/config/settings.ts1
-rw-r--r--packages/core/src/config/config.ts7
5 files changed, 17 insertions, 23 deletions
diff --git a/docs/cli/configuration.md b/docs/cli/configuration.md
index 1efd7775..65bf80a0 100644
--- a/docs/cli/configuration.md
+++ b/docs/cli/configuration.md
@@ -169,7 +169,6 @@ In addition to a project settings file, a project's `.gemini` directory can cont
- **`target`** (string): The destination for collected telemetry. Supported values are `local` and `gcp`.
- **`otlpEndpoint`** (string): The endpoint for the OTLP Exporter.
- **`logPrompts`** (boolean): Whether or not to include the content of user prompts in the logs.
- - **`usageStatisticsEnabled`** (boolean): Enables or disables the collection of usage statistics. See [Usage Statistics](#usage-statistics) for more information.
- **Example:**
```json
"telemetry": {
@@ -179,6 +178,13 @@ In addition to a project settings file, a project's `.gemini` directory can cont
"logPrompts": false
}
```
+- **`usageStatisticsEnabled`** (boolean):
+ - **Description:** Enables or disables the collection of usage statistics. See [Usage Statistics](#usage-statistics) for more information.
+ - **Default:** `true`
+ - **Example:**
+ ```json
+ "usageStatisticsEnabled": false
+ ```
### Example `settings.json`:
@@ -201,9 +207,9 @@ In addition to a project settings file, a project's `.gemini` directory can cont
"enabled": true,
"target": "local",
"otlpEndpoint": "http://localhost:4317",
- "logPrompts": true,
- "usageStatisticsEnabled": false
- }
+ "logPrompts": true
+ },
+ "usageStatisticsEnabled": true
}
```
@@ -423,18 +429,6 @@ You can opt out of usage statistics collection at any time by setting the `usage
```json
{
- "telemetry": {
- "usageStatisticsEnabled": false
- }
-}
-```
-
-You can also disable all telemetry data collection by setting the `enabled` property to `false`:
-
-```json
-{
- "telemetry": {
- "enabled": false
- }
+ "usageStatisticsEnabled": false
}
```
diff --git a/docs/index.md b/docs/index.md
index b4ebf523..c56e8368 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -20,7 +20,6 @@ This documentation is organized into the following sections:
- **[Telemetry](./telemetry.md):** Overview of telemetry in the CLI.
- **Core Details:** Documentation for `packages/core`.
- **[Core Introduction](./core/index.md):** Overview of the core component.
- - **[Telemetry and Usage Statistics](./core/telemetry.md):** Details on configuring telemetry and usage statistics.
- **[Tools API](./core/tools-api.md):** Information on how the core manages and exposes tools.
- **Tools:**
- **[Tools Overview](./tools/index.md):** Overview of the available tools.
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index 4e5b0008..7f957245 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -226,9 +226,8 @@ export async function loadCliConfig(
process.env.OTEL_EXPORTER_OTLP_ENDPOINT ??
settings.telemetry?.otlpEndpoint,
logPrompts: argv.telemetryLogPrompts ?? settings.telemetry?.logPrompts,
- usageStatisticsEnabled:
- settings.telemetry?.usageStatisticsEnabled ?? true,
},
+ usageStatisticsEnabled: settings.usageStatisticsEnabled ?? true,
// Git-aware file filtering settings
fileFiltering: {
respectGitIgnore: settings.fileFiltering?.respectGitIgnore,
diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts
index b149216a..882df403 100644
--- a/packages/cli/src/config/settings.ts
+++ b/packages/cli/src/config/settings.ts
@@ -49,6 +49,7 @@ export interface Settings {
contextFileName?: string | string[];
accessibility?: AccessibilitySettings;
telemetry?: TelemetrySettings;
+ usageStatisticsEnabled?: boolean;
preferredEditor?: string;
bugCommand?: BugCommandSettings;
checkpointing?: CheckpointingSettings;
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index 65d69a41..a92dd7ba 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -57,7 +57,6 @@ export interface TelemetrySettings {
target?: TelemetryTarget;
otlpEndpoint?: string;
logPrompts?: boolean;
- usageStatisticsEnabled?: boolean;
}
export class MCPServerConfig {
@@ -107,6 +106,7 @@ export interface ConfigParameters {
contextFileName?: string | string[];
accessibility?: AccessibilitySettings;
telemetry?: TelemetrySettings;
+ usageStatisticsEnabled?: boolean;
fileFiltering?: {
respectGitIgnore?: boolean;
enableRecursiveFileSearch?: boolean;
@@ -142,6 +142,7 @@ export class Config {
private readonly showMemoryUsage: boolean;
private readonly accessibility: AccessibilitySettings;
private readonly telemetrySettings: TelemetrySettings;
+ private readonly usageStatisticsEnabled: boolean;
private geminiClient!: GeminiClient;
private readonly fileFiltering: {
respectGitIgnore: boolean;
@@ -181,8 +182,8 @@ export class Config {
target: params.telemetry?.target ?? DEFAULT_TELEMETRY_TARGET,
otlpEndpoint: params.telemetry?.otlpEndpoint ?? DEFAULT_OTLP_ENDPOINT,
logPrompts: params.telemetry?.logPrompts ?? true,
- usageStatisticsEnabled: params.telemetry?.usageStatisticsEnabled ?? true,
};
+ this.usageStatisticsEnabled = params.usageStatisticsEnabled ?? true;
this.fileFiltering = {
respectGitIgnore: params.fileFiltering?.respectGitIgnore ?? true,
@@ -386,7 +387,7 @@ export class Config {
}
getUsageStatisticsEnabled(): boolean {
- return this.telemetrySettings.usageStatisticsEnabled ?? true;
+ return this.usageStatisticsEnabled;
}
getExtensionContextFilePaths(): string[] {