youtubebeat/vendor/github.com/elastic/beats/metricbeat/tests/system/test_autodiscover_jolokia.py

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