Enterprise Reporting

Table of Contents

CFEngine Enterprise can report on promise outcomes (changes made by cf-agent across your infrastructure), variables, classes, and measurements taken by cf-monitord. Reports cover fine grained policy details, explore all the options by checking out the custom reports section of the Enterprise Reporting module.

Specifically which information allowed to be collected by the hub for reporting is configured by report_data_select bodies. default_data_select_host() defines the data to be collected for a non policy hub and default_data_select_policy_hub() defines the data that should be collected for a policy hub.

Specifying which variables and classes should be collected by an Enterprise Hub is done with a list of regular expressions matching promise meta tags for either inclusion or exclusion. By default we collect variables and classes that are tagged with either report or inventory. Instead of extending this list of tags we recommend that you tag variables and classes with report. If it's desirable to make available in specialized inventory reporting interface then you it should be tagged with inventory and given an additional attribute_name= tag as described in the Custom Inventory Example. By default CFEngine collects information for all promise outcomes. This can be further restricted by specifying promise_handle_include or promise_handle_exclude. Collection of measurements taken by cf-monitord are is controlled using the monitoring_include and monitoring_exclude report_data_select body attributes.


There are various limitations with regard to the size of information that is collected into central reporting. Data that is too large to be reported will be truncated and a verbose level log message will be generated by cf-agent. Some noteable limitations are listed below.

  • string varibales are limited to 1024 bytes
  • lists are limited to 1024 bytes of serialized data
  • data variables are limited to 1024 bytes of serialized data
  • meta tags limited to 1024 bytes of serailized output
  • log messages are truncated to 400 bytes

Please note that these limits may be lower in practice due to internal encoding.

Users can not configure the data is stored to disk. For example, you can not prevent the enterprise agent from logging to promise_log.jsonl.

For information on accessing reported information please see the Reporting UI guide.