1
1
import datetime
2
2
3
3
from numpy import median
4
+ from sqlalchemy import and_
4
5
5
- import flask_monitoringdashboard .core .cache as cache
6
6
from flask_monitoringdashboard import config
7
+ from flask_monitoringdashboard .core import cache
7
8
from flask_monitoringdashboard .core .colors import get_color
8
9
from flask_monitoringdashboard .core .measurement import add_decorator
9
10
from flask_monitoringdashboard .core .timezone import to_local_datetime , to_utc_datetime
22
23
update_endpoint ,
23
24
)
24
25
from flask_monitoringdashboard .database .versions import get_first_requests
25
- from sqlalchemy import and_
26
26
27
27
28
- def get_endpoint_overview (db_session ):
28
+ def get_endpoint_overview (session ):
29
29
"""
30
- :param db_session : session for the database
30
+ :param session : session for the database
31
31
:return: A list of properties for each endpoint that is found in the database
32
32
"""
33
33
week_ago = datetime .datetime .utcnow () - datetime .timedelta (days = 7 )
@@ -39,22 +39,22 @@ def get_endpoint_overview(db_session):
39
39
cache .flush_cache ()
40
40
error_hits_criterion = and_ (Request .status_code >= 400 , Request .status_code < 600 )
41
41
42
- hits_today = count_requests_group (db_session , Request .time_requested > today_utc )
42
+ hits_today = count_requests_group (session , Request .time_requested > today_utc )
43
43
hits_today_errors = count_requests_group (
44
- db_session , and_ (Request .time_requested > today_utc , error_hits_criterion )
44
+ session , and_ (Request .time_requested > today_utc , error_hits_criterion )
45
45
)
46
46
47
- hits_week = count_requests_group (db_session , Request .time_requested > week_ago )
47
+ hits_week = count_requests_group (session , Request .time_requested > week_ago )
48
48
hits_week_errors = count_requests_group (
49
- db_session , and_ (Request .time_requested > week_ago , error_hits_criterion )
49
+ session , and_ (Request .time_requested > week_ago , error_hits_criterion )
50
50
)
51
51
52
- hits = count_requests_group (db_session )
52
+ hits = count_requests_group (session )
53
53
54
- median_today = get_endpoint_data_grouped (db_session , median , Request .time_requested > today_utc )
55
- median_week = get_endpoint_data_grouped (db_session , median , Request .time_requested > week_ago )
56
- median_overall = get_endpoint_data_grouped (db_session , median )
57
- access_times = get_last_requested (db_session )
54
+ median_today = get_endpoint_data_grouped (session , median , Request .time_requested > today_utc )
55
+ median_week = get_endpoint_data_grouped (session , median , Request .time_requested > week_ago )
56
+ median_overall = get_endpoint_data_grouped (session , median )
57
+ access_times = get_last_requested (session )
58
58
59
59
return [
60
60
{
@@ -72,21 +72,21 @@ def get_endpoint_overview(db_session):
72
72
'median-overall' : get_value (median_overall , endpoint .id ),
73
73
'last-accessed' : get_value (access_times , endpoint .name , default = None ),
74
74
}
75
- for endpoint in get_endpoints (db_session )
75
+ for endpoint in get_endpoints (session )
76
76
]
77
77
78
78
79
- def get_endpoint_users (db_session , endpoint_id , users ):
79
+ def get_endpoint_users (session , endpoint_id , users ):
80
80
"""
81
- :param db_session : session for the database
81
+ :param session : session for the database
82
82
:param endpoint_id: id for the endpoint
83
83
:param users: a list of users to be filtered on
84
84
:return: a list of dicts with the performance of each user
85
85
"""
86
86
times = get_user_data_grouped (
87
- db_session , lambda x : simplify (x , 100 ), Request .endpoint_id == endpoint_id
87
+ session , lambda x : simplify (x , 100 ), Request .endpoint_id == endpoint_id
88
88
)
89
- first_requests = get_first_requests (db_session , endpoint_id )
89
+ first_requests = get_first_requests (session , endpoint_id )
90
90
return [
91
91
{
92
92
'user' : u ,
@@ -98,17 +98,17 @@ def get_endpoint_users(db_session, endpoint_id, users):
98
98
]
99
99
100
100
101
- def get_endpoint_versions (db_session , endpoint_id , versions ):
101
+ def get_endpoint_versions (session , endpoint_id , versions ):
102
102
"""
103
- :param db_session : session for the database
103
+ :param session : session for the database
104
104
:param endpoint_id: id for the endpoint
105
105
:param versions: a list of version to be filtered on
106
106
:return: a list of dicts with the performance of each version
107
107
"""
108
108
times = get_version_data_grouped (
109
- db_session , lambda x : simplify (x , 100 ), Request .endpoint_id == endpoint_id
109
+ session , lambda x : simplify (x , 100 ), Request .endpoint_id == endpoint_id
110
110
)
111
- first_requests = get_first_requests (db_session , endpoint_id )
111
+ first_requests = get_first_requests (session , endpoint_id )
112
112
return [
113
113
{
114
114
'version' : v ,
@@ -120,32 +120,32 @@ def get_endpoint_versions(db_session, endpoint_id, versions):
120
120
]
121
121
122
122
123
- def get_api_performance (db_session , endpoints ):
123
+ def get_api_performance (session , endpoints ):
124
124
"""
125
- :param db_session : session for the database
125
+ :param session : session for the database
126
126
:param endpoints: a list of endpoints, encoded by their name
127
127
:return: for every endpoint in endpoints, a list with the performance
128
128
"""
129
- db_endpoints = [get_endpoint_by_name (db_session , end ) for end in endpoints ]
130
- data = get_endpoint_data_grouped (db_session , lambda x : simplify (x , 10 ))
129
+ db_endpoints = [get_endpoint_by_name (session , end ) for end in endpoints ]
130
+ data = get_endpoint_data_grouped (session , lambda x : simplify (x , 10 ))
131
131
return [
132
- {'name' : end .name , 'values' : get_value (data , end .id , default = [])} for end in db_endpoints
132
+ {'name' : end .name , 'values' : get_value (data , end .id , default = [])}
133
+ for end in db_endpoints
133
134
]
134
135
135
136
136
- def set_endpoint_rule (db_session , endpoint_name , monitor_level ):
137
+ def set_endpoint_rule (session , endpoint_name , monitor_level ):
137
138
"""
138
- :param db_session : session for the database
139
+ :param session : session for the database
139
140
:param endpoint_name: name of the endpoint
140
141
:param monitor_level: integer, representing the monitoring-level
141
- :return:
142
142
"""
143
- update_endpoint (db_session , endpoint_name , value = monitor_level )
143
+ update_endpoint (session , endpoint_name , value = monitor_level )
144
144
145
145
# Remove wrapper
146
146
original = getattr (config .app .view_functions [endpoint_name ], 'original' , None )
147
147
if original :
148
148
config .app .view_functions [endpoint_name ] = original
149
- db_session .commit ()
149
+ session .commit ()
150
150
151
- add_decorator (get_endpoint_by_name (db_session , endpoint_name ))
151
+ add_decorator (get_endpoint_by_name (session , endpoint_name ))
0 commit comments