Metrics API changes in PuppetDB 4

Most of the metrics' names changed in PuppetDB 4 to standardize with other Puppet components and provide a more intuitive naming scheme. This document details the correspondence between the metric names before and after PuppetDB 4.

Population metrics

# Before
puppetlabs.puppetdb.query.population:type=default,name=<misc>
# After
puppetlabs.puppetdb.population:name=<misc>

For example, the following metrics:

puppetlabs.puppetdb.query.population:type=default,name=num-nodes
puppetlabs.puppetdb.query.population:type=default,name=num-resources
puppetlabs.puppetdb.query.population:type=default,name=avg-resources-per-node
puppetlabs.puppetdb.query.population:type=default,name=pct-resource-dupes

are now, respectively:

puppetlabs.puppetdb.population:name=num-nodes
puppetlabs.puppetdb.population:name=num-resources
puppetlabs.puppetdb.population:name=avg-resources-per-node
puppetlabs.puppetdb.population:name=pct-resource-dupes

HTTP metrics

Prior to PuppetDB 4 the HTTP metrics were scattered in different namespaces. All the HTTP metrics are now grouped under the same namespace.

# Before
<namespace>:group=<endpoint>,name=<misc>
# After
puppetlabs.puppetdb.http:name=<endpoint>.<misc>

Here are some concrete examples:

# Before
puppetlabs.puppetdb.http.command:group=/pdb/cmd/v1,name=<status code>
# After
puppetlabs.puppetdb.http:name=/pdb/cmd/v1.<status code>
# Before
puppetlabs.puppetdb.http.server:group=/pdb/query/v4/catalogs,name=<status code>
puppetlabs.puppetdb.http.server:type=/pdb/query/v4/catalogs,name=service-time
# After
puppetlabs.puppetdb.http:name=/pdb/query/v4/catalogs.<status code>
puppetlabs.puppetdb.http:name=/pdb/query/v4/catalogs.service-time

Note that these metrics are now under the same puppetlabs.puppetdb.http namespace.

Message Queue (MQ) metrics

Command processing metrics related to the message queue have been moved to the puppetlabs.puppetdb.mq namespace.

We now have the following naming conventions:

# Before
puppetlabs.puppetdb.command:type=global,name=<misc>
# After
puppetlabs.puppetdb.mq:name=global.<misc>
# Before
puppetlabs.puppetdb.command:type=<command>.<version>,name=<misc>
# After
puppetlabs.puppetdb.mq:name=<command>.<version>.<misc>

For example, the following message queue metrics:

puppetlabs.puppetdb.command:type=<name>,name=discarded
puppetlabs.puppetdb.command:type=<name>,name=fatal
puppetlabs.puppetdb.command:type=<name>,name=processed
puppetlabs.puppetdb.command:type=<name>,name=processing-time
puppetlabs.puppetdb.command:type=<name>,name=retried

would now be, respectively:

puppetlabs.puppetdb.mq:name=<name>.discarded
puppetlabs.puppetdb.mq:name=<name>.fatal
puppetlabs.puppetdb.mq:name=<name>.processed
puppetlabs.puppetdb.mq:name=<name>.processing-time
puppetlabs.puppetdb.mq:name=<name>.retried

Dead Letter Office (DLO) metrics

The metrics for the DLO now have the following structure:

# Before
puppetlabs.puppetdb.command.dlo:type=global,name=<misc>
# After
puppetlabs.puppetdb.dlo:name=global.<misc>
# Before
puppetlabs.puppetdb.command.dlo:type=<filename>,name=<misc>
# After
puppetlabs.puppetdb.dlo:name=<filename>.<misc>

Storage metrics

The storage metrics' names have been shortened with the following convention:

# Before
puppetlabs.puppetdb.scf.storage:type=default,name=<misc>
# After
puppetlabs.puppetdb.storage:name=<misc>

Here are some some examples:

# Before
puppetlabs.puppetdb.scf.storage:type=default,name=duplicate-pct
puppetlabs.puppetdb.scf.storage:type=default,name=gc-time
# After
puppetlabs.puppetdb.storage:type=default,name=duplicate-pct
puppetlabs.puppetdb.storage:type=default,name=gc-time