Skip to content

Conversation

@zanesq
Copy link
Collaborator

@zanesq zanesq commented Dec 9, 2025

Summary

Add remaining telemetry and updated modal text

# Telemetry Events

## 1. `session_started` Event

Fired once when a new session begins.

### Properties

| Property | Type | Description |
|----------|------|-------------|
| `os` | string | Operating system (e.g., "macos", "linux", "windows") |
| `arch` | string | CPU architecture (e.g., "x86_64", "aarch64") |
| `version` | string | Goose version from Cargo.toml |
| `platform_version` | string | OS version (e.g., "15.1" on macOS, VERSION_ID on Linux) |
| `install_method` | string | How goose was installed: "homebrew", "cargo", "desktop", or "binary" |
| `interface` | string | How the session was started: "cli" or "desktop" |
| `is_resumed` | boolean | Whether this is a resumed session vs new session |
| `session_number` | number | Total number of sessions for this installation (increments each session) |
| `days_since_install` | number | Days since first session on this installation |
| `provider` | string | LLM provider name (e.g., "openai", "anthropic") |
| `model` | string | Model name (e.g., "gpt-4o", "claude-sonnet-4-20250514") |
| `extensions_count` | number | Number of enabled extensions |
| `extensions` | string[] | List of enabled extension names |
| `total_sessions` | number | Total sessions in session history |
| `total_tokens` | number | Total tokens used across all sessions |

## 2. `error` Event

Fired in real-time when a provider error occurs.

### Properties

| Property | Type | Description |
|----------|------|-------------|
| `error_type` | string | Error category (see values below) |
| `version` | string | Goose version |
| `interface` | string | "cli" or "desktop" |
| `os` | string | Operating system |
| `arch` | string | CPU architecture |
| `platform_version` | string | OS version |
| `provider` | string | LLM provider name |
| `model` | string | Model name |

### Error Types

| Value | Description |
|-------|-------------|
| `auth` | Authentication error |
| `context_length` | Context length exceeded |
| `rate_limit` | Rate limit exceeded |
| `server` | Server error |
| `request` | Request failed |
| `execution` | Execution error |
| `usage` | Usage data error |
| `not_implemented` | Unsupported operation |

## Unique Installation Identification

- **distinct_id**: Persistent `installation_id` (UUID v4) stored in `~/.local/state/goose/telemetry_installation.json`
- Unique per installation, persists across sessions
- Only regenerated if the file is deleted

Copy link
Collaborator

@michaelneale michaelneale left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tried it out and looks good. Error stuff I wanted to be sure wouldn't leak anyting but seems solid.

@zanesq zanesq merged commit 4dbbdbd into micn/posthog Dec 10, 2025
5 checks passed
@zanesq zanesq deleted the zane/posthog/mo-metrics branch December 10, 2025 00:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants