Skip to content
Snippets Groups Projects
Commit 5f284990 authored by Marc Feger's avatar Marc Feger
Browse files

Add more time measurement to discussions and add them to swagger documentation

parent 92b4e07b
No related branches found
No related tags found
No related merge requests found
from api.src.time_measure.measurement import Measurement
from api.src.traffic.adapter import Adapter from api.src.traffic.adapter import Adapter
from api.src.traffic.injector import Injector from api.src.traffic.injector import Injector
...@@ -26,5 +27,16 @@ class Discussion(Adapter, Injector): ...@@ -26,5 +27,16 @@ class Discussion(Adapter, Injector):
result = super().request() result = super().request()
return result['issue']['completeGraphCypher'] return result['issue']['completeGraphCypher']
# Todo: abstract further
def inject_to_neo(self): 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
...@@ -12,6 +12,7 @@ class DiscussionSkeleton(Adapter, Injector): ...@@ -12,6 +12,7 @@ class DiscussionSkeleton(Adapter, Injector):
Adapter.__init__(self, url="{}://{}:{}/api/cypher".format(self.protocol, self.host, self.port)) Adapter.__init__(self, url="{}://{}:{}/api/cypher".format(self.protocol, self.host, self.port))
Injector.__init__(self) Injector.__init__(self)
# Todo: abstract further
def inject_to_neo(self): def inject_to_neo(self):
response = Measurement.get_elapsed_time(self.request, expects_true_string=True) response = Measurement.get_elapsed_time(self.request, expects_true_string=True)
cypher_response = self.run(response.get("result")) cypher_response = self.run(response.get("result"))
......
...@@ -6,7 +6,7 @@ class Measurement(object): ...@@ -6,7 +6,7 @@ class Measurement(object):
@staticmethod @staticmethod
def get_elapsed_time(func, **kwargs): def get_elapsed_time(func, **kwargs):
t1 = time.time() t1 = time.time()
res = func(kwargs) res = func(kwargs) if kwargs else func()
return { return {
"result": res, "result": res,
"elapsed_time": time.time() - t1 "elapsed_time": time.time() - t1
......
...@@ -106,6 +106,10 @@ paths: ...@@ -106,6 +106,10 @@ paths:
schema: schema:
type: object type: object
properties: properties:
injection_time:
type: number
request_time:
type: number
total_time: total_time:
type: number type: number
404: 404:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment