Skip to content

Commit 85353ae

Browse files
peterwhtevilrobot-01brunopgalvaoAlexD10S
authored
docs(telemetry): readme explaining what and why we collect (#157)
* 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]>
1 parent 0ac5411 commit 85353ae

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,13 @@ cargo install --locked --git https://github.com/r0gue-io/pop-cli
1717
>
1818
> A [crates.io](https://crates.io/crates/pop-cli) version will be available soon!
1919
20+
### Telemetry
21+
22+
Pop CLI collects anonymous usage metrics to help us understand how the tool is being used and how we can improve it.
23+
We do not collect any personal information. If you wish to disable telemetry
24+
or read more about our telemetry practices please see
25+
our [telemetry](crates/pop-telemetry/README.md) documentation.
26+
2027
## Getting Started
2128

2229
### Parachains

crates/pop-telemetry/README.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Telemetry
2+
3+
Anonymous Usage Metrics Collection with Umami
4+
5+
## Umami
6+
7+
Umami is an analytics platform that is privacy-focused and open-source. It is a great alternative to Google Analytics.
8+
We self-host Umami in the EU to safeguard all anonymous data.
9+
10+
You can read more about Umami [here](https://umami.is/).
11+
12+
## Why Collect Anonymous Usage Metrics?
13+
14+
We understand the importance of privacy and are committed to safeguarding the data of our users. Collecting
15+
anonymous usage metrics can provide invaluable insights into how our CLI tool is being utilized, allowing us to improve
16+
its performance, reliability, and user experience. Here's why we collect anonymous usage metrics:
17+
18+
1. **Improving User Experience**: By understanding how our CLI tool is used in real-world scenarios, we can identify
19+
areas for improvement and prioritize features that will enhance the overall user experience.
20+
21+
2. **Bug Identification and Resolution**: Anonymous usage metrics help us identify and prioritize bugs and issues that
22+
may not be immediately apparent. This allows us to provide quicker resolutions and ensure a smoother user experience.
23+
24+
3. **Feature Prioritization**: Knowing which features are used most frequently helps us prioritize development efforts
25+
and allocate resources effectively to meet the needs of our users.
26+
27+
## What We Collect
28+
29+
We do **not** collect **any** personal information. We do not collect file names, GitHub repositories, or anything
30+
that is potentially sensitive. We do not even try to collect and sanitize this data, we simply do not collect it.
31+
Here is what we do collect, anonymously:
32+
33+
1. **Command Usage**: We collect information about the commands that are executed using our CLI tool. This includes
34+
the type of command and options used. For example, we may report that `pop new parachain` was executed with the Pop
35+
Standard template.
36+
2. **CLI Usage**: We collect information about how often the CLI tool is used.
37+
38+
## Our Commitment to Privacy
39+
40+
We take privacy seriously and are committed to protecting the anonymity of our users. Here's how we ensure your privacy:
41+
42+
- **Anonymous Data Collection**: We only collect anonymized usage metrics, which do not contain any personally
43+
identifiable information.
44+
45+
- **Transparency**: We are transparent about the data we collect and how it is used. Some portions of the data will be
46+
made public,
47+
such as the number of times a command was executed, and total number of users.
48+
49+
- **Privacy-First Platform**: We use Umami, a privacy-focused and open-source analytics platform, to collect anonymous
50+
usage metrics.
51+
52+
- **EU and GDPR Compliance**: We self-host Umami in the EU to ensure compliance with the General Data Protection
53+
Regulation (GDPR) and safeguard the data of our users. This ensures there is no 3rd party involved in the data.
54+
55+
## How to Opt-Out
56+
57+
If you prefer not to participate in anonymous usage metrics collection, you can completely disable telemetry by
58+
installing Pop CLI with it disabled.
59+
60+
```bash
61+
cargo install --locked --no-default-features --features contract,parachain --git "https://github.com/r0gue-io/pop-cli"
62+
```
63+
64+
## Questions or Concerns?
65+
66+
If you have any questions or concerns regarding our telemetry practices, please don't
67+
hesitate to contact us:
68+
69+
- Contact form: [r0gue.io/contact](https://r0gue.io/contact)
70+
- Telegram: [@Pop_Network](https://t.me/Pop_Network)
71+
72+
Thank you for your support and understanding.

crates/pop-telemetry/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
// SPDX-License-Identifier: GPL-3.0
12
use reqwest::Client;
23
use serde::{de::DeserializeOwned, Deserialize, Serialize};
34
use serde_json::{json, Value};

0 commit comments

Comments
 (0)