def index()

in osbenchmark/chart_generator.py [0:0]


    def index(environment, test_execution_configs, title):
        filters = []
        # any test_execution_config will do - they all belong to the same workload
        t = test_execution_configs[0].workload
        for idx, test_execution_config in enumerate(test_execution_configs):
            label = index_label(test_execution_config)
            for bulk_task in test_execution_config.bulk_tasks:
                filters.append(
                    {
                        "filter": "task:\"%s\" AND %s" % (bulk_task, TimeSeriesCharts.filter_string(environment, test_execution_config)),
                        "label": label,
                        "color": color_scheme_rgba[idx % len(color_scheme_rgba)],
                        "id": str(uuid.uuid4())
                    }
                )

        vis_state = {
            "title": title,
            "type": "metrics",
            "params": {
                "axis_formatter": "number",
                "axis_position": "left",
                "id": str(uuid.uuid4()),
                "index_pattern": "benchmark-results-*",
                "interval": "1d",
                "series": [
                    {
                        "axis_position": "left",
                        "chart_type": "line",
                        "color": "#68BC00",
                        "fill": "0",
                        "formatter": "number",
                        "id": str(uuid.uuid4()),
                        "line_width": "1",
                        "metrics": [
                            {
                                "id": str(uuid.uuid4()),
                                "type": "avg",
                                "field": "value.median"
                            }
                        ],
                        "point_size": "3",
                        "seperate_axis": 1,
                        "split_mode": "filters",
                        "stacked": "none",
                        "filter": "environment:\"%s\" AND workload:\"%s\"" % (environment, t),
                        "split_filters": filters,
                        "label": "Indexing Throughput",
                        "value_template": "{{value}} docs/s",
                        "steps": 0
                    }
                ],
                "show_legend": 1,
                "show_grid": 1,
                "drop_last_bucket": 0,
                "time_field": "test-execution-timestamp",
                "type": "timeseries",
                "filter": "environment:\"%s\" AND workload:\"%s\" AND name:\"throughput\" AND active:true" % (environment, t),
                "annotations": [
                    {
                        "fields": "message",
                        "template": "{{message}}",
                        "index_pattern": "benchmark-annotations",
                        "query_string": f"((NOT _exists_:workload) OR workload:\"{t}\") "
                                        f"AND ((NOT _exists_:chart) OR chart:indexing) "
                                        f"AND ((NOT _exists_:chart-name) OR chart-name:\"{title}\") AND environment:\"{environment}\"",
                        "id": str(uuid.uuid4()),
                        "color": "rgba(102,102,102,1)",
                        "time_field": "test-execution-timestamp",
                        "icon": "fa-tag",
                        "ignore_panel_filters": 1
                    }
                ],
                "axis_min": "0"
            },
            "aggs": [],
            "listeners": {}
        }
        return {
            "id": str(uuid.uuid4()),
            "type": "visualization",
            "attributes": {
                "title": title,
                "visState": json.dumps(vis_state),
                "uiStateJSON": "{}",
                "description": "index",
                "version": 1,
                "kibanaSavedObjectMeta": {
                    "searchSourceJSON": "{\"query\":\"*\",\"filter\":[]}"
                }
            }
        }