@@ -40,10 +40,12 @@ def run_performance_analysis(deployments_to_validate=None, performance_spec=None
4040 for performance_query in quick_jsonl_file_iterator (f'./{ q_file } ' ):
4141 if not performance_query :
4242 continue
43- query_name = performance_query .pop ('name ' )
43+ query_name = performance_query .pop ('query_name ' )
4444 if queries and query_name not in queries :
4545 continue
4646 plater_performance_results [plater ][deployment_env ][query_name ] = {'success_duration' : [],
47+ 'num_results' : [],
48+ 'response_size_bytes' : [],
4749 'errors' : []}
4850 for i in range (iterations ):
4951 print (f'Sending query { query_name } to { deployment_env } : { plater } , iteration { i + 1 } ' )
@@ -55,18 +57,22 @@ def run_performance_analysis(deployments_to_validate=None, performance_spec=None
5557 profile = False ,
5658 validate = False )
5759 num_results = len (trapi_response ['message' ]['results' ])
60+ response_size = len (json .dumps (trapi_response , separators = (',' , ':' )).encode ('utf-8' ))
5861 elif query_details ["query_type" ] == "cypher" :
5962 cypher_query = performance_query ["cypher_query" ]
6063 cypher_response = send_cypher_query (url ,
6164 cypher_query )
6265 # print(cypher_response)
6366 num_results = 1
67+ response_size = len (json .dumps (cypher_response , separators = (',' , ':' )).encode ('utf-8' ))
6468 else :
6569 print ("huh" )
6670 # print(trapi_response)
6771 duration = time .time () - start_time
68- print (f'Got back { num_results } in { duration } .' )
72+ print (f'Got back { num_results } results ( { response_size } bytes) in { duration } s .' )
6973 plater_performance_results [plater ][deployment_env ][query_name ]['success_duration' ].append (duration )
74+ plater_performance_results [plater ][deployment_env ][query_name ]['num_results' ].append (num_results )
75+ plater_performance_results [plater ][deployment_env ][query_name ]['response_size_bytes' ].append (response_size )
7076 except requests .exceptions .HTTPError as e :
7177 duration = time .time () - start_time
7278 print (f'Error occured after { duration } seconds: { e } .' )
@@ -75,6 +81,7 @@ def run_performance_analysis(deployments_to_validate=None, performance_spec=None
7581 success_durations = plater_performance_results [plater ][deployment_env ][query_name ]['success_duration' ]
7682 average = sum (success_durations ) / len (success_durations ) if success_durations else "N/A"
7783 print (f'Average time for { query_name } to { deployment_env } , { plater } : { average } ' )
84+ os .makedirs ('./performance_results' , exist_ok = True )
7885 with open (f'./performance_results/performance_analysis_results_{ random .randrange (100000 )} .json' , 'w' ) as p_out :
7986 p_out .write (json .dumps (plater_performance_results , indent = 4 ))
8087
@@ -88,8 +95,8 @@ def run_performance_analysis(deployments_to_validate=None, performance_spec=None
8895 #"robokopkg": {"files": ["./performance_queries/robokopkg_performance_trapi.jsonl"],
8996 # "queries": ["gene_to_chemical_qualifier_1"],
9097 # "query_type": "trapi"},
91- "robokopkg" : {"files" : ["./performance_queries/robokopkg_performance_cypher .jsonl" ],
92- "queries" : ["gene_to_chemical_1" ],
98+ "robokopkg" : {"files" : ["./performance_queries/robokopkg_neo4j_cypher .jsonl" ],
99+ "queries" : ["gene_to_chemical_1" , "gene_to_chemical_1_no_labels_call" ],
93100 "query_type" : "cypher" }
94101 # "hmdb": {"files": ["./performance_queries/hmdb_performance_queries.jsonl"]}
95102 }
0 commit comments