{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "title": "Radial Duration Chart per Method",
  "data": {
    "url": {
      "%context%": true,
      "%timefield%": "@timestamp",
      "index": "logs-*",
      "body": {
        "size": 0,
        "aggs": {
          "methods": {
            "terms": {
              "field": "method",
              "size": 20
            },
            "aggs": {
              "avg_duration": { "avg": { "field": "duration_ms" } }
            }
          }
        }
      }
    },
    "format": { "property": "aggregations.methods.buckets" }
  },

  "transform": [
    { "calculate": "datum.key", "as": "method" },
    { "calculate": "datum.avg_duration.value", "as": "duration" },
    { "filter": "isValid(datum.duration)" }
  ],

  "mark": { "type": "arc", "innerRadius": 40, "stroke": "#fff" },

  "encoding": {
    "theta": {
      "field": "duration",
      "type": "quantitative",
      "stack": true,
      "title": "Avg duration"
    },
    "radius": {
      "field": "duration",
      "type": "quantitative",
      "scale": { "domainMin": 0 },
      "title": "Avg duration (ms)"
    },
    "color": {
      "field": "method",
      "type": "nominal",
      "scale": { "scheme": "tableau10" }
    },
    "tooltip": [
      { "field": "method", "title": "Method" },
      { "field": "duration", "title": "Avg duration (ms)", "format": ".2f" }
    ]
  }
}
