@@ -382,6 +382,18 @@ def _chunk_send(self, metrics):
382382 """
383383 messages = self ._create_messages (metrics )
384384 request = self ._create_request (messages )
385+
386+ return self ._send_request (request )
387+
388+ def _send_request (self , request ):
389+ """Send the formated zabbix request to zabbix server.
390+
391+ :type request: str
392+ :param request: formatted zabbix request
393+
394+ :rtype: str
395+ :return: Response from Zabbix Server
396+ """
385397 packet = self ._create_packet (request )
386398
387399 for host_addr in self .zabbix_uri :
@@ -435,3 +447,22 @@ def send(self, metrics):
435447 for m in range (0 , len (metrics ), self .chunk_size ):
436448 result .parse (self ._chunk_send (metrics [m :m + self .chunk_size ]))
437449 return result
450+
451+ def get_active_checks (self , host ):
452+ """Send a request to retrieve active checks
453+
454+ Format of returned items:
455+ {'key': 'KEYITEM', 'delay': 30, 'lastlogsize': 0, 'mtime': 0}
456+
457+ :type host: string
458+ :param host: host name to retrive active checks
459+
460+ :rtype: list
461+ :return: List of active checks
462+ """
463+ request = '{{"request":"active checks","host":"{host}"}}' .format (host = host )
464+ request = request .encode ("utf-8" )
465+ logger .debug ('Request: %s' , request )
466+
467+ response = self ._send_request (request )
468+ return response .get ("data" )
0 commit comments