Skip to content

Commit fa89c7a

Browse files
Query more data for daily indices (elastic#71)
With this commit we first fix the index pattern so queries can actually match data. We also change the queries so we don't run any redundant ones and modify them to retrieve more data. Finally, we modify the Kibana runner so it stores some metadata about the query results (number of total hits and the maximum value of `took` across all msearch responses).
1 parent d0fed86 commit fa89c7a

File tree

3 files changed

+62
-26
lines changed

3 files changed

+62
-26
lines changed

eventdata/challenges/daily-log-volume-index-and-query.json

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@
4040
"index": "elasticlogs-2999-01-01-throughput-test"
4141
}
4242
},
43+
{
44+
"operation": {
45+
"operation-type": "fieldstats",
46+
"index_pattern": "elasticlogs-*"
47+
},
48+
"iterations": 1,
49+
{# this needs to be available for all clients, and we issue three concurrent queries #}
50+
"clients": {{ p_bulk_indexing_clients + 3}}
51+
},
4352
{% set comma = joiner() %}
4453
{% for day in range(p_number_of_days) %}
4554
{% set utilization = (day + 1) / p_number_of_days %}
@@ -73,50 +82,65 @@
7382
}
7483
},
7584
{
76-
"name": "current-kibana-traffic-country-dashboard_60m-querying-{{utilization_task_suffix}}",
77-
"operation": "current-kibana-traffic-country-dashboard_60m",
85+
"name": "traffic-dashboard-50%-{{utilization_task_suffix}}",
86+
"operation": {
87+
"operation-type": "kibana",
88+
"param-source": "elasticlogs_kibana",
89+
"debug": {{p_verbose}},
90+
"dashboard": "traffic",
91+
"index_pattern": "elasticlogs-*",
92+
"query_string": "query_string_lists/country_code_query_strings.json",
93+
"window_end": "END",
94+
"window_length": "50%"
95+
},
7896
"clients": 1,
7997
"target-interval": {{ query1_target_interval | default(30) | int }},
8098
"meta": {
8199
"querying": "yes",
82-
"query_type": "current",
100+
"query_type": "relative",
83101
"utilization": {{ utilization }}
84102
},
85103
"schedule": "poisson"
86104
},
87105
{
88-
"name": "current-kibana-discover_30m-querying-{{utilization_task_suffix}}",
89-
"operation": "current-kibana-discover_30m",
90-
"clients": 1,
91-
"target-interval": {{ query2_target_interval | default(30) | int }},
92-
"meta": {
93-
"querying": "yes",
94-
"query_type": "current",
95-
"utilization": {{ utilization }}
106+
"name": "discover-30m-{{utilization_task_suffix}}",
107+
"operation": {
108+
"operation-type": "kibana",
109+
"param-source": "elasticlogs_kibana",
110+
"debug": {{p_verbose}},
111+
"dashboard": "discover",
112+
"index_pattern": "elasticlogs-*",
113+
"query_string": ["*"],
114+
"window_end": "END",
115+
"window_length": "30m"
96116
},
97-
"schedule": "poisson"
98-
},
99-
{
100-
"name": "current-kibana-traffic-dashboard_30m-querying-{{utilization_task_suffix}}",
101-
"operation": "current-kibana-traffic-dashboard_30m",
102117
"clients": 1,
103-
"target-interval": {{ query3_target_interval | default(30) | int }},
118+
"target-interval": {{ query2_target_interval | default(30) | int }},
104119
"meta": {
105120
"querying": "yes",
106-
"query_type": "current",
121+
"query_type": "relative",
107122
"utilization": {{ utilization }}
108123
},
109124
"schedule": "poisson"
110125
},
111126
{
112-
"name": "current-kibana-content_issues-dashboard_30m-querying-{{utilization_task_suffix}}",
127+
"name": "content_issues-dashboard-50%-{{utilization_task_suffix}}",
113128
"#COMMENT": "Looks only for 404s about 1-1.5% of data",
114-
"operation": "current-kibana-content_issues-dashboard_30m",
129+
"operation": {
130+
"operation-type": "kibana",
131+
"param-source": "elasticlogs_kibana",
132+
"debug": {{p_verbose}},
133+
"dashboard": "content_issues",
134+
"index_pattern": "elasticlogs-*",
135+
"query_string": ["*"],
136+
"window_end": "END",
137+
"window_length": "50%"
138+
},
115139
"clients": 1,
116-
"target-interval": {{ query4_target_interval | default(30) | int }},
140+
"target-interval": {{ query3_target_interval | default(30) | int }},
117141
"meta": {
118142
"querying": "yes",
119-
"query_type": "current",
143+
"query_type": "relative",
120144
"utilization": {{ utilization }}
121145
},
122146
"schedule": "poisson"

eventdata/runners/kibana_runner.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def kibana(es, params):
3535
meta_data = params["meta_data"]
3636

3737
if meta_data["debug"]:
38-
logger.info("Received request:\n=====\n{}\n=====".format(json.dumps(request)))
38+
logger.info("Request:\n=====\n{}\n=====".format(json.dumps(request)))
3939

4040
visualisations = int(len(request) / 2)
4141

@@ -53,12 +53,24 @@ def kibana(es, params):
5353
else:
5454
result = es.msearch(body=request)
5555

56+
sum_hits = 0
57+
max_took = 0
58+
for r in result["responses"]:
59+
hits = r["hits"]["total"]
60+
if isinstance(hits, dict):
61+
sum_hits += hits["value"]
62+
else:
63+
sum_hits += hits
64+
max_took = max(max_took, r["took"])
65+
66+
response["took"] = max_took
67+
response["hits"] = sum_hits
68+
5669
if meta_data["debug"]:
5770
for r in result["responses"]:
5871
# clear hits otherwise we'll spam the log
5972
r["hits"]["hits"] = []
6073
r["aggregations"] = {}
61-
logger.info("Received response (excluding specific hits):\n=====\n{}\n=====".format(json.dumps(result)))
62-
74+
logger.info("Response (excluding specific hits):\n=====\n{}\n=====".format(json.dumps(result)))
6375

6476
return response

smoke-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ function run_test {
5959
for challenge in "${CHALLENGES[@]}"
6060
do
6161
info "Testing ${challenge}"
62-
esrally --race-id="${RACE_ID}" --test-mode --pipeline=benchmark-only --target-host=127.0.0.1:39200 --track-path="${PWD}/eventdata" --track-params="bulk_indexing_clients:1,number_of_replicas:0,daily_logging_volume:1MB,rate_limit_max:2,rate_limit_duration_secs:5,p1_bulk_indexing_clients:1,p2_bulk_indexing_clients:1,p1_duration_secs:5,p2_duration_secs:5,ops_per_25_gb:20" --challenge="${challenge}" --on-error=abort
62+
esrally --race-id="${RACE_ID}" --test-mode --pipeline=benchmark-only --target-host=127.0.0.1:39200 --track-path="${PWD}/eventdata" --track-params="bulk_indexing_clients:1,number_of_replicas:0,daily_logging_volume:1MB,rate_limit_max:2,rate_limit_duration_secs:5,p1_bulk_indexing_clients:1,p2_bulk_indexing_clients:1,p1_duration_secs:5,p2_duration_secs:5,ops_per_25_gb:20,verbose:true" --challenge="${challenge}" --on-error=abort
6363
done
6464
}
6565

0 commit comments

Comments
 (0)