Telemetry
AxonFlow SDKs collect anonymous usage telemetry to help us understand adoption, prioritize features, and detect version compatibility issues.
What Is Collected
When the SDK client is initialized, a single HTTP request is sent with:
| Field | Example | Purpose |
|---|---|---|
| SDK language | go | Language distribution |
| SDK version | 3.8.0 | Version adoption tracking |
| Platform version | 4.8.0 | Compatibility monitoring |
| OS | linux | Platform support priority |
| Architecture | amd64 | ARM vs x86 distribution |
| Runtime version | go1.22.0 | Minimum runtime support |
| Deployment mode | enterprise | Community vs enterprise ratio |
| Instance ID | a1b2c3d4-... | Dedup (random, not identity) |
The instance ID is a random UUID generated fresh each time the client starts. It is not tied to any user, company, machine, or persistent identity.
What Is NEVER Collected
- Prompts, responses, or LLM payloads
- Tool arguments or function call data
- API keys, credentials, or tokens
- Tenant names, company names, or user identifiers
- File paths, environment variables, or system configuration
- Raw IP addresses (source IP is processed transiently for attribution and not stored in plaintext)
- Any personally identifiable information (PII)
Defaults
| Mode | Telemetry Default |
|---|---|
| Sandbox | Off |
| All other modes | On |
Telemetry is on by default so we can understand SDK adoption, prioritize features, and detect compatibility issues. Sandbox mode defaults to off since it's intended for local testing. You can easily opt out using any of the methods below.
How to Opt Out
Environment variables
# Standard opt-out (respected by many tools)
export DO_NOT_TRACK=1
# AxonFlow-specific
export AXONFLOW_TELEMETRY=off
SDK configuration
- Go
- Python
- TypeScript
- Java
disableTelemetry := false
client := axonflow.NewClient(axonflow.AxonFlowConfig{
TelemetryEnabled: &disableTelemetry,
})
client = AxonFlow(telemetry=False)
const client = new AxonFlow({ telemetry: false });
AxonFlow client = AxonFlow.builder()
.telemetry(false)
.build();
Technical Details
- Telemetry is sent once per client initialization, not per request
- The HTTP call has a 3-second timeout and runs in a background thread
- SDK initialization is never blocked or delayed by telemetry
- If the telemetry endpoint is unreachable, the failure is completely silent
- Data is retained for 90 days, then automatically deleted
Contact
Questions about telemetry? Email [email protected].