{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"title": "Pareto: status_code",
"data": {
"url": {
"%context%": true,
"%timefield%": "@timestamp",
"index": "logs-*",
"body": {
"size": 0,
"aggs": {
"codes": {
"terms": {
"field": "status_code",
"size": 50,
"order": { "_count": "desc" }
}
}
}
}
},
"format": { "property": "aggregations.codes.buckets" }
},
"transform": [
{ "calculate": "datum.doc_count", "as": "count" },
{
"window": [
{ "op": "sum", "field": "count", "as": "cumulative" }
],
"sort": [{ "field": "count", "order": "descending" }]
},
{
"joinaggregate": [
{ "op": "sum", "field": "count", "as": "total" }
]
},
{
"calculate": "datum.cumulative / datum.total * 100",
"as": "cum_percent"
}
],
"encoding": {
"x": {
"field": "key",
"type": "nominal",
"title": "Status code",
"sort": null
}
},
"layer": [
{
"mark": "bar",
"encoding": {
"y": {
"field": "count",
"type": "quantitative",
"title": "Count"
}
}
},
{
"mark": { "type": "line", "color": "red", "point": true },
"encoding": {
"y": {
"field": "cum_percent",
"type": "quantitative",
"title": "Cumulative %",
"axis": { "grid": false }
}
}
}
],
"resolve": { "scale": { "y": "independent" } }
}