from metrics import Metrics
sys.path.append("../../core/message_bus")
from producer import KafkaProducer
-import logging as log
+import logging
+
+log = logging.getLogger(__name__)
class plugin_metrics():
"""Receives Alarm info from MetricAlarm and connects with the consumer/producer """
def __init__ (self):
- self.conn = Connection()
self.metric = Metrics()
self.producer = KafkaProducer('')
- self.connection()
-#---------------------------------------------------------------------------------------------------------------------------
- def connection(self):
- try:
- """Connecting instances with CloudWatch"""
- self.conn.setEnvironment()
- self.conn = self.conn.connection_instance()
- self.cloudwatch_conn = self.conn['cloudwatch_connection']
- self.ec2_conn = self.conn['ec2_connection']
-
- except Exception as e:
- log.error("Failed to Connect with AWS %s: " + str(e))
#---------------------------------------------------------------------------------------------------------------------------
def create_metric_request(self,metric_info):
'''Comaptible API using normalized parameters'''
return data_resp
#---------------------------------------------------------------------------------------------------------------------------
- def metric_calls(self,message):
- '''Consumer will consume the message from SO,
- 1) parse the message and trigger the methods ac
- cording to keys and topics provided in request.
-
- 2) The response from plugin is saved in json format.
-
- 3) The producer object then calls the producer response
- methods to send the response back to message bus
- '''
+ def metric_calls(self,message,aws_conn):
+ """Gets the message from the common consumer"""
try:
+ self.cloudwatch_conn = aws_conn['cloudwatch_connection']
+ self.ec2_conn = aws_conn['ec2_connection']
+
metric_info = json.loads(message.value)
metric_response = dict()