Telemetry and Juju

(part of the upcoming juju 2.9.17 and 3.0.0 releases)

This article provides information about Juju and telemetry—the automatic recording and transmission of data from remote sources.

Juju uses telemetry to gather routine business metrics. This happens automatically once a day, on a per model basis. For more details, see below.

What data is collected?

  • For a controller
    • juju version
    • controller uuid
  • For a model
    • number of applications
    • number of units deployed
    • number of machines deployed
    • cloud
    • cloud provider
    • cloud region
    • model uuid
  • For a charm
    • number of units
    • names of charms the charm is related to

No user information is gathered.

What is the data used for?

The data will help us gain a better understanding of how Juju is used in the field:

  • Are most configurations using high availability for the controller?
  • Are many models with few units more popular than few models with many units?
  • How many models are used with a controller?
  • Which clouds are the most popular?
  • What charms are frequently used together?

For example, we can better design improvements, create new bundles for charms commonly used together, etc.

Eventually, some data, such as the names of the charms an application is related to, will also be available to charm authors for use in improving their charms.

How do I disable data collection?

To disable telemetry in a juju model:

juju model-config disable-telemetry=true

For further information, see also Configuring models.

Could you please make this “telemetry” opt-in instead of on by default?

This is seen as “shady” and can be a problem in enterprise environments.

Unfortunately juju has no way to ask the admin at install nor upgrade, if they wish to telemetry to be enabled or disabled. Or any other questions. Therefore we’d almost never get any data, unless an admin found the flag and decided to enable it.

At least this way, documenting the option and adding to release notes, an admin has the option of disabling the feature.