Data collected by balena
In order to make data driven decisions, balena collects usage related events via a 3rd party analytics service, Amplitude. These events provide us context on the state of container execution steps. This way we could observe the health of fleets in balenaCloud ecosystem and analyze the potential problems as well as trends.
User data collected by balena
balena collects information about CLI and web dashboard usage behavior. User data we process includes
user name (login) and the email address used to log into the system,
device type, operating system and browser versions,
device screen size,
IP address,
referrer to balena sites,
company user belongs to (when web dashboard is used only).
Please note that balena does not collect information about end users of devices managed with balena platform, i.e. information about our customer users is not collected or processed. We work only with data collected for users who use balena to manage their device fleets.
balenaEtcher
balenaEtcher is an application maintained by balena team that can be used to easily flash OS images to SD cards and USB drives. If user does not opt out from collecting the analytics data, the application tracks its usage. In addition to the data described above, information about the type of SD cards and USB drives is collected too.
Device data collected by the supervisor
Data are submitted to Amplitude from balena-managed devices on the events listed in the table below. Submitted packets may contain the following information:
Fleet ID and name
Docker image hash
Service ID, name, labels
Release ID and/or git commit hash used to make the release
Device IP address (as reported in balena dashboard)
OS and supervisor versions
Error root cause message (in case of error events)
Timing info about device management operations (see event names)
Device state report failure
EventTracker
src/api-binder.ts
Device bootstrap success
EventTracker
src/api-binder.ts
Device bootstrap
EventTracker
src/api-binder.ts
Update notification
EventTracker
src/api-binder.ts
Device bootstrap failed
EventTracker
src/api-binder.ts
Image downloaded
SystemEvent
src/compose/images.ts
Delta still processing remotely.
SystemEvent
src/compose/images.ts
Image removal
SystemEvent
src/compose/images.ts
Image removed
SystemEvent
src/compose/images.ts
Delta image download
SystemEvent
src/compose/images.ts
Docker image download
SystemEvent
src/compose/images.ts
Image cleanup error
SystemMessage
src/compose/images.ts
Image download error
SystemEvent
src/compose/images.ts
Image removal error
SystemEvent
src/compose/images.ts
Network creation error
SystemEvent
src/compose/network-manager.ts
Network creation
SystemEvent
src/compose/network.ts
Network removal
SystemEvent
src/compose/network.ts
Network creation error
SystemEvent
src/compose/network.ts
Remove dead container
SystemEvent
src/compose/service-manager.ts
Service install
SystemEvent
src/compose/service-manager.ts
Service installed
SystemEvent
src/compose/service-manager.ts
Service start
SystemEvent
src/compose/service-manager.ts
Service started
SystemEvent
src/compose/service-manager.ts
Service exit
SystemEvent
src/compose/service-manager.ts
Service kill
SystemEvent
src/compose/service-manager.ts
Service already stopped
SystemEvent
src/compose/service-manager.ts
Service stop
SystemEvent
src/compose/service-manager.ts
Remove dead container error
SystemEvent
src/compose/service-manager.ts
Service install error
SystemEvent
src/compose/service-manager.ts
Service start error
SystemEvent
src/compose/service-manager.ts
Service restart
SystemEvent
src/compose/service-manager.ts
Service already stopped and container removed
SystemEvent
src/compose/service-manager.ts
Service stop error
SystemEvent
src/compose/service-manager.ts
Volume migration error
SystemMessage
src/compose/volume-manager.ts
Volume creation error
SystemEvent
src/compose/volume-manager.ts
Volume creation
SystemEvent
src/compose/volume.ts
Volume removal
SystemEvent
src/compose/volume.ts
Volume removal error
SystemEvent
src/compose/volume.ts
Purge data
SystemMessage
src/device-api/common.coffee
Purge data success
SystemMessage
src/device-api/common.coffee
Purge data error
SystemMessage
src/device-api/common.coffee
Restart container (v1)
EventTracker
src/device-api/v1.coffee
GET app (v1)
EventTracker
src/device-api/v1.coffee
Apply config change (success/failed/in progress)
ConfigChange
src/device-config.ts
Apply boot config error
SystemMessage
src/device-config.ts
Apply boot config in progress
SystemMessage
src/device-config.ts
Apply boot config success
SystemMessage
src/device-config.ts
Reboot
SystemMessage
src/device-state.coffee
Shutdown
SystemMessage
src/device-state.coffee
Loading preloaded apps failed
EventTracker
src/device-state.coffee
Device blink
EventTracker
src/supervisor-api.ts
Supervisor start
SystemMessage
src/supervisor.ts
Data collected automatically by Amplitude
Amplitude library generates a unique identifier for each device that sends an event. We associate the events with the device UUID provided by balenaCloud as well. Besides these identifiers, we don’t send any other user ID to Amplitude.
Amplitude library automatically extracts geographical location data from the device’s IP address, so it collects city, region and country information. See more in a relevant article by Amplitude.
About logging
Logs produced by the releases deployed to the devices via balena supervisor application can be streamed to web dashboard or CLI user who has permissions to view them through our cloud. However, the logs are stored in the cloud temporarily only in order to allow the streaming functionality - balena does not process device application logs unless technical support is requested by our users.
Last updated
Was this helpful?