Telemetry
In this section, you will find a description of the Devsy telemetry - why we are collecting telemetry, what data points are we gathering, where we are sending the data, and how to opt-out.
Why do we collect telemetry
Because Devsy is a freely available open-source project, we as maintainers have a very limited idea of how the project is being used, and very limited possibilities to gather this information from the users. Without reliable information, it is difficult to make decisions about the prioritization of features, test automation, or bug fixes. Deprecation of the flags and features turns into guesswork, and removal becomes nearly impossible. To move forward quickly, and ensure long-term maintainability, we will be making decisions about new features, deprecations, prioritizing test coverage, etc., and we want these decisions to be data-driven.
What are we collecting and how
When a user executes a non-trivial CLI command, one that loads the configuration, the CLI will send an event about the command and basic information about the execution environment (Operating system, CPU architecture, Devsy version, etc.). Another event is sent if a command fails, or when it takes longer than 10 seconds to complete. The events are sent to our self-hosted backend. We want to emphasize that we are not interested in collecting data about individuals that are using Devsy, we are collecting only data about how it is being used. This should be evident from the code that implements telemetry on the CLI side, which is of course open source and included in the same source code repository.
Telemetry payload example
Below you can find an example of the payload that Devsy CLI would send to our telemetry backend.
{
"event":{
"type":"devsy_cli", # type of event
"machine_id":"3ed2c7...ee308e6", # securely hashed machine ID to de-duplicate information received from the same user
"timestamp":1683878643781772,
"properties": {
"command":"devsy provider delete", # the CLI command that was executed
"provider":"kubernetes", # the default provider
"source_type":"git:", # the workspace source type (git, image, local, container, unknown)
"ide":"vscode", # the IDE used to open a workspace
"desktop":"true", # whether this cli command has been executed by Devsy Desktop or is a direct CLI invocation
"version":"v0.5.29", # the CLI version
"error":"provider 'docker' does not exist" # an error that occurred during command execution
}
},
"user":{
"machine_id":"3ed2c7...ee308e6", # securely hashed machine ID to de-duplicate information received from the same user
"arch":"amd64", # CPU architecture
"os":"linux", # Operating system
},
}
Telemetry opt-out process
To disable the telemetry, set the environment variable DEVSY_DISABLE_TELEMETRY=true. It can also be opted out for individual context by executing the following command:
devsy context set-options -o TELEMETRY=false