2626import re
2727
2828NGINX_INDEX = 'mfnnx'
29- COMPONENT_INDEXES = 'mfnfe,mfnqs,mfnwf, mfnnx'
29+ COMPONENT_INDEXES = 'mfnfe,mfnqs,mfnnx'
3030
31- def get_metric_logs_from_all_components (eshost , esport = 9200 , uuids = None , proxies = None , debugReadFromFile = False ):
31+ def get_metric_logs_from_all_components (workflow_id , eshost , esport = 9200 , uuids = None , proxies = None , debugReadFromFile = False ):
3232 # Form elasticsearch query
3333 status , request = form_query (uuids )
3434 if status == False :
@@ -37,7 +37,7 @@ def get_metric_logs_from_all_components(eshost, esport=9200, uuids=None, proxies
3737
3838 # Execute the query
3939 if debugReadFromFile == False :
40- status , output = query_elasticsearch (eshost , esport , request , proxies )
40+ status , output = query_elasticsearch (workflow_id , eshost , esport , request , proxies )
4141 if status == False :
4242 logging .debug ("query_elasticsearch error: " + output )
4343 return False , output
@@ -61,7 +61,7 @@ def get_metric_logs_from_all_components(eshost, esport=9200, uuids=None, proxies
6161 status , output = handleFrontendLogline (hit )
6262 elif index == 'mfnqs' :
6363 status , output = handleQueueServiceLogline (hit )
64- elif index == 'mfnwf' :
64+ elif index == 'mfnwf-' + workflow_id :
6565 status , output = handleWorkflowTraceLogline (hit )
6666 elif index == 'mfnnx' :
6767 status , output = handleNginxLogline (hit )
@@ -731,12 +731,12 @@ def handleNginxLogline(hit):
731731 },
732732 '''
733733
734- def query_elasticsearch (eshost , esport , request , proxies ):
734+ def query_elasticsearch (wid , eshost , esport , request , proxies ):
735735 url = "http://" + eshost + ":" + str (esport )
736736 logging .debug ("Url: " + url )
737737
738738 try :
739- r = requests .get (url + "/" + COMPONENT_INDEXES + '/_search' , json = request , proxies = proxies )
739+ r = requests .get (url + "/" + COMPONENT_INDEXES + ",mfnwf-" + wid + '/_search' , json = request , proxies = proxies )
740740
741741 logging .debug ('Http response code: ' + str (r .status_code ))
742742 logging .debug ('Http status reason: ' + r .reason )
@@ -778,6 +778,7 @@ def printlog(outlog):
778778
779779def main ():
780780 parser = argparse .ArgumentParser (description = 'Generate overhead metrics and timestamps for microfunctions workflow executions' , prog = 'mfnmetrics.py' )
781+ parser .add_argument ('-wid' , '--wid' , metavar = 'WORKFLOW_ID' , help = 'Workflow id to determine the index.' )
781782 parser .add_argument ('-eid' , '--eid' , nargs = '+' , metavar = 'EXECUTION_UUIDS' , help = 'Generate metric for specific execution id(s).' )
782783 parser .add_argument ('-eidfile' , '--eidfile' , type = str , help = "Read execution ids from the given file (with 1 uuid per line); overrides -eid option" )
783784 parser .add_argument ('-eshost' , '--eshost' , type = str , metavar = 'ELASTICSEARCH_HOST' , default = socket .gethostname (), help = 'Elasticsearch host. Defaults to ' + socket .gethostname () + ':9200.' )
@@ -789,6 +790,8 @@ def main():
789790
790791 args = parser .parse_args ()
791792
793+ workflow_id = args .wid
794+
792795 eidfilename = args .eidfile
793796 if eidfilename is None :
794797 uuids = args .eid
@@ -820,6 +823,7 @@ def main():
820823 "https" : https_proxy ,
821824 }
822825
826+ logging .debug ("Workflow id: " + str (workflow_id ))
823827 logging .debug ("Execution uuid(s): " + str (uuids ))
824828 logging .debug ("Elasticsearch host: " + str (eshost )+ ':9200' )
825829 logging .debug ("Proxies: " + str (proxies ))
@@ -828,7 +832,7 @@ def main():
828832 if proxy == False :
829833 proxies = None
830834
831- status , result = get_metric_logs_from_all_components (eshost , esport = 9200 , uuids = uuids , proxies = proxies , debugReadFromFile = debugReadFromFile )
835+ status , result = get_metric_logs_from_all_components (workflow_id , eshost , esport = 9200 , uuids = uuids , proxies = proxies , debugReadFromFile = debugReadFromFile )
832836 if status == True :
833837 printlog (result )
834838 else :
0 commit comments