forked from elastic/elasticsearch
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add challange for long-running benchmarks
Add a new challenge `elasticlogs-continuous-index-and-query` suitable for long-running benchmarks. This commit also includes: * an updated version of the `deleteindex_runner.py` to help keep rolled-over indices to a defined size by deleting older ones. * updates to `README.md`. * a test/helper script tests/validate_challanges.py to assist with the JSON validation of challenges that contain embedded j2 DSL. Relates elastic#18
- Loading branch information
Showing
8 changed files
with
410 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
143 changes: 143 additions & 0 deletions
143
eventdata/challenges/elasticlogs-continuous-index-and-query.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,143 @@ | ||
{% set p1_bulk_indexing_clients = (p1_bulk_indexing_clients | default(40)) %} | ||
{% set p2_bulk_indexing_clients = (p2_bulk_indexing_clients | default(16)) %} | ||
{# Phase 1 is indexing only at max speed for 2 hours #} | ||
{% set p1_duration = (p1_duration_secs | default(7200)) %} | ||
{# Phase 2 is indexing and querying for 29 days #} | ||
{% set p2_duration = (p2_duration_secs | default(2505600)) %} | ||
{% set p2_ops = (p2_ops | default(10)) %} | ||
{% set p2_rate = (p2_ops * (p2_bulk_size | default(1000))) %} | ||
{ | ||
"name": "elasticlogs-continuous-index-and-query", | ||
"description": "Indexes 1bn (default) documents into elasticlogs_q-* indices. IDs are autogenerated by Elasticsearch, meaning there are no conflicts.", | ||
"meta": { | ||
"benchmark_type": "indexing" | ||
}, | ||
"schedule": [ | ||
{ | ||
"operation": "deleteindex_elasticlogs_q-*", | ||
"clients": 1, | ||
"warmup-iterations": 0, | ||
"iterations": 1 | ||
}, | ||
{ | ||
"operation": "create_elasticlogs_q_write", | ||
"clients": 1, | ||
"warmup-iterations": 0, | ||
"iterations": 1 | ||
}, | ||
{ | ||
"parallel": { | ||
"time-period": {{ p1_duration }}, | ||
"warmup-time-period": 0, | ||
"tasks": [ | ||
{ | ||
"name": "index-append-elasticlogs_q_write-phase1", | ||
"operation": { | ||
"operation-type": "bulk", | ||
"index": "elasticlogs_q_write", | ||
"param-source": "elasticlogs_bulk", | ||
"bulk-size": {{ p1_bulk_size | default(1000) | int }} | ||
}, | ||
"clients": {{ p1_bulk_indexing_clients }}, | ||
"meta": { | ||
"querying": "no" | ||
} | ||
}, | ||
{ | ||
"#COMMENT": "Check if index alias needs to be rolled over every 30seconds.", | ||
"name": "rollover-indices-phase1", | ||
"operation": "rollover_custom_alias", | ||
"clients": 1, | ||
"target-interval": 30 | ||
}, | ||
{ | ||
"#COMMENT": "Delete indices that have been rolled over more than (by default) 20 times", | ||
"name": "delete-rolledover-indices-phase1", | ||
"operation": "delete_rolledover_index_pattern", | ||
"clients": 1, | ||
"target-interval": 30 | ||
} | ||
] | ||
} | ||
}, | ||
{ | ||
"parallel": { | ||
"time-period": {{ p2_duration }}, | ||
"warmup-time-period": 0, | ||
"tasks": [ | ||
{ | ||
"name": "index-append-elasticlogs_q_write-phase2", | ||
"operation": { | ||
"operation-type": "bulk", | ||
"index": "elasticlogs_q_write", | ||
"param-source": "elasticlogs_bulk", | ||
"bulk-size": {{ p2_bulk_size | default(1000) | int }} | ||
}, | ||
"target-throughput": {{ p2_ops }}, | ||
"clients": {{ p2_bulk_indexing_clients }}, | ||
"meta": { | ||
"target_indexing_rate": {{ p2_rate }} | ||
} | ||
}, | ||
{ | ||
"name": "rollover-indices-phase2", | ||
"operation": "rollover_custom_alias", | ||
"clients": 1, | ||
"target-interval": 30 | ||
}, | ||
{ | ||
"name": "delete_rolled_over_indices-phase2", | ||
"operation": "delete_rolledover_index_pattern", | ||
"clients": 1, | ||
"target-interval": 30 | ||
}, | ||
{ | ||
"name": "current-kibana-traffic-country-dashboard_60m-querying", | ||
"operation": "current-kibana-traffic-country-dashboard_60m", | ||
"clients": 1, | ||
"target-interval": {{ p2_query1_target_interval | default(30) | int }}, | ||
"meta": { | ||
"querying": "yes", | ||
"query_type": "current" | ||
}, | ||
"schedule": "poisson" | ||
}, | ||
{ | ||
"name": "current-kibana-discover_30m-querying", | ||
"operation": "current-kibana-discover_30m", | ||
"clients": 1, | ||
"target-interval": {{ p2_query2_target_interval | default(30) | int }}, | ||
"meta": { | ||
"querying": "yes", | ||
"query_type": "current" | ||
}, | ||
"schedule": "poisson" | ||
}, | ||
{ | ||
"name": "current-kibana-traffic-dashboard_30m-querying", | ||
"operation": "current-kibana-traffic-dashboard_30m", | ||
"clients": 1, | ||
"target-interval": {{ p2_query3_target_interval | default(30) | int }}, | ||
"meta": { | ||
"querying": "yes", | ||
"query_type": "current" | ||
}, | ||
"schedule": "poisson" | ||
}, | ||
{ | ||
"name": "current-kibana-content_issues-dashboard_30m-querying", | ||
"#COMMENT": "Looks only for 404s about 1-1.5% of data", | ||
"operation": "current-kibana-content_issues-dashboard_30m", | ||
"clients": 1, | ||
"target-interval": {{ p2_query4_target_interval | default(30) | int }}, | ||
"meta": { | ||
"querying": "yes", | ||
"query_type": "current" | ||
}, | ||
"schedule": "poisson" | ||
} | ||
] | ||
} | ||
} | ||
] | ||
} |
Oops, something went wrong.