-
Notifications
You must be signed in to change notification settings - Fork 25.8k
Expand file tree
/
Copy pathbuildkite_pr_stats_esql.ndjson
More file actions
1 lines (1 loc) · 17 KB
/
buildkite_pr_stats_esql.ndjson
File metadata and controls
1 lines (1 loc) · 17 KB
1
{"type": "dashboard", "id": "buildkite-pr-stats", "attributes": {"title": "Buildkite PR Stats", "description": "Pull request build statistics from buildkite-builds.", "panelsJSON": "[{\"type\": \"lens\", \"embeddableConfig\": {\"title\": \"Avg build span (h)\", \"hidePanelTitles\": false, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS avg_duration_hours = AVG(duration_hours)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_duration_hours, label\\n\"}, \"attributes\": {\"title\": \"Avg build span (h)\", \"references\": [], \"state\": {\"datasourceStates\": {\"textBased\": {\"layers\": {\"a86de558-1c74-4238-ac4a-8da7422c292e\": {\"index\": \"1f6b23c0-2798-4f19-a7e7-023a3c508a57\", \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS avg_duration_hours = AVG(duration_hours)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_duration_hours, label\\n\"}, \"columns\": [{\"columnId\": \"avg_duration_hours\", \"fieldName\": \"avg_duration_hours\", \"label\": \"Avg build span (h)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"double\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"columnId\": \"label\", \"fieldName\": \"label\", \"meta\": {\"type\": \"string\", \"esType\": \"keyword\", \"params\": {\"id\": \"string\"}}, \"label\": \"label\", \"customLabel\": true}], \"timeField\": \"@timestamp\"}}, \"indexPatternRefs\": [{\"id\": \"1f6b23c0-2798-4f19-a7e7-023a3c508a57\", \"title\": \"buildkite-builds\", \"timeField\": \"@timestamp\"}]}}, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS avg_duration_hours = AVG(duration_hours)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_duration_hours, label\\n\"}, \"visualization\": {\"layerId\": \"a86de558-1c74-4238-ac4a-8da7422c292e\", \"layerType\": \"data\", \"metricAccessor\": \"avg_duration_hours\", \"secondaryMetricAccessor\": \"label\", \"secondaryLabel\": \"\", \"applyColorTo\": \"background\"}, \"adHocDataViews\": {\"1f6b23c0-2798-4f19-a7e7-023a3c508a57\": {\"id\": \"1f6b23c0-2798-4f19-a7e7-023a3c508a57\", \"title\": \"buildkite-builds\", \"timeFieldName\": \"@timestamp\", \"sourceFilters\": [], \"type\": \"esql\", \"fieldFormats\": {}, \"runtimeFieldMap\": {}, \"allowNoIndex\": false, \"name\": \"buildkite-builds\", \"allowHidden\": false, \"managed\": false}}, \"needsRefresh\": false}, \"visualizationType\": \"lnsMetric\", \"version\": 1}}, \"panelIndex\": \"cba2c532-194a-4668-9186-84faf64cbcd5\", \"gridData\": {\"x\": 0, \"y\": 0, \"w\": 16, \"h\": 8, \"i\": \"cba2c532-194a-4668-9186-84faf64cbcd5\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"title\": \"Median build span (h)\", \"hidePanelTitles\": false, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS median_duration_hours = MEDIAN(duration_hours)\\n| EVAL label = \\\"median\\\"\\n| KEEP median_duration_hours, label\\n\"}, \"attributes\": {\"title\": \"Median build span (h)\", \"references\": [], \"state\": {\"datasourceStates\": {\"textBased\": {\"layers\": {\"c01fe0d3-ebdd-4490-86d8-45552e207b01\": {\"index\": \"d340d017-3648-437e-bbb5-80130aabc8b7\", \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS median_duration_hours = MEDIAN(duration_hours)\\n| EVAL label = \\\"median\\\"\\n| KEEP median_duration_hours, label\\n\"}, \"columns\": [{\"columnId\": \"median_duration_hours\", \"fieldName\": \"median_duration_hours\", \"label\": \"Median build span (h)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"double\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"columnId\": \"label\", \"fieldName\": \"label\", \"meta\": {\"type\": \"string\", \"esType\": \"keyword\", \"params\": {\"id\": \"string\"}}, \"label\": \"label\", \"customLabel\": true}], \"timeField\": \"@timestamp\"}}, \"indexPatternRefs\": [{\"id\": \"d340d017-3648-437e-bbb5-80130aabc8b7\", \"title\": \"buildkite-builds\", \"timeField\": \"@timestamp\"}]}}, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS median_duration_hours = MEDIAN(duration_hours)\\n| EVAL label = \\\"median\\\"\\n| KEEP median_duration_hours, label\\n\"}, \"visualization\": {\"layerId\": \"c01fe0d3-ebdd-4490-86d8-45552e207b01\", \"layerType\": \"data\", \"metricAccessor\": \"median_duration_hours\", \"secondaryMetricAccessor\": \"label\", \"secondaryLabel\": \"\", \"applyColorTo\": \"background\"}, \"adHocDataViews\": {\"d340d017-3648-437e-bbb5-80130aabc8b7\": {\"id\": \"d340d017-3648-437e-bbb5-80130aabc8b7\", \"title\": \"buildkite-builds\", \"timeFieldName\": \"@timestamp\", \"sourceFilters\": [], \"type\": \"esql\", \"fieldFormats\": {}, \"runtimeFieldMap\": {}, \"allowNoIndex\": false, \"name\": \"buildkite-builds\", \"allowHidden\": false, \"managed\": false}}, \"needsRefresh\": false}, \"visualizationType\": \"lnsMetric\", \"version\": 1}}, \"panelIndex\": \"33955f1f-449a-45e9-bbe9-9f1892cde29d\", \"gridData\": {\"x\": 16, \"y\": 0, \"w\": 16, \"h\": 8, \"i\": \"33955f1f-449a-45e9-bbe9-9f1892cde29d\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"title\": \"P90 build span (h)\", \"hidePanelTitles\": false, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS p90_duration_hours = PERCENTILE(duration_hours, 90)\\n| EVAL label = \\\"p90\\\"\\n| KEEP p90_duration_hours, label\\n\"}, \"attributes\": {\"title\": \"P90 build span (h)\", \"references\": [], \"state\": {\"datasourceStates\": {\"textBased\": {\"layers\": {\"6f156ff2-3db1-4701-bae9-8b3e4c0b2567\": {\"index\": \"a93758ef-4209-45c1-94bd-420b8ece2ffa\", \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS p90_duration_hours = PERCENTILE(duration_hours, 90)\\n| EVAL label = \\\"p90\\\"\\n| KEEP p90_duration_hours, label\\n\"}, \"columns\": [{\"columnId\": \"p90_duration_hours\", \"fieldName\": \"p90_duration_hours\", \"label\": \"P90 build span (h)\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"double\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"columnId\": \"label\", \"fieldName\": \"label\", \"meta\": {\"type\": \"string\", \"esType\": \"keyword\", \"params\": {\"id\": \"string\"}}, \"label\": \"label\", \"customLabel\": true}], \"timeField\": \"@timestamp\"}}, \"indexPatternRefs\": [{\"id\": \"a93758ef-4209-45c1-94bd-420b8ece2ffa\", \"title\": \"buildkite-builds\", \"timeField\": \"@timestamp\"}]}}, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS first_build = MIN(created_at), last_build = MAX(finished_at) BY branch\\n| EVAL duration_hours = DATE_DIFF(\\\"hour\\\", first_build, last_build)\\n| STATS p90_duration_hours = PERCENTILE(duration_hours, 90)\\n| EVAL label = \\\"p90\\\"\\n| KEEP p90_duration_hours, label\\n\"}, \"visualization\": {\"layerId\": \"6f156ff2-3db1-4701-bae9-8b3e4c0b2567\", \"layerType\": \"data\", \"metricAccessor\": \"p90_duration_hours\", \"secondaryMetricAccessor\": \"label\", \"secondaryLabel\": \"\", \"applyColorTo\": \"background\"}, \"adHocDataViews\": {\"a93758ef-4209-45c1-94bd-420b8ece2ffa\": {\"id\": \"a93758ef-4209-45c1-94bd-420b8ece2ffa\", \"title\": \"buildkite-builds\", \"timeFieldName\": \"@timestamp\", \"sourceFilters\": [], \"type\": \"esql\", \"fieldFormats\": {}, \"runtimeFieldMap\": {}, \"allowNoIndex\": false, \"name\": \"buildkite-builds\", \"allowHidden\": false, \"managed\": false}}, \"needsRefresh\": false}, \"visualizationType\": \"lnsMetric\", \"version\": 1}}, \"panelIndex\": \"6738ecc2-e6ec-42f0-9f52-b1b2a694f3ae\", \"gridData\": {\"x\": 32, \"y\": 0, \"w\": 16, \"h\": 8, \"i\": \"6738ecc2-e6ec-42f0-9f52-b1b2a694f3ae\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"title\": \"Avg builds per PR\", \"hidePanelTitles\": false, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS total_builds = COUNT(*) BY branch\\n| STATS avg_builds_per_pr = AVG(total_builds)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_builds_per_pr, label\\n\"}, \"attributes\": {\"title\": \"Avg builds per PR\", \"references\": [], \"state\": {\"datasourceStates\": {\"textBased\": {\"layers\": {\"646ab040-f336-413e-9955-b9a088d83ffc\": {\"index\": \"e822706f-ff53-4356-8408-1276e7e31870\", \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS total_builds = COUNT(*) BY branch\\n| STATS avg_builds_per_pr = AVG(total_builds)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_builds_per_pr, label\\n\"}, \"columns\": [{\"columnId\": \"avg_builds_per_pr\", \"fieldName\": \"avg_builds_per_pr\", \"label\": \"Avg builds per PR\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"double\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"columnId\": \"label\", \"fieldName\": \"label\", \"meta\": {\"type\": \"string\", \"esType\": \"keyword\", \"params\": {\"id\": \"string\"}}, \"label\": \"label\", \"customLabel\": true}], \"timeField\": \"@timestamp\"}}, \"indexPatternRefs\": [{\"id\": \"e822706f-ff53-4356-8408-1276e7e31870\", \"title\": \"buildkite-builds\", \"timeField\": \"@timestamp\"}]}}, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS total_builds = COUNT(*) BY branch\\n| STATS avg_builds_per_pr = AVG(total_builds)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_builds_per_pr, label\\n\"}, \"visualization\": {\"layerId\": \"646ab040-f336-413e-9955-b9a088d83ffc\", \"layerType\": \"data\", \"metricAccessor\": \"avg_builds_per_pr\", \"secondaryMetricAccessor\": \"label\", \"secondaryLabel\": \"\", \"applyColorTo\": \"background\"}, \"adHocDataViews\": {\"e822706f-ff53-4356-8408-1276e7e31870\": {\"id\": \"e822706f-ff53-4356-8408-1276e7e31870\", \"title\": \"buildkite-builds\", \"timeFieldName\": \"@timestamp\", \"sourceFilters\": [], \"type\": \"esql\", \"fieldFormats\": {}, \"runtimeFieldMap\": {}, \"allowNoIndex\": false, \"name\": \"buildkite-builds\", \"allowHidden\": false, \"managed\": false}}, \"needsRefresh\": false}, \"visualizationType\": \"lnsMetric\", \"version\": 1}}, \"panelIndex\": \"bdd37607-d231-454a-aea9-9105427636f8\", \"gridData\": {\"x\": 0, \"y\": 8, \"w\": 24, \"h\": 8, \"i\": \"bdd37607-d231-454a-aea9-9105427636f8\"}}, {\"type\": \"lens\", \"embeddableConfig\": {\"title\": \"Avg failed builds per PR\", \"hidePanelTitles\": false, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS total_builds = COUNT(*), failed_builds = COUNT(*) WHERE state == \\\"failed\\\" BY branch\\n| STATS avg_failed_per_pr = AVG(failed_builds)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_failed_per_pr, label\\n\"}, \"attributes\": {\"title\": \"Avg failed builds per PR\", \"references\": [], \"state\": {\"datasourceStates\": {\"textBased\": {\"layers\": {\"f9c75c2e-4673-44ca-b7c8-65e0900f4190\": {\"index\": \"5f39e157-7405-42c9-96fc-2e427697c063\", \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS total_builds = COUNT(*), failed_builds = COUNT(*) WHERE state == \\\"failed\\\" BY branch\\n| STATS avg_failed_per_pr = AVG(failed_builds)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_failed_per_pr, label\\n\"}, \"columns\": [{\"columnId\": \"avg_failed_per_pr\", \"fieldName\": \"avg_failed_per_pr\", \"label\": \"Avg failed builds per PR\", \"customLabel\": true, \"meta\": {\"type\": \"number\", \"esType\": \"double\"}, \"inMetricDimension\": true, \"params\": {\"format\": {\"id\": \"number\", \"params\": {\"decimals\": 2}}}}, {\"columnId\": \"label\", \"fieldName\": \"label\", \"meta\": {\"type\": \"string\", \"esType\": \"keyword\", \"params\": {\"id\": \"string\"}}, \"label\": \"label\", \"customLabel\": true}], \"timeField\": \"@timestamp\"}}, \"indexPatternRefs\": [{\"id\": \"5f39e157-7405-42c9-96fc-2e427697c063\", \"title\": \"buildkite-builds\", \"timeField\": \"@timestamp\"}]}}, \"filters\": [], \"query\": {\"esql\": \"FROM buildkite-builds\\n| WHERE @timestamp >= NOW() - 4 weeks\\n AND pipeline.slug == \\\"elasticsearch-pull-request\\\"\\n AND pull_request.base == \\\"main\\\"\\n| STATS total_builds = COUNT(*), failed_builds = COUNT(*) WHERE state == \\\"failed\\\" BY branch\\n| STATS avg_failed_per_pr = AVG(failed_builds)\\n| EVAL label = \\\"avg\\\"\\n| KEEP avg_failed_per_pr, label\\n\"}, \"visualization\": {\"layerId\": \"f9c75c2e-4673-44ca-b7c8-65e0900f4190\", \"layerType\": \"data\", \"metricAccessor\": \"avg_failed_per_pr\", \"secondaryMetricAccessor\": \"label\", \"secondaryLabel\": \"\", \"applyColorTo\": \"background\"}, \"adHocDataViews\": {\"5f39e157-7405-42c9-96fc-2e427697c063\": {\"id\": \"5f39e157-7405-42c9-96fc-2e427697c063\", \"title\": \"buildkite-builds\", \"timeFieldName\": \"@timestamp\", \"sourceFilters\": [], \"type\": \"esql\", \"fieldFormats\": {}, \"runtimeFieldMap\": {}, \"allowNoIndex\": false, \"name\": \"buildkite-builds\", \"allowHidden\": false, \"managed\": false}}, \"needsRefresh\": false}, \"visualizationType\": \"lnsMetric\", \"version\": 1}}, \"panelIndex\": \"e9a2195e-9119-49f0-87d0-afce395e64a2\", \"gridData\": {\"x\": 24, \"y\": 8, \"w\": 24, \"h\": 8, \"i\": \"e9a2195e-9119-49f0-87d0-afce395e64a2\"}}, {\"type\": \"markdown\", \"panelIndex\": \"cb9a99a3-e973-4790-8f99-9d086dcf90e9\", \"gridData\": {\"x\": 0, \"y\": 16, \"w\": 48, \"h\": 8, \"i\": \"cb9a99a3-e973-4790-8f99-9d086dcf90e9\"}, \"embeddableConfig\": {\"content\": \"Add TSVB: PR builds per day (pipeline.slug=elasticsearch-pull-request)\", \"openLinksInNewTab\": false}}]", "optionsJSON": "{\"useMargins\": true, \"syncColors\": false, \"syncCursor\": true, \"syncTooltips\": false, \"hidePanelTitles\": false}", "kibanaSavedObjectMeta": {"searchSourceJSON": "{\"query\": {\"query\": \"\", \"language\": \"kuery\"}, \"filter\": []}"}, "timeRestore": true, "timeFrom": "now-4w", "timeTo": "now"}, "references": []}