Aggregate event counts endpoint
Experimental endpoint: The aggregate-event-counts endpoint is designated as experimental. It may be altered or removed in a future release.
Puppet agent nodes submit reports after their runs, and the Puppet Server forwards these to PuppetDB. Each report includes:
- Data about the entire run.
- Metadata about the report.
- Many events, describing what happened during the run.
After this information is stored in PuppetDB, it can be queried in various ways.
- You can query data about the run and report metadata by making an HTTP request to the
/reportsendpoint. - You can query data about individual events by making an HTTP request to the
/eventsendpoint. - You can query summaries of event data by making an HTTP request to the
/event-countsoraggregate-event-countsendpoints.
On this page:
/pdb/query/v4/aggregate-event-counts
Returns aggregated count information about all of the resource events matching the given query.
This endpoint is built entirely on the event-counts endpoint and will aggregate those
results into a single map.
URL parameters
This endpoint builds on top of the event-counts endpoint, and it uses all of the same URL parameters. The supported parameters are listed below for easy reference.
-
summarize_by: required. A string specifying which object types you'd like counted. Supported values areresource,containing_class, andcertname, or any comma-separated combination thereof. -
query: optional. A JSON array of query predicates in prefix form (["<OPERATOR>", "<FIELD>", "<VALUE>"]). This query is forwarded to theeventsendpoint - see there for additional documentation. For general info about queries, see our guide to query structure. -
count_by: optional. A string specifying what type of object is counted when building up the counts ofsuccesses,failures,noops, andskips. Supported values areresource(default) andcertname. -
counts_filter: optional. A JSON array of query predicates in the usual prefix form. This query is applied to the final event-counts output, but before the results are aggregated. Supported operators are=,>,<,>=, and<=. Supported fields arefailures,successes,noops, andskips. -
distinct_resources: optional. (Experimental: it is possible that the behavior of this parameter may change in future releases.) This parameter is passed along to theeventsquery. See theeventsdocumentation for more information.
Query operators
This endpoint builds on top of the event-counts and events endpoints, and supports all of the same operators.
Query fields
This endpoint builds on top of the event-counts and events endpoints, and supports all of the same fields.
Response format
The response is an array of JSON maps containing the summarize_by parameter,
aggregated event-count information, and a total field expressing the number of
event-count results that were aggregated.
[ {
"summarize_by": "containing_class",
"successes": 2,
"failures": 0,
"noops": 0,
"skips": 1,
"total": 3
} ]
Puppet Enterprise
In PE, the successes and noops counts are subdivided into intentional and corrective parts.
Events are mapped to the corresponding counts based on the value of corrective_change flag.
[ {
"summarize_by": "containing_class",
"intentional_successes": 2,
"corrective_successes": 0,
"failures": 0,
"intentional_noops": 0,
"corrective_noops": 0,
"skips": 1,
"total": 3
} ]
intentional_successes, corrective_successes, intentional_noops, and corrective_noops fields
can be used in counts_filter too.
Examples
You can use curl to query information about aggregated resource event counts:
curl -G 'http://localhost:8080/pdb/query/v4/aggregate-event-counts' \
--data-urlencode 'query=["=", "certname", "foo.local"]' \
--data-urlencode 'summarize_by=containing_class'
[ {
"summarize_by" : "containing_class",
"successes" : 2,
"failures" : 0,
"noops" : 0,
"skips" : 0,
"total" : 2
} ]
curl -G 'http://localhost:8080/pdb/query/v4/aggregate-event-counts' \
-d 'query=["=","certname","foo.local"]' \
-d 'summarize_by=containing_class,certname'
[ {
"summarize_by" : "containing_class",
"successes" : 2,
"failures" : 0,
"noops" : 0,
"skips" : 0,
"total" : 2
}, {
"summarize_by" : "certname",
"successes" : 1,
"failures" : 0,
"noops" : 0,
"skips" : 0,
"total" : 1
} ]
No paging
This endpoint does not support paging options, and results are unordered.






