Details
-
Improvement
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
None
-
None
-
Froyo
-
Enhancement
-
The Puppet Server access logs now includes information about how long a JRuby instance was in use to process a given request, in addition to the overall processing time of the request.
-
Needs Assessment
Description
As a operator of Puppet infrastructure I would like to identify individual nodes or Puppet API calls that are particularly expensive in terms of JRuby processing time. This will allow me to eliminate expensive outliers and make efficient use of JRuby availability which is the primary bottleneck for Puppet Server.
Current Behavior
The Puppet Server access log currently follows the Apache common log format with the request duration in milliseconds appended to the end:
10.32.47.186 - - [26/Apr/2018:00:39:48 -0700] "POST /puppet/v3/catalog/pe-201810-master.puppetdebug.vlan?environment=production HTTP/1.1" 200 1655399 "-" "Puppet/5.5.1 Ruby/2.4.4-p296 (x86_64-linux)" 21014
|
Desired Behavior
The duration should be followed by the number of milliseconds that a JRuby was borrowed to service the request, or a "-" character if no JRuby was used:
10.32.47.186 - - [26/Apr/2018:00:39:48 -0700] "POST /puppet/v3/catalog/pe-201810-master.puppetdebug.vlan?environment=production HTTP/1.1" 200 1655399 "-" "Puppet/5.5.1 Ruby/2.4.4-p296 (x86_64-linux)" 21014 17490
|
|
10.32.47.186 - - [26/Apr/2018:16:00:07 -0700] "GET /puppet/v3/environment_classes?environment=production HTTP/1.1" 200 124935 "-" "Apache-HttpAsyncClient/4.1.2 (Java/1.8.0_171)" 6767 -
|
Attachments
Issue Links
- is blocked by
-
SERVER-1975 HTTP metrics for the /puppet API should only measure time spent in the JRuby handler
-
- Resolved
-
-
TK-470 Add Mapped Diagnostic Context support to Jetty servers
-
- Closed
-