Analytics data collection

Some components automatically collect data about how you use Puppet Enterprise (PE). You can opt out of this data collection during or after installing PE.

This data is separate from other analytics data, such as that collected by the PE support script, Puppet metrics collector, the pe_status_check module, the Value report, or the analytics trapperkeeper service (which is described in Orchestration services settings).

How does sharing this data benefit you?

We use this data to identify customers that could be impacted by security issues, alert them to the issue, and provide them with relevant instructions to follow or fixes to download.

Additionally, the data helps us understand how customers use PE. This helps us improve PE in ways that benefit you.

How does Puppet by Perforce use the collected data?

This data collection is one of many ways we learn about our customers. For example, knowing how many nodes you manage helps us develop more realistic product testing. Similarly, learning which operating systems are the most and the least popular helps us prioritize development. By sharing this data, we can better understand your experience as a PE customer.

Important: Collected data is tied to a unique, anonymized identifier for each primary server and your site as a whole. We don't collect any personally identifiable information (PII), and we never use or share collected data outside Puppet by Perforce.

What data does PE collect?

Puppet Enterprise (PE) collects the following data when Puppet Server starts, restarts, and every 24 hours of continuous runtime.

License, version, primary server, and agent information

  • License UUID
  • Number of licensed nodes
  • Product name
  • PE version
  • Primary server's operating system
  • Primary server's public IP address
  • Whether the primary server is running on Microsoft Azure
  • The hypervisor the primary server is running on, if applicable
  • Number of nodes in deployment
  • Agent operating systems
  • Number of agents running on each operating system
  • Agent versions
  • Number of agents running each version of Puppet agent
  • All-in-One (AIO) puppet-agent package versions
  • Number of agents running on Microsoft Azure or Google Cloud Platform, if applicable
  • Number of configured disaster recovery replicas, if applicable

PE feature use information

  • Number of node groups in use
  • Number of nodes used in orchestrator jobs after the last orchestrator restart
  • Mean number of nodes per orchestrator job
  • Maximum number of nodes per orchestrator job
  • Minimum number of nodes per orchestrator job
  • Total number of orchestrator jobs created after the last orchestrator restart
  • Number of non-default user roles in use
  • Type of certificate autosigning in use
  • Number of nodes in the job that were run over Puppet Communications Protocol (PCP)
  • Number of nodes in the job that were run over SSH
  • Number of nodes in the job that were run over WinRM
  • Number of nodes patched per task run
  • Type of operating system on nodes that were patched in a task run
  • Number of patches applied to each node per task run
  • Number of patches completed per task run
  • Number of nodes with the pe_patch module
  • Number of nodes with the pe_patch module that require patching
  • List of Puppet task jobs
  • List of Puppet deploy jobs
  • List of Puppet task jobs run by plans
  • List of file upload jobs run by plans
  • List of script jobs run by plans
  • List of command jobs run by plans
  • List of wait jobs run by plans
  • How nodes were selected for the job
  • Whether the job was started by the PE admin account
  • Number of nodes in the job
  • Length of description applied to the job
  • Length of time the job ran
  • User agent used to start the job (used to distinguish between jobs started via the console, command line, or API)
  • UUID used to correlate multiple jobs run by the same user
  • Time at which the task job ran
  • Whether the job was asked to override agent-configured no-operation (no-op) mode
  • Whether app-management was enabled in the orchestrator for this job
  • Time the deploy job ran
  • Type of version control system webhook
  • Whether the request was to deploy all environments
  • Whether Code Manager waited for all deploys to finish (successfully or with errors) before returning a response
  • Whether the deploy was a dry run
  • List of environments requested to deploy
  • List of deploy requests
  • Total time elapsed for all deploys to finish (successfully or with errors)
  • List of total wait times for deploys specifying the --wait option
  • Name of environment deployed
  • Time needed for r10k to run
  • Time spent committing to file sync
  • Time elapsed for all environment hooks to run
  • List of individual environment deploys
  • Puppet classes applied from publicly available modules, with node counts per class

Backup and restore information

  • Whether the user used the --force option when running restore
  • Scope of restore
  • Time in seconds for various restore functions
  • Time to check for disk space to restore
  • Time to stop PE related services
  • Time to restore PE file system components
  • Time to migrate PE configuration for new server
  • Time to configure PE on newly restored primary server
  • Time to update PE classification for new server
  • Time to deactivate the old primary server node
  • Time to restore the pe-orchestrator database
  • Time to restore the pe-rbac database
  • Time to restore the pe-classifier database
  • Time to restore the pe-activity database
  • Time to restore the pe-puppetdb database
  • Total time to restore
  • List of puppet backup restore jobs
  • Whether the user used the --force option when running puppet-backup create
  • Whether the user used the --dir option when running puppet-backup create
  • Whether the user used the --name option when running puppet-backup create
  • Scope of backup
  • Time in seconds for various backup functions
  • Time needed to estimate backup size, disk space needed, and disk space available
  • Time to create file system backup
  • Time to back up the pe-orchestrator database
  • Time to back up the pe-rbac database
  • Time to back up the pe-classifier database
  • Time to back up the pe-activity database
  • Time to back up the pe-puppetdb database
  • Time to compress archive file to backup directory
  • Time to back up PE-related classification
  • Total time to back up
  • List of puppet-backup create jobs

Puppet Server performance information

  • Total number of JRuby instances
  • Maximum number of active JRuby instances
  • Maximum number of requests per JRuby instance
  • Average number of instances not used over the process’ lifetime
  • Average wait time to lock the JRuby pool
  • Average time the JRuby pool held a lock
  • Average time an instance spent handling requests
  • Average time spent waiting to reserve an instance from the JRuby pool
  • Number of requests that timed out while waiting for a JRuby instance
  • Amount of memory the JVM starts with
  • Maximum amount of memory the JVM is allowed to request from the operating system

Installer information

  • Installation method (express, text, web, or repair)
  • Current version, if upgrading
  • Target version
  • Whether installation succeeded or failed, and limited failure type information (if applicable)
If you use an Amazon Web Services Marketplace Image to install PE, this information is also collected:
  • Marketplace name
  • Marketplace image billing mode (bring your own license or pay as you go)

PE console information

While in use, the PE console collects:
  • Pageviews
  • Link and button clicks
  • Page load time
  • User language
  • Screen resolution
  • Viewport size
  • Anonymized IP address
Important: The console doesn't collect user inputs, such as node or group names, user names, rules, parameters, or variables.

Opt out when installing PE

You can set the DISABLE_ANALYTICS environment variable when you run the install script.

When Installing PE, add DISABLE_ANALYTICS=1 when you call the installer script, for example:
sudo DISABLE_ANALYTICS=1 ./puppet-enterprise-installer
Results
Including this option with the install script command sets the puppet_enterprise::send_analytics_data parameter to false in the pe.conf file, which disables collection of the data described in What data does PE collect?.

Opt out after installing PE

You can opt out of analytics data collection after installing PE. You can also use these steps to enable data collection if you want to opt in.

  1. In the PE console, go to Node groups > PE Infrastructure.
  2. On the Classes tab, locate the puppet_enterprise class.
  3. Add the send_analytics_data parameter and set the Value to false.
    If you want to opt in to data collection after previously opting out, set the Value to true.
  4. Click Add Parameter and commit changes.
  5. Go to the Inventory page, select your primary server, and click Run Puppet.
  6. On the nodes hosting your primary server and PE console, run Puppet.
    Tip: There are several ways to Run Puppet on demand.
Results

After the Puppet runs complete, the data described in What data does PE collect? is no longer collected (if you set the value to false).