From 5f284990c60af02ac90af130a775972b163da88a Mon Sep 17 00:00:00 2001 From: feger <marc.feger@hhu.de> Date: Fri, 8 Mar 2019 16:28:40 +0100 Subject: [PATCH] Add more time measurement to discussions and add them to swagger documentation --- api/src/models/discussion.py | 14 +++++++++++++- api/src/models/discussion_skeleton.py | 1 + api/src/time_measure/measurement.py | 2 +- api/static/swagger/neo_api.yaml | 4 ++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/api/src/models/discussion.py b/api/src/models/discussion.py index 2eb2fd7..bb6e803 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 4d6840b..0762ed0 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 94f3ca4..c240eea 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 e176ba7..791c4b3 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: -- GitLab