@@ -9,19 +9,22 @@ use crate::interpolate::IsInterpolated;
9
9
use crate :: load:: SiteCtxt ;
10
10
use crate :: selector:: { Query , Selector , SeriesResponse , Tag } ;
11
11
12
- pub async fn handle_graph ( body : graph:: Request , ctxt : & SiteCtxt ) -> ServerResult < graph:: Response > {
13
- log:: info!( "handle_graph({:?})" , body) ;
12
+ pub async fn handle_graph (
13
+ request : graph:: Request ,
14
+ ctxt : Arc < SiteCtxt > ,
15
+ ) -> ServerResult < graph:: Response > {
16
+ log:: info!( "handle_graph({:?})" , request) ;
14
17
15
- create_graph ( body , ctxt) . await
18
+ create_graph ( request , ctxt) . await
16
19
}
17
20
18
21
pub async fn handle_graphs (
19
- body : graphs:: Request ,
20
- ctxt : & SiteCtxt ,
22
+ request : graphs:: Request ,
23
+ ctxt : Arc < SiteCtxt > ,
21
24
) -> ServerResult < Arc < graphs:: Response > > {
22
- log:: info!( "handle_graphs({:?})" , body ) ;
25
+ log:: info!( "handle_graphs({:?})" , request ) ;
23
26
24
- let is_default_query = body
27
+ let is_default_query = request
25
28
== graphs:: Request {
26
29
start : Bound :: None ,
27
30
end : Bound :: None ,
@@ -36,41 +39,45 @@ pub async fn handle_graphs(
36
39
}
37
40
}
38
41
39
- let resp = create_graphs ( body , ctxt) . await ?;
42
+ let resp = create_graphs ( request , & ctxt) . await ?;
40
43
41
44
if is_default_query {
42
45
ctxt. landing_page . store ( Arc :: new ( Some ( resp. clone ( ) ) ) ) ;
43
46
}
44
47
45
48
Ok ( resp)
46
49
}
47
- async fn create_graph ( body : graph:: Request , ctxt : & SiteCtxt ) -> ServerResult < graph:: Response > {
48
- let artifact_ids = artifact_ids_for_range ( ctxt, body. start , body. end ) ;
50
+
51
+ async fn create_graph (
52
+ request : graph:: Request ,
53
+ ctxt : Arc < SiteCtxt > ,
54
+ ) -> ServerResult < graph:: Response > {
55
+ let artifact_ids = artifact_ids_for_range ( & ctxt, request. start , request. end ) ;
49
56
let mut series_iterator = ctxt
50
57
. statistic_series (
51
58
Query :: new ( )
52
- . set :: < String > ( Tag :: Benchmark , Selector :: One ( body . benchmark ) )
53
- . set :: < String > ( Tag :: Profile , Selector :: One ( body . profile ) )
54
- . set :: < String > ( Tag :: Scenario , Selector :: One ( body . scenario ) )
55
- . set :: < String > ( Tag :: Metric , Selector :: One ( body . metric ) ) ,
59
+ . set :: < String > ( Tag :: Benchmark , Selector :: One ( request . benchmark ) )
60
+ . set :: < String > ( Tag :: Profile , Selector :: One ( request . profile ) )
61
+ . set :: < String > ( Tag :: Scenario , Selector :: One ( request . scenario ) )
62
+ . set :: < String > ( Tag :: Metric , Selector :: One ( request . metric ) ) ,
56
63
Arc :: new ( artifact_ids) ,
57
64
)
58
65
. await ?
59
66
. into_iter ( )
60
67
. map ( SeriesResponse :: interpolate) ;
61
68
62
69
let result = series_iterator. next ( ) . unwrap ( ) ;
63
- let graph_series = graph_series ( result. series , body . kind ) ;
70
+ let graph_series = graph_series ( result. series , request . kind ) ;
64
71
Ok ( graph:: Response {
65
72
series : graph_series,
66
73
} )
67
74
}
68
75
69
76
async fn create_graphs (
70
- body : graphs:: Request ,
77
+ request : graphs:: Request ,
71
78
ctxt : & SiteCtxt ,
72
79
) -> ServerResult < Arc < graphs:: Response > > {
73
- let artifact_ids = Arc :: new ( artifact_ids_for_range ( ctxt, body . start , body . end ) ) ;
80
+ let artifact_ids = Arc :: new ( artifact_ids_for_range ( ctxt, request . start , request . end ) ) ;
74
81
let mut benchmarks = HashMap :: new ( ) ;
75
82
76
83
let interpolated_responses: Vec < _ > = ctxt
@@ -79,23 +86,23 @@ async fn create_graphs(
79
86
. set :: < String > ( Tag :: Benchmark , Selector :: All )
80
87
. set :: < String > ( Tag :: Profile , Selector :: All )
81
88
. set :: < String > ( Tag :: Scenario , Selector :: All )
82
- . set :: < String > ( Tag :: Metric , Selector :: One ( body . stat ) ) ,
89
+ . set :: < String > ( Tag :: Metric , Selector :: One ( request . stat ) ) ,
83
90
artifact_ids. clone ( ) ,
84
91
)
85
92
. await ?
86
93
. into_iter ( )
87
94
. map ( |sr| sr. interpolate ( ) . map ( |series| series. collect :: < Vec < _ > > ( ) ) )
88
95
. collect ( ) ;
89
96
90
- let summary_benchmark = create_summary ( ctxt, & interpolated_responses, body . kind ) ?;
97
+ let summary_benchmark = create_summary ( ctxt, & interpolated_responses, request . kind ) ?;
91
98
92
99
benchmarks. insert ( "Summary" . to_string ( ) , summary_benchmark) ;
93
100
94
101
for response in interpolated_responses {
95
102
let benchmark = response. path . get :: < Benchmark > ( ) ?. to_string ( ) ;
96
103
let profile = * response. path . get :: < Profile > ( ) ?;
97
104
let scenario = response. path . get :: < Scenario > ( ) ?. to_string ( ) ;
98
- let graph_series = graph_series ( response. series . into_iter ( ) , body . kind ) ;
105
+ let graph_series = graph_series ( response. series . into_iter ( ) , request . kind ) ;
99
106
100
107
benchmarks
101
108
. entry ( benchmark)
0 commit comments