26
26
27
27
< script type ="text/javascript ">
28
28
var charts = {
29
- init : function ( ) {
29
+ init : function ( resultsChart , comparisonChart ) {
30
+ this . resultsChart = resultsChart ;
31
+ this . comparisonChart = comparisonChart ;
30
32
charts . toggleCompare ( $ ( "#checkToggleCompare" ) [ 0 ] ) ;
31
33
} ,
32
34
33
35
showResults : function ( ) {
34
- var annotationSource = false ;
35
-
36
- charts . indexingThroughput = chartingLib . renderChart ( 'indexing_throughput' , 'Indexing throughput' , 'Mean Throughput [docs/s]' , 'indexing_throughput_annotations.json' ) ;
37
- charts . totalTimes = chartingLib . renderChart ( 'indexing_total_times' , 'Total times' , 'Time [min]' , 'indexing_total_times_annotations.json' ) ;
38
- charts . mergeParts = chartingLib . renderChart ( 'merge_parts' , 'Merge Times, By Part' , 'Time [min]' , annotationSource ) ;
39
- charts . segmentMemory = chartingLib . renderChart ( 'segment_total_memory' , 'Segment total heap used' , 'Heap used [MB]' , annotationSource ) ;
40
- charts . cpuUsage = chartingLib . renderChart ( 'indexing_cpu_usage' , 'Indexing CPU usage' , 'CPU usage [%]' , 'indexing_cpu_usage_annotations.json' )
41
- charts . diskUsage = chartingLib . renderChart ( 'disk_usage' , 'Index disk usage' , '[GB]' , annotationSource ) ,
42
- charts . segmentCounts = chartingLib . renderChart ( 'segment_counts' , 'Index segment counts' , 'Segment count' , 'segment_counts_annotations.json' ) ,
43
- charts . queryLatency = chartingLib . renderChart ( 'search_latency_queries' , 'Search Latency' , '99th Percentile Latency [ms]' , 'search_latency_queries_annotations.json' ) ,
44
- charts . statsLatency = chartingLib . renderChart ( 'search_latency_stats' , 'Stats Latency' , '99th Percentile Latency [ms]' , annotationSource ) ,
45
- charts . gcTimes = chartingLib . renderChart ( 'gc_times' , 'GC times' , 'Total GC runtime [s]' , 'gc_times_annotations.json' )
46
-
47
-
48
- chartingLib . synchronize ( [
49
- charts . indexingThroughput ,
50
- charts . totalTimes ,
51
- charts . mergeParts ,
52
- charts . segmentMemory ,
53
- charts . cpuUsage ,
54
- charts . diskUsage ,
55
- charts . segmentCounts ,
56
- charts . queryLatency ,
57
- charts . statsLatency ,
58
- charts . gcTimes
59
- ] ) ;
36
+ this . showChart ( this . resultsChart ) ;
60
37
} ,
61
38
62
39
compare : function ( ) {
63
- // workaround for a deficiency in dygraphs bar charts and CSV data sources
64
- var versions = [ "1.7.6" , "2.4.5" , "5.4.0" , "master" , "Docker 5.4.0" ] ;
40
+ this . showChart ( this . comparisonChart ) ;
41
+ } ,
42
+
65
43
66
- charts . indexingThroughput = chartingLib . renderBarChart ( 'indexing_throughput' , 'Indexing throughput' , 'Mean Throughput [docs/s]' , versions ) ;
67
- charts . totalTimes = chartingLib . renderBarChart ( 'indexing_total_times' , 'Total times' , 'Time [min]' , versions ) ;
68
- charts . mergeParts = chartingLib . renderBarChart ( 'merge_parts' , 'Merge Times, By Part' , 'Time [min]' , versions ) ;
69
- charts . segmentMemory = chartingLib . renderBarChart ( 'segment_total_memory' , 'Segment total heap used' , 'Heap used [MB]' , versions ) ;
70
- charts . cpuUsage = chartingLib . renderBarChart ( 'indexing_cpu_usage' , 'Indexing CPU usage' , 'CPU usage [%]' , versions )
71
- charts . diskUsage = chartingLib . renderBarChart ( 'disk_usage' , 'Index disk usage' , '[GB]' , versions ) ,
72
- charts . segmentCounts = chartingLib . renderBarChart ( 'segment_counts' , 'Index segment counts' , 'Segment count' , versions ) ,
73
- charts . queryLatency = chartingLib . renderBarChart ( 'search_latency_queries' , 'Search Latency' , '99th Percentile Latency [ms]' , versions ) ,
74
- charts . statsLatency = chartingLib . renderBarChart ( 'search_latency_stats' , 'Stats Latency' , '99th Percentile Latency [ms]' , versions ) ,
75
- charts . gcTimes = chartingLib . renderBarChart ( 'gc_times' , 'GC times' , 'Total GC runtime [s]' , versions )
44
+ showChart : function ( chartId ) {
45
+ $ ( "#charts" ) . html ( "<iframe id=\"charts\" src=\"https://elasticsearch-benchmark-analytics.elastic.co/app/kibana#/dashboard/" + chartId + "?embed=true&_g=(refreshInterval%3A(display%3AOff%2Cpause%3A!f%2Cvalue%3A0)%2Ctime%3A(from%3Anow-1y%2Cmode%3Aquick%2Cto%3Anow))\" height=\"100%\" width=\"100%\" frameBorder=\"0\"></iframe>" ) ;
76
46
} ,
77
47
48
+
78
49
toggleCompare : function ( e ) {
79
50
if ( e . checked ) {
80
51
this . compare ( ) ;
83
54
}
84
55
}
85
56
}
86
-
87
57
</ script >
58
+
59
+ < style >
60
+ body , html , .main-display-area , .col-md-12 {
61
+ height : 100% ;
62
+ }
63
+ </ style >
88
64
</ head >
89
65
90
66
< body >
103
79
</ div >
104
80
< div class ="navbar-collapse collapse ">
105
81
< ul class ="nav navbar-nav ">
106
- < li class ="dropdown active ">
107
- < a href ="# " class ="dropdown-toggle " data-toggle ="dropdown "> Geonames < b class ="caret "> </ b > </ a >
108
- < ul class ="dropdown-menu ">
109
- < li > < a href ="#indexing_throughput "> Indexing Throughput</ a > </ li >
110
- < li > < a href ="#indexing_total_times "> Total times</ a > </ li >
111
- < li > < a href ="#merge_parts "> Merge Times, By Part</ a > </ li >
112
- < li > < a href ="#segment_total_memory "> Segment total heap used</ a > </ li >
113
- <!--<li><a href="#indexing_cpu_usage">Indexing CPU usage</a></li>-->
114
- < li > < a href ="#disk_usage "> Index disk usage</ a > </ li >
115
- < li > < a href ="#segment_counts "> Index segment counts</ a > </ li >
116
- < li > < a href ="#search_latency_queries "> Search Latency</ a > </ li >
117
- < li > < a href ="#search_latency_stats "> Stats Latency</ a > </ li >
118
- < li > < a href ="#gc_times "> GC times</ a > </ li >
119
- </ ul >
82
+ < li class ="active ">
83
+ < a href ="# "> Geonames</ a >
120
84
</ li >
121
85
< li > < a href ="../geopoint/index.html "> Geopoint</ a > </ li >
122
86
< li > < a href ="../percolator/index.html "> Percolator</ a > </ li >
131
95
132
96
< div class ="container ">
133
97
< div class ="row ">
134
- < div class ="col-md-12 ">
135
- < h3 > Overview</ h3 >
136
- < p > The geonames data set contains a lot of structured data. String fields are always indexed as < code > text</ code > with a raw
137
- < code > keyword</ code > subfield. We run the following variations (which we call "challenges" in Rally):</ p >
138
- < ul >
139
- < li > < strong > Append</ strong > : Indexes the whole document corpus using Elasticsearch default settings. We only adjust the
140
- number of replicas as we benchmark a single node cluster and Rally will only start the benchmark if the cluster turns
141
- green. Document ids are unique so all index operations are append only. After that a couple of queries are run in
142
- parallel by multiple clients.
143
- </ li >
144
- < li > < strong > Append Sorted</ strong > : Indexes the whole document corpus in an index sorted by country_code field in ascending
145
- order. Document ids are unique so all index operations are append only.
146
- </ li >
147
- < li > < strong > Id Conflicts</ strong > : Indexes the whole document corpus using a setup that will lead to a larger indexing
148
- throughput than the default settings. Rally will produce duplicate ids in 25% of all documents (not configurable) so we
149
- can simulate a scenario with appends most of the time and some updates in between.
150
- </ li >
151
- </ ul >
152
- < p > The benchmarks are run either for an out of the box configuration of Elasticsearch ("default settings") or with a larger heap
153
- of 4GB ("4g heap"). For more details please refer to the < a
154
- href ="https://github.com/elastic/rally-tracks/blob/master/geonames/track.json "> geonames track specification</ a > and
155
- have a look at our < a href ="../index.html "> benchmarking methodology</ a > ). The benchmark results are also provided as a
156
- < a href ="https://elasticsearch-benchmark-analytics.elastic.co/app/kibana#/dashboard/Nightly-Benchmark-Overview "> Kibana
157
- dashboard</ a > .</ p >
158
- </ div >
159
- </ div >
160
-
161
- < div class ="row ">
162
- < div class ="col-md-6 ">
98
+ < div class ="col-md-8 ">
163
99
< h3 > Results</ h3 >
164
100
< div class ="alert alert-success alert-dismissible " role ="alert ">
165
101
< button type ="button " class ="close " data-dismiss ="alert " aria-label ="Close "> < span aria-hidden ="true "> ×</ span > </ button >
166
- < strong > Hint</ strong > Click and drag to zoom. Double-click to zoom out.
167
- </ div >
168
- < div class ="alert alert-success alert-dismissible " role ="alert ">
169
- < button type ="button " class ="close " data-dismiss ="alert " aria-label ="Close "> < span aria-hidden ="true "> ×</ span > </ button >
170
- < strong > Hint</ strong > Click a data point to see the diff between it and the previous race.
102
+ < strong > Hint</ strong > These diagrams are just provided as an overview. Please go to the
103
+ < a href ="https://elasticsearch-benchmark-analytics.elastic.co/app/kibana#/dashboard/6893cc90-396b-11e7-8727-77c9f451e7f2 "> Kibana dashboard</ a >
104
+ if you want to analyze the results in more detail.
171
105
</ div >
172
106
< div >
173
107
< input type ="checkbox " id ="checkToggleCompare " onClick ="charts.toggleCompare(this) ">
@@ -176,107 +110,11 @@ <h3>Results</h3>
176
110
</ div >
177
111
</ div >
178
112
179
- < div class ="row ">
180
- <!-- weird, dygraph needs label div *before* the graph in the DOM, otherwise it will not work -->
181
- < div class ="col-md-2 col-md-push-10 ">
182
- < div id ="chart_indexing_throughput_labels "> </ div >
183
- </ div >
184
- < div class ="col-md-10 col-md-pull-2 ">
185
- < a name ="indexing_throughput " id ="indexing_throughput "> </ a >
186
- < div id ="chart_indexing_throughput " class ="benchmark-chart "> </ div >
187
- </ div >
188
- </ div >
189
-
190
- < div class ="row ">
191
- < div class ="col-md-2 col-md-push-10 ">
192
- < div id ="chart_indexing_total_times_labels "> </ div >
193
- </ div >
194
- < div class ="col-md-10 col-md-pull-2 ">
195
- < a name ="indexing_total_times " id ="indexing_total_times "> </ a >
196
- < div id ="chart_indexing_total_times " class ="benchmark-chart "> </ div >
197
- </ div >
198
- </ div >
199
-
200
- < div class ="row ">
201
- < div class ="col-md-2 col-md-push-10 ">
202
- < div id ="chart_merge_parts_labels "> </ div >
203
- </ div >
204
- < div class ="col-md-10 col-md-pull-2 ">
205
- < a name ="merge_parts " id ="merge_parts "> </ a >
206
- < div id ="chart_merge_parts " class ="benchmark-chart "> </ div >
207
- </ div >
208
- </ div >
209
-
210
- < div class ="row ">
211
- < div class ="col-md-2 col-md-push-10 ">
212
- < div id ="chart_segment_total_memory_labels "> </ div >
213
- </ div >
214
- < div class ="col-md-10 col-md-pull-2 ">
215
- < a name ="segment_total_memory " id ="segment_total_memory "> </ a >
216
- < div id ="chart_segment_total_memory " class ="benchmark-chart "> </ div >
217
- </ div >
218
- </ div >
219
-
220
- < div class ="row " style ="display:none ">
221
- < div class ="col-md-2 col-md-push-10 ">
222
- < div id ="chart_indexing_cpu_usage_labels "> </ div >
223
- </ div >
224
- < div class ="col-md-10 col-md-pull-2 ">
225
- < a name ="indexing_cpu_usage " id ="indexing_cpu_usage "> </ a >
226
- < div id ="chart_indexing_cpu_usage " class ="benchmark-chart "> </ div >
227
- </ div >
228
- </ div >
229
-
230
- < div class ="row ">
231
- < div class ="col-md-2 col-md-push-10 ">
232
- < div id ="chart_disk_usage_labels "> </ div >
233
- </ div >
234
- < div class ="col-md-10 col-md-pull-2 ">
235
- < a name ="disk_usage " id ="disk_usage "> </ a >
236
- < div id ="chart_disk_usage " class ="benchmark-chart "> </ div >
237
- </ div >
238
- </ div >
239
-
240
- < div class ="row ">
241
- < div class ="col-md-2 col-md-push-10 ">
242
- < div id ="chart_segment_counts_labels "> </ div >
243
- </ div >
244
- < div class ="col-md-10 col-md-pull-2 ">
245
- < a name ="segment_counts " id ="segment_counts "> </ a >
246
- < div id ="chart_segment_counts " class ="benchmark-chart "> </ div >
247
- </ div >
248
- </ div >
249
-
250
- < div class ="row ">
251
- < div class ="col-md-2 col-md-push-10 ">
252
- < div id ="chart_search_latency_queries_labels "> </ div >
253
- </ div >
254
- < div class ="col-md-10 col-md-pull-2 ">
255
- < a name ="search_latency_queries " id ="search_latency_queries "> </ a >
256
- < div id ="chart_search_latency_queries " class ="benchmark-chart "> </ div >
257
- </ div >
258
- </ div >
259
-
260
- < div class ="row ">
261
- < div class ="col-md-2 col-md-push-10 ">
262
- < div id ="chart_search_latency_stats_labels "> </ div >
263
- </ div >
264
- < div class ="col-md-10 col-md-pull-2 ">
265
- < a name ="search_latency_stats " id ="search_latency_stats "> </ a >
266
- < div id ="chart_search_latency_stats " class ="benchmark-chart "> </ div >
267
- </ div >
268
- </ div >
269
-
270
- < div class ="row ">
271
- < div class ="col-md-2 col-md-push-10 ">
272
- < div id ="chart_gc_times_labels "> </ div >
273
- </ div >
274
- < div class ="col-md-10 col-md-pull-2 ">
275
- < a name ="gc_times " id ="gc_times "> </ a >
276
- < div id ="chart_gc_times " class ="benchmark-chart "> </ div >
113
+ < div class ="row " style ="height:220em ">
114
+ < div class ="col-md-12 ">
115
+ < div id ="charts " style ="width:100%; height:100% "> </ div >
277
116
</ div >
278
117
</ div >
279
-
280
118
</ div > <!-- /container -->
281
119
282
120
@@ -285,11 +123,10 @@ <h3>Results</h3>
285
123
<!-- Placed at the end of the document so the pages load faster -->
286
124
< script src ="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js "> </ script >
287
125
< script src ="../assets/js/bootstrap.min.js "> </ script >
288
- < script type ="text/javascript " src ="../assets/js/dygraph-combined.js "> </ script >
289
- < script type ="text/javascript " src ="../assets/js/synchronizer.js "> </ script >
290
- < script type ="text/javascript " src ="../assets/js/charts.js "> </ script >
291
126
< script >
292
- $ ( document ) . ready ( charts . init ) ;
127
+ $ ( document ) . ready ( function ( ) {
128
+ charts . init ( "6893cc90-396b-11e7-8727-77c9f451e7f2" , "6687d4f0-3ba5-11e7-aa82-6514dc2fe291" ) ;
129
+ } ) ;
293
130
294
131
</ script >
295
132
</ body >
0 commit comments