alda-lang / alda

A music programming language for musicians. :notes:
https://alda.io
Eclipse Public License 2.0
5.59k stars 286 forks source link

alda telemetry should be opt-in #396

Closed kimimaru4000 closed 2 years ago

kimimaru4000 commented 3 years ago

🐞 Bug report 🐞

Description

Upon using the alda CLI, it mentions it collects data in the following window:

┌─────────────────────────────────────────────────────────────────┐
│                                                                 │
│ The Alda CLI collects the following anonymous usage statistics: │
│                                                                 │
│   • Operating system                                            │
│   • Alda version                                                │
│   • Command run, without arguments/options (e.g. alda play)     │
│                                                                 │
│ No personal information is collected.                           │
│                                                                 │
│ If you wish to disable anonymous usage reporting, you can run:  │
│                                                                 │
│   alda telemetry --disable                                      │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

There are some concerns I have about this:

Steps to Reproduce

  1. Install alda for the first time.
  2. Use any alda CLI command (Ex. alda play).

Does the problem happen consistently?

Yes

Expected Behavior

alda asks if the user wants to enable telemetry to help improve the software.

Actual Behavior

alda tells the user that telemetry is enabled by default and tells them how to disable it.

Environment

Operating system and version: Linux Mint 20.2 Uma

Alda version:

$ alda version
alda 2.0.5
$ alda-player info
alda-player 2.0.5

Health check:

$ alda doctor
OK  Parse source code
OK  Generate score model
OK  Ensure that there are no stale player processes
OK  Find an open port
OK  Send and receive OSC messages
OK  Locate alda-player executable on PATH
OK  Check alda-player version
OK  Spawn a player process
OK  Ping player process
OK  Play score
OK  Export score as MIDI
OK  Locate player logs
OK  Player logs show the ping was received
OK  Shut down player process
OK  Spawn a player on an unknown port
OK  Discover the player
OK  Ping the player
OK  Shut the player down
OK  Start a REPL server
nREPL server started on port 44005 on host localhost - nrepl://localhost:44005
OK  Find the REPL server
OK  Interact with the REPL server
OK  Shut down the REPL server
daveyarwood commented 3 years ago

Hi @kimimaru4000, thank you for opening this issue! I really appreciate you voicing your concerns.

I hear you that telemetry should be opt in, and in general I tend to agree when it comes to the software that I use. In this case, I am collecting only a very minimal set of data that is helpful for me from an operational perspective, and because of that, I feel that it is acceptable for telemetry to be opt out, provided that we are diligent about making it clear that we are collecting telemetry, and that there is a clear and easy way to opt out.

I can understand how others might feel differently about this, and it's important to me that I allow others to share their views and that I take them into consideration. So, I will leave this issue open and ask for general feedback here from Alda users.

To answer your questions:

  1. Yes, we are collecting telemetry on the initial run of Alda when it prints the notice about telemetry. This is coincidental, not a deliberate decision on my part, and I think it would be reasonable to make it so that we don't record any telemetry on that first run (since the user has not been informed yet that telemetry will be collected and advised about how to opt out).

  2. Metrics are sent to an Alda API service endpoint, and the Alda API handles the requests by recording metrics in Datadog. In the interest of transparency, you can view the relevant source code for the Alda client and the Alda API. I am the only person with access to the metrics data.

daveyarwood commented 2 years ago

I'm closing this issue as there has been no further discussion or complaints, but I'll be happy to re-open it if others have thoughts/perspectives on this.