Matrix core: service calls inside error budgets and latency

Which service relationships coincide with high latency and a depleted error budget?

Control rooms

Chart type
Radial Column radialColumn
Tier
Premium
Collection
Radial Column · Control rooms
Render
Live, site theme
How to read this example
Matrix
The row service calls the column service, in requests per second.
Inner rings
The remaining 30-day error budget for each service.
Outer bars
p95 latency in milliseconds, per service and four-hour window.

Try thisHover Matching → Geo index to compare the call and its reverse, and follow both services into the surrounding rings. Arrow keys move through the matrix.

View .md Agent setup
LIVE/radial-column/matrix-mesh20 of 32 in Radial Column

Configuration

Shortened here · 25 kB in full Raw Standalone
const options = {
  "chart": {
    "type": "radialColumn",
    "height": 640,
    "toolbar": {
      "show": false
    }
  },
  "series": [
    {
      "name": "p95 latency (ms)",
      "data": [
        {
          "x": "Edge · 00h",
          "y": 24,
          "fillColor": "#38bdf8"
        },
        {
          "x": "Edge · 04h",
          "y": 22,
          "fillColor": "#38bdf8"
        },
        {
          "x": "Edge · 08h",
          "y": 47,
          "fillColor": "#38bdf8"
        },
        {
          "x": "Edge · 12h",
          "y": 37,
          "fillColor": "#38bdf8"
        },
        {
          "x": "Edge · 16h",
          "y": 51,
          "fillColor": "#38bdf8"
        },
        {
          "x": "Edge · 20h",
          "y": 46,
          "fillColor": "#38bdf8"
        },
        {
          "x": "Rider API · 00h",
          "y": 82,
          "fillColor": "#818cf8"
        },
        {
          "x": "Rider API · 04h",
          "y": 68,
          "fillColor": "#818cf8"
        },
        {
          "x": "Rider API · 08h",
          "y": 142,
          "fillColor": "#818cf8"
        },
        {
          "x": "Rider API · 12h",
          "y": 112,
          "fillColor": "#818cf8"
        },
        {
          "x": "Rider API · 16h",
          "y": 152,
          "fillColor": "#818cf8"
        },
        {
          "x": "Rider API · 20h",
          "y": 140,
          "fillColor": "#818cf8"
        },
        {
          "x": "Driver API · 00h",
          "y": 88,
          "fillColor": "#a78bfa"
        },
        {
          "x": "Driver API · 04h",
          "y": 68,
          "fillColor": "#a78bfa"
        },
        {
          "x": "Driver API · 08h",
          "y": 157,
          "fillColor": "#a78bfa"
        },
        {
          "x": "Driver API · 12h",
          "y": 132,
          "fillColor": "#a78bfa"
        },
        {
          "x": "Driver API · 16h",
          "y": 181,
          "fillColor": "#a78bfa"
        },
        {
          "x": "Driver API · 20h",
          "y": 161,
          "fillColor": "#a78bfa"
        },
        {
          "x": "Matching · 00h",
          "y": 204,
          "fillColor": "#f472b6"
        },
        {
          "x": "Matching · 04h",
          "y": 182,
          "fillColor": "#f472b6"
        },
        {
          "x": "Matching · 08h",
          "y": 334,
          "fillColor": "#f472b6"
        },
        {
          "x": "Matching · 12h",
          "y": 331,
          "fillColor": "#f472b6"
        },
        {
          "x": "Matching · 16h",
          "y": 605,
          "fillColor": "#f472b6"
        },
        {
          "x": "Matching · 20h",
          "y": 647,
          "fillColor": "#f472b6"
        },
        {
          "x": "Pricing · 00h",
          "y": 127,
          "fillColor": "#fbbf24"
        },
        {
          "x": "Pricing · 04h",
          "y": 96,
          "fillColor": "#fbbf24"
        },
        {
          "x": "Pricing · 08h",
          "y": 213,
          "fillColor": "#fbbf24"
        },
        {
          "x": "Pricing · 12h",
          "y": 193,
          "fillColor": "#fbbf24"
        },
        {
          "x": "Pricing · 16h",
          "y": 226,
          "fillColor": "#fbbf24"
        },
        {
          "x": "Pricing · 20h",
          "y": 219,
          "fillColor": "#fbbf24"
        },
        {
          "x": "Geo index · 00h",
          "y": 32,
          "fillColor": "#2dd4bf"
        },
        {
          "x": "Geo index · 04h",
          "y": 24,
          "fillColor": "#2dd4bf"
        },
        {
          "x": "Geo index · 08h",
          "y": 54,
          "fillColor": "#2dd4bf"
        },
        {
          "x": "Geo index · 12h",
          "y": 45,
          "fillColor": "#2dd4bf"
        },
        {
          "x": "Geo index · 16h",
          "y": 61,
          "fillColor": "#2dd4bf"
        },
        {
          "x": "Geo index · 20h",
          "y": 58,
          "fillColor": "#2dd4bf"
        },
        {
          "x": "Payments · 00h",
          "y": 164,
          "fillColor": "#4ade80"
        },
        {
          "x": "Payments · 04h",
          "y": 141,
          "fillColor": "#4ade80"
        },
        {
          "x": "Payments · 08h",
          "y": 287,
          "fillColor": "#4ade80"
        },
        {
          "x": "Payments · 12h",
          "y": 244,
          "fillColor": "#4ade80"
        },
        {
          "x": "Payments · 16h",
          "y": 307,
          "fillColor": "#4ade80"
        },
        {
          "x": "Payments · 20h",
          "y": 300,
          "fillColor": "#4ade80"
        },
        {
          "x": "Notify · 00h",
          "y": 54,
          "fillColor": "#fb923c"
        },
        {
          "x": "Notify · 04h",
          "y": 42,
          "fillColor": "#fb923c"
        },
        {
          "x": "Notify · 08h",
          "y": 88,
          "fillColor": "#fb923c"
        },
        {
          "x": "Notify · 12h",
          "y": 67,
          "fillColor": "#fb923c"
        },
        {
          "x": "Notify · 16h",
          "y": 94,
          "fillColor": "#fb923c"
        },
        {
          "x": "Notify · 20h",
          "y": 92,
          "fillColor": "#fb923c"
        }
      ]
    }
  ],
  "xaxis": {
    "categories": [
      "Edge · 00h",
      "Edge · 04h",
      "Edge · 08h",
      "Edge · 12h",
      "Edge · 16h",
      "Edge · 20h",
      "Rider API · 00h",
      "Rider API · 04h",
      "Rider API · 08h",
      "Rider API · 12h",
      "Rider API · 16h",
      "Rider API · 20h",
      "Driver API · 00h",
      "Driver API · 04h",
      "Driver API · 08h",
      "Driver API · 12h",
      "Driver API · 16h",
      "Driver API · 20h",
      "Matching · 00h",
      "Matching · 04h",
      "Matching · 08h",
      "Matching · 12h",
      "Matching · 16h",
      "Matching · 20h",
      "Pricing · 00h",
      "Pricing · 04h",
      "Pricing · 08h",
      "Pricing · 12h",
      "Pricing · 16h",
      "Pricing · 20h",
      "Geo index · 00h",
      "Geo index · 04h",
      "Geo index · 08h",
      "Geo index · 12h",
      "Geo index · 16h",
      "Geo index · 20h",
      "Payments · 00h",
      "Payments · 04h",
      "Payments · 08h",
      "Payments · 12h",
      "Payments · 16h",
      "Payments · 20h",
      "Notify · 00h",
      "Notify · 04h",
      "Notify · 08h",
      "Notify · 12h",
      "Notify · 16h",
      "Notify · 20h"
    ]
  },
  "plotOptions": {
    "radialColumn": {
      "innerRadius": 0.7,
      "hole": "40%",
      "legend": {
        "show": false
      },
      "categoryLabels": {
        "step": 1,
        "orientation": "horizontal",
        "formatter": function (c, o) { return o.index % 6 === 2 ? c.split(' · ')[0] : '' }
      },
      "aggregate": "max",
      "link": {
        "mode": "map",
        "unit": "service-windows",
        "basis": "8 services × 6 windows of 4 h"
      },
      "layers": [
        {
          "type": "matrix",
          "name": "Calls",
          "unit": "req/s",
          "rows": [
            {
              "id": "edge",
              "name": "Edge",
              "short": "EDG",
              "keys": [
                "edge"
              ],
              "link": [
                0,
                1,
                2,
                3,
                4,
                5
              ]
            },
            {
              "id": "rider",
              "name": "Rider API",
              "short": "RID",
              "keys": [
                "rider"
              ],
              "link": [
                6,
                7,
                8,
                9,
                10,
                11
              ]
            },
            {
              "id": "driver",
              "name": "Driver API",
              "short": "DRV",
              "keys": [
                "driver"
              ],
              "link": [
                12,
                13,
                14,
                15,
                16,
                17
              ]
            },
            {
              "id": "match",
              "name": "Matching",
              "short": "MAT",
              "keys": [
                "match"
              ],
              "link": [
                18,
                19,
                20,
                21,
                22,
                23
              ]
            },
            {
              "id": "price",
              "name": "Pricing",
              "short": "PRC",
              "keys": [
                "price"
              ],
              "link": [
                24,
                25,
                26,
                27,
                28,
                29
              ]
            },
            {
              "id": "geo",
              "name": "Geo index",
              "short": "GEO",
              "keys": [
                "geo"
              ],
              "link": [
                30,
                31,
                32,
                33,
                34,
                35
              ]
            },
            {
              "id": "pay",
              "name": "Payments",
              "short": "PAY",
              "keys": [
                "pay"
              ],
              "link": [
                36,
                37,
                38,
                39,
                40,
                41
              ]
            },
            {
              "id": "notify",
              "name": "Notify",
              "short": "NTF",
              "keys": [
                "notify"
              ],
              "link": [
                42,
                43,
                44,
                45,
                46,
                47
              ]
            }
          ],
          "data": [
            [
              "edge",
              "rider",
              1840
            ],
            [
              "edge",
              "driver",
              1210
            ],
            [
              "rider",
              "match",
              620
            ],
            [
              "driver",
              "match",
              540
            ],
            [
              "match",
              "geo",
              1480
            ],
            [
              "match",
              "price",
              610
            ],
            [
              "rider",
              "price",
              390
            ],
            [
              "price",
              "geo",
              280
            ],
            [
              "rider",
              "pay",
              210
            ],
            [
              "driver",
              "pay",
              95
            ],
            [
              "match",
              "notify",
              430
            ],
            [
              "pay",
              "notify",
              160
            ],
            [
              "driver",
              "geo",
              960
            ],
            [
              "rider",
              "geo",
              330
            ],
            [
              "notify",
              "edge",
              120
            ],
            [
              "pay",
              "price",
              40
            ],
            [
              "geo",
              "match",
              75
            ]
          ],
          "color": "#818cf8"
        },
        {
          "type": "goals",
          "name": "Error budget left (30 d)",
          "data": [
            {
              "x": "Edge",
              "y": 91,
              "target": 100,
              "color": "#38bdf8",
              "keys": [
                "edge"
              ],
              "link": [
                0,
                1,
                2,
                3,
                4,
                5
              ]
            },
            {
              "x": "Rider API",
              "y": 74,
              "target": 100,
              "color": "#818cf8",
              "keys": [
                "rider"
              ],
              "link": [
                6,
                7,
                8,
                9,
                10,
                11
              ]
            },
            {
              "x": "Driver API",
              "y": 68,
              "target": 100,
              "color": "#a78bfa",
              "keys": [
                "driver"
              ],
              "link": [
                12,
                13,
                14,
                15,
                16,
                17
              ]
            },
            {
              "x": "Matching",
              "y": 23,
              "target": 100,
              "color": "#f472b6",
              "keys": [
                "match"
              ],
              "link": [
                18,
                19,
                20,
                21,
                22,
                23
              ]
            },
            {
              "x": "Pricing",
              "y": 57,
              "target": 100,
              "color": "#fbbf24",
              "keys": [
                "price"
              ],
              "link": [
                24,
                25,
                26,
                27,
                28,
                29
              ]
            },
            {
              "x": "Geo index",
              "y": 82,
              "target": 100,
              "color": "#2dd4bf",
              "keys": [
                "geo"
              ],
              "link": [
                30,
                31,
                32,
                33,
                34,
                35
              ]
            },
            {
              "x": "Payments",
              "y": 64,
              "target": 100,
              "color": "#4ade80",
              "keys": [
                "pay"
              ],
  // Full configuration available through Raw or Copy.

const chart = new WestCoastCharts(document.querySelector('#chart'), options)
chart.render()

This example uses Premium modules. Compare licences · Embedding in a distributed product?