class RiemannClient(ConsumerClient): def __init__(self, config): self.client = QueuedClient( TCPTransport(config.riemann_host, config.riemann_port)) self.client.transport.connect() def recieve_message(self, message): for hostname, metrics in message.items(): for metric in metrics: message = Message(**metric) self.client.event(service=message.service, metric_f=message.metric, host=hostname) self.client.flush()
def alert(Service, State, Metric, Description): with QueuedClient(TCPTransport("192.168.1.11", 5555)) as client: client.event(service=Service, state=State, metric_f=Metric, description=Description) client.flush()
def elastic_search(): health = es.cluster.health() stats = es.cluster.stats() nodes = health['number_of_nodes'] status = health['status'] docs_count = stats['indices']['docs']['count'] nodes_mem_used = stats['nodes']['os']['mem']['used_percent'] jvm_mem_used = stats['nodes']['jvm']['mem']['heap_used_in_bytes'] jvm_mem_max = stats['nodes']['jvm']['mem']['heap_max_in_bytes'] nodes_mem_free = stats['nodes']['os']['mem']['free_percent'] with QueuedClient(TCPTransport("192.168.1.11", 5555)) as client: client.event(service="nodes", metric_f=nodes) if status == 'yellow': client.event(service="status", metric_f=1, state="warning") elif status == 'green': client.event(service="status", metric_f=1, state="ok") else: client.event(service="status", metric_f=1, state="critical") client.event(service='document count', state='ok', metric_f=docs_count, description='number of documentse') client.event(service='memory used by node', state='warning', metric_f=nodes_mem_used) client.event(service='jvm memory max', state='critical', metric_f=jvm_mem_max / 1024) client.event(service='jvm memory use', metric_f=jvm_mem_used / 1024) client.flush()
def log_riemann(dn, service, text, time_elapsed): if riemann_available and 'riemann-server' in config: time_split = time_elapsed.split(':') time_sec = int(time_split[0]) * 3600 \ + int(time_split[1]) * 60 + int(time_split[2]) with QueuedClient(TCPTransport(config['riemann-server'], config['riemann-port'], timeout=30)) as client: client.event(service=service, description=text, metric_f=time_sec) client.flush()
def send_data(): with QueuedClient(TCPTransport("192.168.1.7", 5555)) as client: for evt in event_queue: client.event(service=evt[0], state=evt[1], metric_f=evt[2], description=evt[3], tags=[evt[4]], ttl=20) client.flush()
def test_not_conected_post(self): """ Make a call to a dummy resource and check if monitor calls have been called. """ with patch.object( self.api, "_get_riemann_client", lambda: QueuedClient(UDPTransport("10.10.10.90"))): _wsgi_read(self.simulate_request("/", method="POST")) self.assertTrue(self._wait_for_clear()) # wait for worker self.assertEqual(self.srmock.status[:3], "405")
config['domains'][args.domain] = {'port': args.port} for domain in config['domains']: if not validators.domain(domain): print("domains." + domain + " must be a valid domain") exit(1) if type(config['domains'][domain]) is not dict: config['domains'][domain] = {'port': DEFAULT_SSL_PORT} else: if not (type(config['domains'][domain]['port']) is int): print("port for " + domain + " must be an integer") exit(1) return config # main args = getArguments() config = getConfig(args.config) with QueuedClient( TCPTransport(config['riemann']['server'], config['riemann']['port'])) as client: for domain in config['domains']: delta = getCertExpirationDelay(domain, config['domains'][domain]['port']) client.event(service="certif_check_" + str(config['domains'][domain]['port']), metric_f=delta.days, state=getCriticallity(delta.days), ttl=config['riemann']['ttl'], host=domain) client.flush()
def _flush_events(self): with QueuedClient(self.transport(self.host, self.port)) as cl: for event in self.queue: cl.event(**event) cl.flush() self.queue = []
def __init__(self, config): self.client = QueuedClient( TCPTransport(config.riemann_host, config.riemann_port)) self.client.transport.connect()