Skip to content

Latest commit

 

History

History
74 lines (49 loc) · 3.22 KB

telemetry.md

File metadata and controls

74 lines (49 loc) · 3.22 KB

Telemetry

Overview

Telemetry refers to the collection of non personally identifiable data. Salto collects telemetry data in two different contexts:

  1. Usage data
  2. Error reporting

Why does Salto collect metrics?

The data is being used to improve the product's performance, as well as detect bugs and issues. With the usage data being collected, we're able to identify performance issues, which are the most commonly used commands and in general - what we can do to improve the product.

Some of the things that telemetry helps us analyze are:

  • Slow fetch and deploy
  • Number of changes on fetch and deploy in correlation to failures

Salto collects limited and non identifiable data

Salto's Telemetry library is built with PII and privacy in mind and therefore the Salto product collects anonymous data only.

In addition to that, any user can choose to disable telemetry collection altogether.

When is data collected?

Data is being collected when using the Salto CLI, specifically, the telemetry library is aggregating data and is flushing every predefined amount of time.

In a case of an error sending the data, it will not affect the regular flow of the CLI, this error will be transparent to the user.

How is the data collected?

The payload generated by the Salto app is sent to https://telemetry.salto.io using an HTTP POST request. The telemetry library is aggregating telemetry data and is flushing every n milliseconds (n is defined in the code).

Which data is being collected?

The data that's being sent is usage data and error reporting along with metadata;

  1. Counters, for example:
  • Number of changes upon fetch
  • Failed running some command (counting number of failures)
  • Started running some command
  • Size of the workspace in MB
  1. Errors & stacktrace - the prebuilt binaries are being packaged with webpack, thus the file paths will be in the custom webpack sourcemap protocol, and no personal data will be sent.

In addition to the usage data, the following metadata is being sent:

  • Operating system (platform, arch and release version)
  • Workspace ID: the ID of the specific workspace (uuidv4)
  • Installation ID: an ID that is being generated in the first ever salto init. It's common to all of the workspaces on the same installation / computer
  • App (CLI) version

How to opt out of telemetry data collection?

Any user can opt out of sending usage data. There are two ways to disable telemetry:

  1. Run the Salto CLI with the SALTO_TELEMETRY_DISABLE environment variables value to be 1
  2. In the CLI configuration file ($SALTO_HOME/salto.config/config.nacl by default), set the value of telemetry to be false.

Read more about Salto configuration in here.

By default, the official Salto binary releases are generating the configuration file to be populated with telemetry enabled, however the environment variable SALTO_TELEMETRY_DISABLE=1 will always have precedence over the config file. It means that a user that clones or forks the repository and is building the Salto CLI by themselves will not send telemetry data by default.