Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions files/puppet-profile-parser.rb
12 changes: 12 additions & 0 deletions tasks/show_summary.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"description": "Analyze puppetserver log with profiling information and produce a summary",
"parameters": {
"logs": {
"type": "Optional[String]",
"description": "One or more log files to analyze, space separated, can contain shell glob patterns and point to .gz files. Defaults to '/var/log/puppetlabs/puppetserver/puppetserver.log'"
}
},
"files": [
"puppet_profile_parser/files/puppet-profile-parser.rb"
]
}
20 changes: 20 additions & 0 deletions tasks/show_summary.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/bin/bash

LOGS=${PT_logs:-/var/log/puppetlabs/puppetserver/puppetserver.log}
RUBY=$(which ruby||echo "/opt/puppetlabs/puppet/bin/ruby")
# allow expansion to empty string
shopt -s nullglob
log_list=($LOGS)
# prevent globbing to grab the parameter itself
set -o noglob
echo Supplied logs parameter: ${LOGS}
if [ ${#log_list[@]} == 0 ] ; then
echo "Could not find matching log files"
exit 1
fi
echo "Analyzing logs: "
echo "${log_list[@]}"
# we allow $LOGS to contain globbing characters
# FIXME: potential security issue with allowing any logfile to be specified
# Probably need to restrict to files inside /var/log/puppetlabs/puppetserver
$RUBY ${PT__installdir}/puppet_profile_parser/files/puppet-profile-parser.rb ${log_list[@]}