The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

# Include base configuration
include base.cfg

# ==================================================================
# Various parameterized checks
<Check outer_arg>
   Use = memory_heap
   Critical = 90

   Label = $0 $BASE
</Check>

# ==================================================================
# Predefined Checks

# Heap Memory
<Check memory_heap>
    Use = base_memory_relative
    Value = java.lang:type=Memory/HeapMemoryUsage/used
    Base = java.lang:type=Memory/HeapMemoryUsage/max
    Name = Heap Memory ${0:default_name}
    Label = Heap-Memory: $BASE
</Check>

<Check memory_heap_with_label>
    Value = java.lang:type=Memory/HeapMemoryUsage/used
    Name  = $1
    Label = $0
    Critical = 1:
</Check>

# Perm Gen Memory (used for class definitions)
<Check memory_non_heap>
    Use = base_memory_relative($0,$1)
    Value = java.lang:type=Memory/NonHeapMemoryUsage/used
    Base = java.lang:type=Memory/HeapMemoryUsage/max
    Label = NonHeap Memory: $BASE
</Check>

# ===============================================
# Thread count
<Check thread_count>
   Value = java.lang:type=Threading/ThreadCount
   Name = $0 $1 $2
   Critical = $0
   Warning = $1  
   Method = POST
</Check>

<Check invalid_method>
   Value = java.lang:type=Threading/ThreadCount
   Name = $0 $1 $2
   Critical = $0
   Warning = $1  
   Method = Bla
</Check>

# Child
<Check def_placeholder_1>
   Use thread_count(,2)
</Check>

<Check def_placeholder_2>
   Use thread_count($0,2)
</Check>

<Check def_placeholder_3>
   Use thread_count
</Check>

# =========================================================
# Operation checks

<Check overloaded_operation>
   MBean = jolokia.it:type=operation
   Operation = overloadedMethod(java.lang.String)
   Critical = 5
   Warning = :1
</Check>

# =========================================================
# Bug specific checks

# MBean with '#'

<Check hash_check>
  MBean = jolokia/it:pid=[ServiceRegistryProvider\#(null)],type=ParticipantMonitor,id=* 
  Attribute = Ok
  String = 1 
  Label = ServiceRegistryProvider is running 
  Name = Running 
  Critical = !OK
</Check>