Пример #1
0
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()
Пример #2
0
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()
Пример #3
0
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()
Пример #4
0
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()
Пример #6
0
 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")
Пример #7
0
            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()
Пример #8
0
 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 = []
Пример #9
0
 def __init__(self, config):
     self.client = QueuedClient(
         TCPTransport(config.riemann_host, config.riemann_port))
     self.client.transport.connect()