{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",

  "title": "StreamGraph: Traffic Flow by Method",

  "view": {
    "continuousWidth": 1000,
    "continuousHeight": 450
  },

  "data": {
    "url": {
      "%context%": true,
      "%timefield%": "@timestamp",
      "index": "logs-*",
      "body": {
        "size": 0,
        "aggs": {
          "time": {
            "date_histogram": {
              "field": "@timestamp",
              "fixed_interval": "1m",
              "min_doc_count": 0
            },
            "aggs": {
              "methods": {
                "terms": {
                  "field": "method",
                  "size": 20
                }
              }
            }
          }
        }
      }
    },
    "format": { "property": "aggregations.time.buckets" }
  },

  "transform": [
    { "flatten": ["methods.buckets"] },
    { "calculate": "datum['methods.buckets'].key", "as": "method" },
    { "calculate": "datum['methods.buckets'].doc_count", "as": "count" },
    { "calculate": "toDate(datum.key_as_string)", "as": "timestamp" },
    { "filter": "isValid(datum.method) && isValid(datum.count)" }
  ],

  "mark": {
    "type": "area",
    "interpolate": "monotone"
  },

  "encoding": {
    "x": {
      "field": "timestamp",
      "type": "temporal",
      "title": "Time"
    },
    "y": {
      "field": "count",
      "type": "quantitative",
      "stack": "center",
      "title": "Traffic volume"
    },
    "color": {
      "field": "method",
      "type": "nominal",
      "title": "Method",
      "scale": { "scheme": "category20" }
    },
    "tooltip": [
      { "field": "timestamp", "title": "Time" },
      { "field": "method", "title": "Method" },
      { "field": "count", "title": "Count" }
    ]
  }
}
