Telemetry
ZeroFS sends usage events to PostHog under a randomly generated installation ID. Telemetry is enabled by default and can be disabled in the configuration.
What Is Collected
ZeroFS sends two types of events to PostHog:
Startup Event
Sent once each time the server starts:
| Property | Example | Purpose |
|---|---|---|
version | 2.x.y | Track adoption of new releases |
os | linux | Know which platforms to prioritize |
arch | x86_64 | Know which architectures to support |
backend_type | s3, gcs, azure, local | Understand which storage backends are used |
protocols | ["nfs", "9p"] | Understand which protocols are used |
Filesystem Stats
Sent once on startup, then every hour:
| Property | Example | Purpose |
|---|---|---|
version | 2.x.y | Correlate stats with versions |
used_bytes | 1073741824 | Understand typical filesystem sizes |
used_inodes | 4521 | Understand typical file counts |
max_bytes | 107374182400 | Understand quota configurations |
compression | Zstd(3) | Understand compression preferences |
cache_disk_gb | 10.0 | Understand cache sizing |
cache_memory_gb | 2.0 | Understand memory cache sizing |
Data Not Included in Event Properties
- No file names, paths, or contents
- No encryption passwords or keys
- No cloud provider credentials
- No account name, email address, or other user profile
Installation Identity
A random UUID is generated on first run and stored in the cache directory as zerofs-telemetry-id. It is sent as PostHog's distinct_id, allowing events from the same installation to be grouped. ZeroFS does not associate it with a user account.
Disable Telemetry
Add the following to your configuration file:
[telemetry]
enabled = false
When the [telemetry] section is absent from the config, telemetry is enabled by default.
Implementation
Telemetry uses HTTPS POST requests to PostHog's ingestion API. Events are sent asynchronously with a five-second timeout and do not block filesystem operations. Delivery errors are ignored. The source code is in src/telemetry.rs.