RedwoodJS Telemetry

RedwoodJS collects completely anonymous telemetry data about general usage.
You can opt-out of sending this data at any time.

Why are you collecting telemetry data?
We use this data to determine trends in usage and help determine if a recent release is causing an abnormal number of errors.
When is telemetry being gathered and sent?
Whenever a Redwood CLI process is started, such as yarn redwood dev, we gather some anonymous usage data. When the process ends, we use a separate background process to send the data to our telemetry database. There should be no performance impact on your CLI experience.
When you use the yarn create redwood-app project setup utility, we also collect some anonymous usage data. This should have minimal impact on performance or your experience when creating a new project. We send this data just before your new project is finished being created.
What data is being collected?
Here is a JSON object containing an example of the common telemetry data that is collected:
{
    command: 'info',         // the CLI command that was invoked
    ci: false,               // whether or not this is running in a CI environment
    duration: 2353,          // how long the process took, in milliseconds
    NODE_ENV: 'development', // the value of NODE_ENV, if set
    complexity: '4.1.2.6.3', // count of routes, prerendered, services, cells, and pages
    system: '8.32',          // cpu core count, memory in GB
    sides: 'web,api',        // sides that are in use
    webBundler: 'webpack',
    experiments: ['studio'], // any experimental features that are enabled
    shell: 'zsh',
    nodeVersion: '14.17.1',
    yarnVersion: '14.17.1',
    npmVersion: '14.17.1',
    vsCodeVersion: '1.58.0',
    redwoodVersion: '0.35.1',
    os: 'macOS',
    osVersion: '11.4',
  }
In addition to those values above, we also collect data related to the CLI command options. For example, when you run yarn redwood build web --no-prerender, we'll record --no-prerender. In addition to options, we also collect anonymized error data.
When you use the yarn create redwood-app utility, we gather data about the install options and performance; for example, TypeScript language target, initialize git, overwrite existing files, install node modules, and the duration of `yarn install` (if run). We also collect anonymized error data.
Can this data be used to identify me?
Not directly. No personal information is sent. A UUID is sent along with the payload, but it is rotated every 24 hours. It's always possible that given enough data points, you could be fingerprinted, but Redwood does not employ this technique and never will. Any sensitive data, like the name of a page or cell that is being generated is removed from the data before being collected. As an example, when generating a new page with generate page GreatIdea we would not record the GreatIdea page name.
What about my secrets?

We do not collect any metrics which may contain sensitive data.

This includes, but is not limited to environment variables, file paths, contents of files, logs, or serialized JavaScript errors that have not been anonymized.

How transparent is the data collection?

We believe you should be able to see exactly what data is being collected. Every time a Redwood CLI command is run, the generated telemetry data is saved to a file within your project's .redwood/telemetry directory.

These files contain the full payload sent to Redwood's telemetry database. Only the eight most recent files are retained.

How do I turn it off?
Set an environment variable, either in your app's .env file, or anywhere that creates variables for your user space, like .bashrc or .bash_profile:
REDWOOD_DISABLE_TELEMETRY=1

You can also use the --no-telemetry flag on any Redwood CLI command to disable telemetry during that one command.

How do I debug telemetry?

In addition to the data files as described above, you can also view the telemetry background process logs. (This is a short-lived background process responsible for exporting generated data to Redwood's telemetry database.)

These logs are located at .redwood/logs/telemetry.out.log and .redwood/logs/telemetry.err.log. They are overwritten each time the telemetry background process is triggered.