diff --git a/api/src/models/discussion.py b/api/src/models/discussion.py index 2eb2fd742489212626c7480d79ca3f9c4f8fb542..bb6e803325f6c5ec0a9cf8597ca4737be3ec1a71 100644 --- a/api/src/models/discussion.py +++ b/api/src/models/discussion.py @@ -1,3 +1,4 @@ +from api.src.time_measure.measurement import Measurement from api.src.traffic.adapter import Adapter from api.src.traffic.injector import Injector @@ -26,5 +27,16 @@ class Discussion(Adapter, Injector): result = super().request() return result['issue']['completeGraphCypher'] + # Todo: abstract further def inject_to_neo(self): - return self.run(self._cypher_query()) + response = Measurement.get_elapsed_time(self._cypher_query) + cypher_response = self.run(response.get("result")) + + res = { + "request_time": round(response.get("elapsed_time"), 4), + "injection_time": round(cypher_response.get("total_time"), 4) + } + + res["total_time"] = round(sum(res.values()), 4) + + return res diff --git a/api/src/models/discussion_skeleton.py b/api/src/models/discussion_skeleton.py index 4d6840b8e6cab7fe663753c356164b62aa8a27d4..0762ed0dc1602f18471b0367c9a6b20b02467527 100644 --- a/api/src/models/discussion_skeleton.py +++ b/api/src/models/discussion_skeleton.py @@ -12,6 +12,7 @@ class DiscussionSkeleton(Adapter, Injector): Adapter.__init__(self, url="{}://{}:{}/api/cypher".format(self.protocol, self.host, self.port)) Injector.__init__(self) + # Todo: abstract further def inject_to_neo(self): response = Measurement.get_elapsed_time(self.request, expects_true_string=True) cypher_response = self.run(response.get("result")) diff --git a/api/src/time_measure/measurement.py b/api/src/time_measure/measurement.py index 94f3ca40c52974c5a37161c19351d6f4313706db..c240eead5c314299ae80134b22cb7ab8b8040dd4 100644 --- a/api/src/time_measure/measurement.py +++ b/api/src/time_measure/measurement.py @@ -6,7 +6,7 @@ class Measurement(object): @staticmethod def get_elapsed_time(func, **kwargs): t1 = time.time() - res = func(kwargs) + res = func(kwargs) if kwargs else func() return { "result": res, "elapsed_time": time.time() - t1 diff --git a/api/static/swagger/neo_api.yaml b/api/static/swagger/neo_api.yaml index e176ba70f1f0921a95353d9630ea1ad76311f8d3..791c4b394b4063221af6563c7fd92cc4b85290d8 100644 --- a/api/static/swagger/neo_api.yaml +++ b/api/static/swagger/neo_api.yaml @@ -106,6 +106,10 @@ paths: schema: type: object properties: + injection_time: + type: number + request_time: + type: number total_time: type: number 404: