Skip to content

Instantly share code, notes, and snippets.

@pburkholder
Created January 9, 2014 20:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pburkholder/8341458 to your computer and use it in GitHub Desktop.
Save pburkholder/8341458 to your computer and use it in GitHub Desktop.
LoadPlugin java
<Plugin "java">
# required JVM argument is the classpath
JVMARG "-Djava.class.path=/usr/share/collectd/java/collectd-api.jar:/usr/share/collectd/java/generic-jmx.jar"
LoadPlugin "org.collectd.java.GenericJMX"
<Plugin "GenericJMX">
################
# MBean blocks #
################
# Number of classes being loaded.
<MBean "classes">
ObjectName "java.lang:type=ClassLoading"
#InstancePrefix ""
#InstanceFrom ""
<Value>
Type "classes"
InstancePrefix "loaded_classes"
#InstanceFrom ""
Table false
Attribute "LoadedClassCount"
</Value>
</MBean>
# Time spent by the JVM compiling or optimizing.
<MBean "compilation">
ObjectName "java.lang:type=Compilation"
#InstancePrefix ""
#InstanceFrom ""
<Value>
Type "total_time_in_ms"
InstancePrefix "compilation_time"
#InstanceFrom ""
Table false
Attribute "TotalCompilationTime"
</Value>
</MBean>
# Garbage collector information
<MBean "garbage_collector">
ObjectName "java.lang:type=GarbageCollector,*"
InstancePrefix "gc-"
InstanceFrom "name"
<Value>
Type "invocations"
#InstancePrefix ""
#InstanceFrom ""
Table false
Attribute "CollectionCount"
</Value>
<Value>
Type "total_time_in_ms"
InstancePrefix "collection_time"
#InstanceFrom ""
Table false
Attribute "CollectionTime"
</Value>
# # Not that useful, therefore commented out.
# <Value>
# Type "threads"
# #InstancePrefix ""
# #InstanceFrom ""
# Table false
# # Demonstration how to access composite types
# Attribute "LastGcInfo.GcThreadCount"
# </Value>
</MBean>
######################################
# Define the "jmx_memory" type as: #
# jmx_memory value:GAUGE:0:U #
# See types.db(5) for details. #
######################################
# Generic heap/nonheap memory usage.
<MBean "memory">
ObjectName "java.lang:type=Memory"
#InstanceFrom ""
InstancePrefix "memory"
# Creates four values: committed, init, max, used
<Value>
Type "jmx_memory"
#InstancePrefix ""
#InstanceFrom ""
Table true
Attribute "HeapMemoryUsage"
InstancePrefix "heap-"
</Value>
# Creates four values: committed, init, max, used
<Value>
Type "jmx_memory"
#InstancePrefix ""
#InstanceFrom ""
Table true
Attribute "NonHeapMemoryUsage"
InstancePrefix "nonheap-"
</Value>
</MBean>
# Memory usage by memory pool.
<MBean "memory_pool">
ObjectName "java.lang:type=MemoryPool,*"
InstancePrefix "memory_pool-"
InstanceFrom "name"
<Value>
Type "jmx_memory"
#InstancePrefix ""
#InstanceFrom ""
Table true
Attribute "Usage"
</Value>
</MBean>
### MBeans by Catalina / Tomcat ###
# The global request processor (summary for each request processor)
<MBean "catalina/global_request_processor">
ObjectName "Catalina:type=GlobalRequestProcessor,*"
InstancePrefix "request_processor-"
InstanceFrom "name"
<Value>
Type "io_octets"
InstancePrefix "global"
#InstanceFrom ""
Table false
Attribute "bytesReceived"
Attribute "bytesSent"
</Value>
<Value>
Type "total_requests"
InstancePrefix "global"
#InstanceFrom ""
Table false
Attribute "requestCount"
</Value>
<Value>
Type "total_time_in_ms"
InstancePrefix "global-processing"
#InstanceFrom ""
Table false
Attribute "processingTime"
</Value>
</MBean>
# Details for each request processor
<MBean "catalina/detailed_request_processor">
ObjectName "Catalina:type=RequestProcessor,*"
InstancePrefix "request_processor-"
InstanceFrom "worker"
<Value>
Type "io_octets"
#InstancePrefix ""
InstanceFrom "name"
Table false
Attribute "bytesReceived"
Attribute "bytesSent"
</Value>
<Value>
Type "total_requests"
#InstancePrefix ""
InstanceFrom "name"
Table false
Attribute "requestCount"
</Value>
<Value>
Type "total_time_in_ms"
InstancePrefix "processing-"
InstanceFrom "name"
Table false
Attribute "processingTime"
</Value>
</MBean>
# Thread pool
<MBean "catalina/thread_pool">
ObjectName "Catalina:type=ThreadPool,*"
InstancePrefix "thread_pool-"
InstanceFrom "name"
<Value>
Type "threads"
InstancePrefix "total"
#InstanceFrom ""
Table false
Attribute "currentThreadCount"
</Value>
<Value>
Type "threads"
InstancePrefix "running"
#InstanceFrom ""
Table false
Attribute "currentThreadsBusy"
</Value>
</MBean>
#####################
# Connection blocks #
#####################
<Connection>
ServiceURL "service:jmx:rmi:///jndi/rmi://localhost:<%= @options[:port] %>/jmxrmi"
Host "localhost"
Collect "classes"
Collect "compilation"
Collect "garbage_collector"
Collect "memory"
Collect "memory_pool"
Collect "catalina/global_request_processor"
Collect "catalina/thread_pool"
</Connection>
</Plugin>
</Plugin>
include_recipe 'zs-collectd::default'
# Ref https://github.com/collectd/collectd/blob/master/contrib/GenericJMX.conf
file "/usr/share/collectd/types.db.tomcat" do
owner "root"
group "root"
mode 0644
content "jmx_memory value:GAUGE:0:U\nclasses value:GAUGE:0:U\n"
notifies :run, 'execute[build-types.db.combined]', :delayed
end
collectd_plugin 'tomcat' do
options \
:port => node[:collectd][:tomcat][:jmx_port]
template "tomcat.conf.erb"
cookbook "zs-collectd"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment