Skip to main content

Overview

The Upstash Redis SDK collects anonymous telemetry data to help improve the SDK and understand usage patterns. This data includes runtime information, platform details, and SDK version.
Telemetry is enabled by default but can be easily disabled. No sensitive data or command payloads are collected.

What Data is Collected

The SDK sends the following metadata with requests:
  • Runtime: The JavaScript runtime environment (e.g., node@18.0.0, edge-light)
  • Platform: The deployment platform (e.g., vercel, aws, console, or unknown)
  • SDK version: The version of @upstash/redis being used (e.g., @upstash/redis@1.22.0)
This information is sent via HTTP headers and does not include:
  • Your data or Redis commands
  • API keys or credentials
  • User identifiable information
  • IP addresses or personal data

Disabling Telemetry

Via Configuration

Disable telemetry when creating a Redis client:

Via Environment Variable

Set the UPSTASH_DISABLE_TELEMETRY environment variable:
Then create your client normally:

With fromEnv()

When using fromEnv(), telemetry respects the environment variable:

How Telemetry Works

Runtime Detection

The SDK automatically detects your runtime environment:
Possible runtime values:
  • edge-light - Edge runtime (Vercel Edge, Cloudflare Workers, etc.)
  • node@{version} - Node.js runtime with version
  • unknown - Unknown runtime

Platform Detection

The SDK detects the deployment platform from environment variables:
Possible platform values:
  • console - Running in Upstash console
  • vercel - Deployed on Vercel
  • aws - Deployed on AWS (Lambda, etc.)
  • unknown - Unknown or local environment

Telemetry Headers

Telemetry data is sent via the Upstash-Telemetry-* HTTP headers:

Implementation Details

Telemetry Configuration

The telemetry flag is checked during client initialization:
Priority order:
  1. Explicit enableTelemetry option in config
  2. UPSTASH_DISABLE_TELEMETRY environment variable
  3. Default: enabled

Adding Telemetry Data

The SDK adds telemetry during initialization:

Telemetry with Custom Requester

If you provide a custom Requester, telemetry will still work if your requester implements the mergeTelemetry method:

Examples

Disable for Development

Environment-Based Configuration

Conditional Telemetry

Privacy Considerations

The Upstash Redis SDK is committed to user privacy:
  • No data collection: Your Redis data and commands are never collected
  • No tracking: No unique identifiers or tracking cookies
  • Anonymous: Runtime and platform info cannot identify individual users
  • Transparent: This page documents exactly what is collected
  • Easy to disable: Multiple ways to opt-out

Why Telemetry?

Telemetry helps us:
  1. Prioritize platform support - Understand which runtimes and platforms to focus on
  2. Identify compatibility issues - Detect problems with specific runtime versions
  3. Measure adoption - Track SDK version distribution to plan deprecations
  4. Improve developer experience - Make data-driven decisions about features

FAQs

Does telemetry affect performance?

No. Telemetry data is included as HTTP headers and adds negligible overhead (< 1KB).

Can I see the telemetry data being sent?

Yes. Enable debug logging or use network inspection tools to see the HTTP headers:

Does disabling telemetry affect functionality?

No. The SDK works exactly the same with or without telemetry enabled.

Is telemetry sent for every request?

Yes, telemetry headers are included with every HTTP request when enabled.

See Also