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

60 lines
1.7 KiB
Python

import os
import metricbeat
import unittest
import time
class Test(metricbeat.BaseTest):
COMPOSE_SERVICES = ['logstash']
@unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test")
def test_node(self):
"""
logstash node metricset test
"""
self.render_config_template(modules=[{
"name": "logstash",
"metricsets": ["node"],
"hosts": self.get_hosts(),
"period": "1s",
}])
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)
self.assert_fields_are_documented(evt)
@unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test")
def test_node_stats(self):
"""
logstash node_stats metricset test
"""
self.render_config_template(modules=[{
"name": "logstash",
"metricsets": ["node_stats"],
"hosts": self.get_hosts(),
"period": "1s",
}])
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)
self.assert_fields_are_documented(evt)
def get_hosts(self):
return [os.getenv('LOGSTASH_HOST', 'localhost') + ':' +
os.getenv('LOGSTASH_PORT', '9600')]