Available Graphite metrics
These HTTP and Puppet profiler metrics are available from the Puppet Server and can be added to your metrics reporting.
Graphite metrics properties
Each metric is prefixed with puppetlabs.<PRIMARY_HOSTNAME>
. For
example, the Grafana dashboard file refers to the num-cpus
metric as
puppetlabs.<PRIMARY_HOSTNAME>.num-cpus
.
Additionally, metrics might be suffixed by fields, such as count
or
mean
, that return more specific data points. For example, the
puppetlabs.<PRIMARY_HOSTNAME>.compiler.mean
metric returns
only the mean length of time it takes Puppet Server to compile a catalog.
-
Statistical metrics: Metrics that have all eight of these statistical
analysis fields, in addition to the top-level metric:
-
max
: Its maximum measured value. -
min
: Its minimum measured value. -
mean
: Its mean, or average, value. -
stddev
: Its standard deviation from the mean. -
count
: An incremental counter. -
p50
: The value of its 50th percentile, or median. -
p75
: The value of its 75th percentile. -
p95
: The value of its 95th percentile.
-
-
Counters only: Metrics that only count a value, or only have a
count
field. - Other: Metrics that have unique sets of available fields.
Statistical metrics
-
puppetlabs.<PRIMARY_HOSTNAME>.compiler
: The time spent compiling catalogs. This metric represents the sum of thecompiler.compile
,static_compile
,find_facts
, andfind_node
fields.-
puppetlabs.<PRIMARY_HOSTNAME>.compiler.compile
: The total time spent compiling dynamic (non-static) catalogs. To measure specific nodes and environments, see Modify exported metrics. -
puppetlabs.<PRIMARY_HOSTNAME>.compiler.find_facts
: The time spent parsing facts. -
puppetlabs.<PRIMARY_HOSTNAME>.compiler.find_node
: The time spent retrieving node data. If the Node Classifier (or another ENC) is configured, this includes the time spent communicating with it. -
puppetlabs.<PRIMARY_HOSTNAME>.compiler.static_compile
: The time spent compiling static catalogs. -
puppetlabs.<PRIMARY_HOSTNAME>.compiler.static_compile_inlining
: The time spent inlining metadata for static catalogs. -
puppetlabs.<PRIMARY_HOSTNAME>.compiler.static_compile_postprocessing
: The time spent post-processing static catalogs.
-
-
puppetlabs.<PRIMARY_HOSTNAME>.file-sync-client.clone-timer
: The time spent by file sync clients on compilers initially cloning repositories on the primary server. -
puppetlabs.<PRIMARY_HOSTNAME>.file-sync-client.fetch-timer
: The time spent by file sync clients on compilers fetching repository updates from the primary server. -
puppetlabs.<PRIMARY_HOSTNAME>.file-sync-client.sync-clean-check-timer
: The time spent by file sync clients on compilers checking whether the repositories are clean. -
puppetlabs.<PRIMARY_HOSTNAME>.file-sync-client.sync-timer
: The time spent by file sync clients on compilers synchronizing code from the private datadir to the live codedir. puppetlabs.<PRIMARY_HOSTNAME>.file-sync-storage.commit-add-rm-timer
-
puppetlabs.<PRIMARY_HOSTNAME>.file-sync-storage.commit-timer
: The time spent committing code on the primary server into the file sync repository.
-
puppetlabs.<PRIMARY_HOSTNAME>.functions
: The amount of time during catalog compilation spent in function calls. Thefunctions
metric can also report any of the statistical metrics fields for a single function by specifying the function name as a field. For example, to report the mean time spent in a function call during catalog compilation, usepuppetlabs.<PRIMARY_HOSTNAME>.functions.<FUNCTION-NAME>.mean
.
-
puppetlabs.<PRIMARY_HOSTNAME>.http.active-histo
: A histogram of active HTTP requests over time. -
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-catalog-/*/-requests
: The time Puppet Server has spent handling catalog requests, including time spent waiting for an available JRuby instance. -
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-environment-/*/-requests
: The time Puppet Server has spent handling environment requests, including time spent waiting for an available JRuby instance. -
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-environment_classes-/*/-requests
: The time spent handling requests to theenvironment_classes
API endpoint, which the Node Classifier uses to refresh classes. -
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-environments-requests
: The time spent handling requests to theenvironments
API endpoint requests made by the Orchestrator. - The following metrics measure the time spent handling file-related API endpoints:
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_bucket_file-/*/-requests
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_content-/*/-requests
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_metadata-/*/-requests
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_metadatas-/*/-requests
-
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-node-/*/-requests
: The time spent handling node requests, which are sent to the Node Classifier. A bottleneck here might indicate an issue with the Node Classifier or PuppetDB. -
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-report-/*/-requests
: The time spent handling report requests. A bottleneck here might indicate an issue with PuppetDB. -
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-static_file_content-/*/-requests
: The time spent handling requests to thestatic_file_content
API endpoint used by Direct Puppet with file sync.
-
puppetlabs.<PRIMARY_HOSTNAME>.jruby.borrow-timer
: The time spent with a borrowed JRuby. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.free-jrubies-histo
: A histogram of free JRubies over time. This metric's average value must be greater than 1; if it isn't, more JRubies or another compiler might be needed to keep up with requests. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.lock-held-timer
: The time spent holding the JRuby lock. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.lock-wait-timer
: The time spent waiting to acquire the JRuby lock. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.requested-jrubies-histo
: A histogram of requested JRubies over time. This increases as the number of free JRubies, or thefree-jrubies-histo
metric, decreases, which can suggest that the server's capacity is being depleted. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.wait-timer
: The time spent waiting to borrow a JRuby.
puppetlabs.<PRIMARY_HOSTNAME>.puppetdb.catalog.save
puppetlabs.<PRIMARY_HOSTNAME>.puppetdb.command.submit
puppetlabs.<PRIMARY_HOSTNAME>.puppetdb.facts.find
puppetlabs.<PRIMARY_HOSTNAME>.puppetdb.facts.search
puppetlabs.<PRIMARY_HOSTNAME>.puppetdb.report.process
puppetlabs.<PRIMARY_HOSTNAME>.puppetdb.resource.search
Counters only
-
puppetlabs.<PRIMARY_HOSTNAME>.http.active-requests
: The number of active HTTP requests. - The following counter metrics report the percentage of each HTTP API endpoint's
share of total handled HTTP requests.
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-catalog-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-environment-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-environment_classes-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-environments-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_bucket_file-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_content-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_metadata-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-file_metadatas-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-node-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-report-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-resource_type-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-resource_types-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-static_file_content-/*/-percentage
puppetlabs.<PRIMARY_HOSTNAME>.http.puppet-v3-status-/*/-percentage
-
puppetlabs.<PRIMARY_HOSTNAME>.http.total-requests
: The total requests handled by Puppet Server.
-
puppetlabs.<PRIMARY_HOSTNAME>.jruby.borrow-count
: The number of successfully borrowed JRubies. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.borrow-retry-count
: The number of attempts to borrow a JRuby that must be retried. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.borrow-timeout-count
: The number of attempts to borrow a JRuby that resulted in a timeout. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.request-count
: The number of requested JRubies. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.return-count
: The number of JRubies successfully returned to the pool. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.num-free-jrubies
: The number of free JRuby instances. If this number is often 0, more requests are coming in than the server has available JRuby instances. To alleviate this, increase the number of JRuby instances on the Server or add additional compilers. -
puppetlabs.<PRIMARY_HOSTNAME>.jruby.num-jrubies
: The total number of JRuby instances on the server, governed by themax-active-instances
setting. See Tuning JRuby on Puppet Server for details.
Other metrics
-
puppetlabs.<PRIMARY_HOSTNAME>.num-cpus
: The number of available CPUs on the server. -
puppetlabs.<PRIMARY_HOSTNAME>.uptime
: The Puppet Server process's uptime. - Total, heap, and non-heap memory that's committed (
committed
), initialized (init
), and used (used
), and the maximum amount of memory that can be used (max
).puppetlabs.<PRIMARY_HOSTNAME>.memory.total.committed
puppetlabs.<PRIMARY_HOSTNAME>.memory.total.init
puppetlabs.<PRIMARY_HOSTNAME>.memory.total.used
puppetlabs.<PRIMARY_HOSTNAME>.memory.total.max
puppetlabs.<PRIMARY_HOSTNAME>.memory.heap.committed
puppetlabs.<PRIMARY_HOSTNAME>.memory.heap.init
puppetlabs.<PRIMARY_HOSTNAME>.memory.heap.used
puppetlabs.<PRIMARY_HOSTNAME>.memory.heap.max
puppetlabs.<PRIMARY_HOSTNAME>.memory.non-heap.committed
puppetlabs.<PRIMARY_HOSTNAME>.memory.non-heap.init
puppetlabs.<PRIMARY_HOSTNAME>.memory.non-heap.used
puppetlabs.<PRIMARY_HOSTNAME>.memory.non-heap.max
Modify exported metrics
In addition to the default metrics, you can also export metrics measuring specific environments and nodes managed by Puppet Server.
The
puppet_enterprise::profile::master::metrics_puppetserver_metrics_allowed
parameter takes an array of metrics as strings. To export additional metrics, add
them to this array.
-
compiler.compile.<ENVIRONMENT>
andcompiler.compile.<ENVIRONMENT>.<NODE-NAME>
, and all statistical fields suffixed to these, such ascompiler.compile.<ENVIRONMENT>.mean
. -
compiler.compile.evaluate_resources.<RESOURCE>
, which represents time spent evaluating a specific resource during catalog compilation.
puppetlabs.<MASTER-HOSTNAME>
prefix and field
suffixes (such as .count
or .mean
) from metrics.
Instead, suffix the environment or node name as a field to the metric. For example:- To track the compilation time for the
production
environment, addcompiler.compile.production
to themetrics-allowed
list. - To track only the
my.node.localdomain
node in theproduction
environment, addcompiler.compile.production.my.node.localdomain
to themetrics-allowed
list.