55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
|
import os
|
||
|
import metricbeat
|
||
|
import unittest
|
||
|
from nose.plugins.attrib import attr
|
||
|
|
||
|
|
||
|
class Test(metricbeat.BaseTest):
|
||
|
|
||
|
COMPOSE_SERVICES = ['jolokia']
|
||
|
|
||
|
@unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test")
|
||
|
def test_jolokia_jmx(self):
|
||
|
"""
|
||
|
jolokia autodiscover with jmx metricset
|
||
|
"""
|
||
|
|
||
|
self.render_config_template(
|
||
|
autodiscover={
|
||
|
'jolokia': {
|
||
|
'interfaces': '''
|
||
|
- name: any
|
||
|
interval: 120s
|
||
|
''',
|
||
|
'templates': '''
|
||
|
- condition:
|
||
|
contains:
|
||
|
jolokia.server.product: "tomcat"
|
||
|
config:
|
||
|
- module: jolokia
|
||
|
metricsets: ["jmx"]
|
||
|
hosts: "${data.jolokia.url}"
|
||
|
namespace: test
|
||
|
jmx.mappings:
|
||
|
- mbean: "java.lang:type=GarbageCollector,name=PS MarkSweep"
|
||
|
attributes:
|
||
|
- attr: CollectionCount
|
||
|
field: gc.collection_count
|
||
|
|
||
|
''',
|
||
|
},
|
||
|
},
|
||
|
)
|
||
|
|
||
|
proc = self.start_beat()
|
||
|
self.wait_until(lambda: self.output_lines() > 0, max_timeout=20)
|
||
|
proc.check_kill_and_wait()
|
||
|
self.assert_no_logged_warnings()
|
||
|
|
||
|
output = self.read_output_json()
|
||
|
self.assertTrue(len(output) >= 1)
|
||
|
evt = output[0]
|
||
|
print(evt)
|
||
|
|
||
|
assert evt["jolokia"]["test"]["gc"]["collection_count"] >= 0
|