Puppet 3.6 uses report format 4.
Report Format 4
This is the format of reports output by Puppet versions 3.3.0 and later. It is backwards-compatible with report format 3, as it only adds two fields.
Starting with Puppet 3.3.0, report objects being sent to the puppet master can be serialized as pson (a variant of json that allows byte sequences that aren’t valid utf-8 characters). This is a change from Puppet 3.2.4 and earlier, which only allowed reports to be serialized as yaml. The report serialization format can be changed for compatibility with older puppet masters with the
The Puppet::Transaction::Report contains the following attributes:
|host||string||the host that generated this report.|
|time||datetime||when the run began.|
|logs||array||0 or more Puppet::Util::Log objects.|
|metrics||hash||maps from string (metric category) to Puppet::Util::Metric.|
|resource_statuses||hash||maps from resource name to Puppet::Resource::Status|
|configuration_version||string or integer||The "configuration version" of the puppet run. This is a string if the user has specified their own versioning scheme, otherwise an integer representing seconds since the epoch.|
|transaction_uuid||string||A UUID covering the transaction. The query parameters for the catalog retrieval will have included the same UUID.|
|puppet_version||string||The version of the Puppet agent.|
|kind||string||"inspect" if this report came from a "puppet inspect" run, "apply" if it came from a "puppet apply" or "puppet agent" run.|
|status||string||"failed", "changed", or "unchanged"|
|environment||string||The environment that was used for the puppet run.|
A Puppet::Util::Log object contains the following attributes:
|file||string||the pathname of the manifest file which triggered the log message.|
|line||integer||the line number in the manifest file which triggered the log message.|
|level||symbol||severity of the message. Possible values for level are :debug, :info, :notice, :warning, :err, :alert, :emerg, :crit|
|message||string||the message itself.|
|source||string||the origin of the log message. This could be a resource, a property of a resource, or the string "Puppet".|
|tags||array||each array element is a string.|
|time||datetime||when the message was sent.|
line attributes are not always present.
A Puppet::Util::Metric object represents all the metrics in a single category. It contains the following attributes:
|name||string||name of the metric category. This is the same as the key associated with this metric in the metrics hash of the Puppet::Transaction::Report.|
|label||string||This is the "titleized" version of the name, which means underscores are replaced with spaces and the first word is capitalized.|
|values||array||All the metric values within this category. Each element is of the form [name, titleized_name, value], where name is the name of the particular metric as a string, titleized_name is the "titleized" string of the name, and value is the quantity (an integer or a float).|
The set of particular metrics and categories which appear in a report is a fixed set. In a successful report, the categories and metrics are:
- In the
timecategory, there is a metric for every resource type for which there is at least one resource in the catalog, plus two additional metrics, called
total. Each value in the
timecategory is a float.
- In the
resourcescategory, the metrics are
total. Each value in the
resourcescategory is an integer.
- In the
eventscategory, there are up to five metrics:
totalis always present; the others are only present when their values are non-zero. Each value in the
eventscategory is an integer.
- In the
changescategory, there is only one metric, called
total. Its value is an integer.
Failed reports contain no metrics.
In an inspect report, there is an additional
inspect metric in the
A Puppet::Resource::Status object represents the status of a single resource. It contains the following attributes:
|resource_type||string||the resource type, capitalized.|
|title||title||the resource title.|
|resource||string||the resource name, in the form Type[title]. This is always the same as the key corresponding to this Puppet::Resource::Status object in the resource_statuses hash. *deprecated*|
|file||string||the pathname of the manifest file which declared the resource|
|line||integer||the line number in the manifest file which declared the resource|
|evaluation_time||float||the amount of time, in seconds, taken to evaluate the resource. Not present in inspect reports.|
|change_count||integer||the number of properties which changed. Always 0 in inspect reports.|
|out_of_sync_count||integer||the number of properties which were out of sync. Always 0 in inspect reports.|
|tags||array||the strings with which the resource is tagged|
|time||datetime||the time at which the resource was evaluated|
|events||array||the Puppet::Transaction::Event objects for the resource|
|out_of_sync||boolean||True if out_of_sync_count > 0, otherwise false. *deprecated*|
|changed||boolean||True if change_count > 0, otherwise false. *deprecated*|
|skipped||boolean||True if the resource was skipped, otherwise false.|
|failed||boolean||True if Puppet experienced an error while evaluating this resource, otherwise false. *deprecated*|
|containment_path||array||An array of strings; each element represents a container (type or class) that, together, make up the path of the resource in the catalog.|
A Puppet::Transaction::Event object represents a single event for a single resource. It contains the following attributes:
|audited||boolean||true if this property is being audited, otherwise false. True in inspect reports.|
|property||string||the property for which the event occurred. This value will be missing if the provider errored out before it could be determined.|
|previous_value||string, array, or hash||the value of the property before the change (if any) was applied. This value will be missing if the provider errored out before it could be determined.|
|desired_value||string, array, or hash||the value specified in the manifest. Absent in inspect reports. This value will be missing if the provider errored out before it could be determined.|
|historical_value||string, array, or hash||the audited value from a previous run of Puppet, if known. Otherwise nil. Absent in inspect reports. This value will be missing if the provider errored out before it could be determined.|
|message||string||the log message generated by this event|
|name||symbol||the name of the event. Absent in inspect reports.|
|status||string||one of the following strings: "success", "failure", "noop", "audit", depending on the type of the event (see below). Always "audit" in inspect reports.|
|time||datetime||the time at which the property was evaluated|
Puppet::Transaction::Event#status has the following meanings:
success: property was out of sync, and was successfully changed to be in sync.
failure: property was out of sync, and couldn’t be changed to be in sync due to an error.
noop: property was out of sync, and wasn’t changed due to noop mode.
audit: property was in sync, and was being audited.
Differences from Report Format 3
- Puppet::Transaction::Report gained
- Puppet::Resource::Status gained