kbrew gathers anonymous aggregate analytics using Google Analytics. The analytics are enabled by default but you can always opt out and continue using kbrew without ever sending analytics data.
The analytics is anonymized and used in aggregate to determine the failure/success rate of recipes and to improve user experience. It helps us understand how the tool is getting used and what we can do to make it even better. Anonymous aggregate user analytics allows us to prioritize bug fixes, plan new features and design the roadmap. In the future, once we have enough data, we are planning to make the failure and success rates of the app installations public so that users can do install with confidence.
kbrew records the following events (ref: https://github.com/kbrew-dev/kbrew/blob/main/pkg/events/events.go#L97)
s/r | event | example |
---|---|---|
1 | kbrew application name | kbrew |
2 | kbrew application version | v0.0.8 |
3 | Google Analytics version | 1 |
4 | kbrew analytics tracking ID | UA-xxxxxxx-1 |
5 | kbrew analytics user ID | c47d1a81-6cbe-4179-bdd1-4918e3be9768 (generated and stored after installation. See note for the details) |
6 | Google Analytics anonymous IP setting | 1 (enabled) |
7 | kbrew analytics hit type | event |
8 | K8s version of the cluster (on which kbrew installs app) | v1.20.1 |
9 | kbrew app name | kafka |
10 | kbrew recipe args | Deployment.nginx.spec.replicas: 4 |
11 | kbrew error message | Error rendering value: template: gotpl:1: unexpected {{end}} |
12 | kbrew event category | install-fail |
NOTE:
kbrew analytics user ID
is generated by UUID generator when first time kbrew command is executed on a system and stored in the kbrew config (${HOME}/.kbrew/config.yaml)
analyticsuuid
. This does not allow us to track individual users but does enable us to accurately measure user counts versus event counts. The ID is specific to kbrew installation and does not permit kbrew maintainers to track anything else.
On failures, kbrew also collects the Kubernetes failure events generated for the recipe components. kbrew does not collect events on any other resources which are not created as a part of the installation. Kubernetes failure events help us tuning the recipes if it is not working in a specific environment.
- K8s failure event reason
- K8s failure event message
- K8s failure event action
- K8s failure event involvedObject
kbrew's analytics records the following different events: (ref: https://github.com/kbrew-dev/kbrew/blob/main/pkg/events/events.go#L45)
install-success
: installation successfulinstall-fail
: installation failedinstall-timeout
: installation timed outuninstall-success
: uninstallation successfuluninstall-fail
: uninstallation faileduninstall-timeout
: uninstallation timed outk8s-event
: Kubernetes failure events sent afterinstall-fail
orinstall-timeout
event
It's practically impossible to map randomly generated user ID (UUID) with any particular event. So you don't have to worry about being tracked for the activity.
kbrew analytics are sent throughout kbrew's execution to Google Analytics over HTTPS.
We appreciate keeping analytics on which helps us keep kbrew improving. But if you decided to opt-out of kbrew analytics, it can be disabled with
kbrew analytics off
The kbrew analytics status can be checked with
kbrew analytics status