Skip to content

Commit

Permalink
docs(telemetry): readme explaining what and why we collect (#157)
Browse files Browse the repository at this point in the history
* feat(telemetry): add telemetry for CLI metrics

* feat(telemetry): opt-in handler, better error handling and telemetry usage

* feat(telemetry): add reporting for errors

* refactor(telemetry): reduce duplicated code, add comments, and general refactoring -- incomplete checkpoint

* refactor(telemetry): refactor new parachain, and telemetry handling

* fix(telemetry): fix error telemetry reporting

* test(telemetry): unit tests for telemetry

* fix(telemetry): borrowing issue with multi-threads

* refactor(telemetry): handle tel_data better

* feat(telemetry): add no_telemetry feature flag to disable telemetry

* chore: use edition.workspace in toml files

* chore: miscallaneous cleanups, documentation, and refactoring

* refactor(telemetry): change opt-in to opt-out

* chore: cleanup whitespace and comments

* refactor: improve feature (#145)

* test: ensure errors propagated (#143)

* test: relocate integration tests (#144)

* test: relocate integration tests

* ci: reduce run time

* refactor: remove unused import

* refactor: improve feature isolation

* refactor: remove unnecessary path prefixes

* refactor: invert feature

Using `--features=no_telemetry` still resulted in inclusion of pop-telemetry in the dependency tree. Using `telemetry` also makes conditional compilation much simpler.

* chore(telemetry): update endpoint and website-id

* refactor(telemetry): default values in `Telemetry::new` with helper `init`

* chore(telemetry): resolve regressions

* docs(telemetry): add telemetry docs explaining what we collect and why.

* docs(telemetry): add license and small adjustment to readme

* docs(telemetry): small adjustments to READMEs

---------

Co-authored-by: Frank Bell <[email protected]>
Co-authored-by: Bruno Galvao <[email protected]>
Co-authored-by: AlexD10S <[email protected]>
  • Loading branch information
4 people authored May 12, 2024
1 parent 0ac5411 commit 85353ae
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 0 deletions.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,13 @@ cargo install --locked --git https://github.com/r0gue-io/pop-cli
>
> A [crates.io](https://crates.io/crates/pop-cli) version will be available soon!
### Telemetry

Pop CLI collects anonymous usage metrics to help us understand how the tool is being used and how we can improve it.
We do not collect any personal information. If you wish to disable telemetry
or read more about our telemetry practices please see
our [telemetry](crates/pop-telemetry/README.md) documentation.

## Getting Started

### Parachains
Expand Down
72 changes: 72 additions & 0 deletions crates/pop-telemetry/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# Telemetry

Anonymous Usage Metrics Collection with Umami

## Umami

Umami is an analytics platform that is privacy-focused and open-source. It is a great alternative to Google Analytics.
We self-host Umami in the EU to safeguard all anonymous data.

You can read more about Umami [here](https://umami.is/).

## Why Collect Anonymous Usage Metrics?

We understand the importance of privacy and are committed to safeguarding the data of our users. Collecting
anonymous usage metrics can provide invaluable insights into how our CLI tool is being utilized, allowing us to improve
its performance, reliability, and user experience. Here's why we collect anonymous usage metrics:

1. **Improving User Experience**: By understanding how our CLI tool is used in real-world scenarios, we can identify
areas for improvement and prioritize features that will enhance the overall user experience.

2. **Bug Identification and Resolution**: Anonymous usage metrics help us identify and prioritize bugs and issues that
may not be immediately apparent. This allows us to provide quicker resolutions and ensure a smoother user experience.

3. **Feature Prioritization**: Knowing which features are used most frequently helps us prioritize development efforts
and allocate resources effectively to meet the needs of our users.

## What We Collect

We do **not** collect **any** personal information. We do not collect file names, GitHub repositories, or anything
that is potentially sensitive. We do not even try to collect and sanitize this data, we simply do not collect it.
Here is what we do collect, anonymously:

1. **Command Usage**: We collect information about the commands that are executed using our CLI tool. This includes
the type of command and options used. For example, we may report that `pop new parachain` was executed with the Pop
Standard template.
2. **CLI Usage**: We collect information about how often the CLI tool is used.

## Our Commitment to Privacy

We take privacy seriously and are committed to protecting the anonymity of our users. Here's how we ensure your privacy:

- **Anonymous Data Collection**: We only collect anonymized usage metrics, which do not contain any personally
identifiable information.

- **Transparency**: We are transparent about the data we collect and how it is used. Some portions of the data will be
made public,
such as the number of times a command was executed, and total number of users.

- **Privacy-First Platform**: We use Umami, a privacy-focused and open-source analytics platform, to collect anonymous
usage metrics.

- **EU and GDPR Compliance**: We self-host Umami in the EU to ensure compliance with the General Data Protection
Regulation (GDPR) and safeguard the data of our users. This ensures there is no 3rd party involved in the data.

## How to Opt-Out

If you prefer not to participate in anonymous usage metrics collection, you can completely disable telemetry by
installing Pop CLI with it disabled.

```bash
cargo install --locked --no-default-features --features contract,parachain --git "https://github.com/r0gue-io/pop-cli"
```

## Questions or Concerns?

If you have any questions or concerns regarding our telemetry practices, please don't
hesitate to contact us:

- Contact form: [r0gue.io/contact](https://r0gue.io/contact)
- Telegram: [@Pop_Network](https://t.me/Pop_Network)

Thank you for your support and understanding.
1 change: 1 addition & 0 deletions crates/pop-telemetry/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: GPL-3.0
use reqwest::Client;
use serde::{de::DeserializeOwned, Deserialize, Serialize};
use serde_json::{json, Value};
Expand Down

0 comments on commit 85353ae

Please sign in to comment.