Telemetry refers to the collection of non personally identifiable data. Salto collects telemetry data in two different contexts:
- Usage data
- Error reporting
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
anddeploy
- Number of changes on
fetch
anddeploy
in correlation to failures
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.
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.
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).
The data that's being sent is usage data and error reporting along with metadata;
- 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
- 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 - Service Type: the type of service in use (for example "salesforce" or "netsuite")
- App (CLI) version
Any user can opt out of sending usage data. There are two ways to disable telemetry:
- Run the Salto CLI with the
SALTO_TELEMETRY_DISABLE
environment variables value to be1
- In the CLI configuration file (
$SALTO_HOME/salto.config/config.nacl
by default), set the value oftelemetry
to befalse
.
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.