{
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "editable": true,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 0,
  "id": null,
  "links": [],
  "panels": [
    {
      "title": "Smart City Data Ingeston",
      "type": "row",
      "gridPos": {"h": 1, "w": 24, "x": 0, "y": 0}
    },
    {
      "title": "Messages/sec by Type",
      "type": "timeseries",
      "datasource": {"type": "influxdb", "uid": "InfluxDB-Simulator"},
      "targets": [
        {
          "query": "from(bucket: \"iot_data\") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\") |> group(columns: [\"type\"]) |> count()",
          "refId": "A"
        }
      ],
      "gridPos": {"h": 8, "w": 12, "x": 0, "y": 1}
    },
    {
      "title": "Temperature (Weather)",
      "type": "timeseries",
      "datasource": {"type": "influxdb", "uid": "InfluxDB-Simulator"},
      "targets": [
        {
          "query": "from(bucket: \"iot_data\") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\" and r[\"type\"] == \"weather\") |> filter(fn: (r) => r[\"_field\"] == \"temperature_celsius\") |> mean()",
          "refId": "B"
        }
      ],
      "gridPos": {"h": 8, "w": 12, "x": 12, "y": 1}
    },
    {
      "title": "Air Quality (PM2.5)",
      "type": "timeseries",
      "datasource": {"type": "influxdb", "uid": "InfluxDB-Simulator"},
      "targets": [
        {
          "query": "from(bucket: \"iot_data\") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\" and r[\"type\"] == \"airquality\") |> filter(fn: (r) => r[\"_field\"] == \"pm25_ugm3\") |> mean()",
          "refId": "C"
        }
      ],
      "gridPos": {"h": 8, "w": 12, "x": 0, "y": 9}
    },
    {
      "title": "Traffic Count",
      "type": "timeseries",
      "datasource": {"type": "influxdb", "uid": "InfluxDB-Simulator"},
      "targets": [
        {
          "query": "from(bucket: \"iot_data\") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r[\"_measurement\"] == \"sensor_data\" and r[\"type\"] == \"traffic\") |> filter(fn: (r) => r[\"_field\"] == \"vehicle_count\") |> mean()",
          "refId": "D"
        }
      ],
      "gridPos": {"h": 8, "w": 12, "x": 12, "y": 9}
    },
    {
      "title": "Pulsar Message Rates",
      "type": "row",
      "gridPos": {"h": 1, "w": 24, "x": 0, "y": 17}
    },
    {
      "title": "Pulsar In/Out Bytes/sec",
      "type": "timeseries",
      "datasource": {"type": "prometheus", "uid": "prometheus"},
      "targets": [
        {
          "expr": "rate(pulsar_in_bytes_total[1m])",
          "legendFormat": "In Bytes/sec"
        },
        {
          "expr": "rate(pulsar_out_bytes_total[1m])",
          "legendFormat": "Out Bytes/sec"
        }
      ],
      "gridPos": {"h": 8, "w": 24, "x": 0, "y": 18}
    }
  ],
  "schemaVersion": 38,
  "style": "dark",
  "tags": ["smart-city", "influxdb", "pulsar"],
  "templating": {"list": []},
  "time": {"from": "now-1h", "to": "now"},
  "title": "Smart City - Data Ingeston",
  "uid": "smart-city-ingeston",
  "version": 1
}
