Service mesh: calls, ownership and cost in one ring

Three stacked layers, all aligned to the same twelve services. Innermost: a chord of service-to-service calls (k req/min). Middle: Team › Service sunburst. Outer: monthly cost per service, coloured by error rate. Hover anything: a call lights both services through every layer. Compact layout retains all twelve services, every call and both ownership depths; the chord arc has a deliberate 10 px width.

Chord inside

Chart type
Radial Column radialColumn
Tier
Premium
Collection
Radial Column · Chord inside
Render
Live, site theme
View .md Agent setup
LIVE/radial-column/chord-mesh24 of 32 in Radial Column

Configuration

Raw Standalone
const options = {
  "chart": {
    "type": "radialColumn",
    "height": 620,
    "toolbar": {
      "show": false
    }
  },
  "series": [
    {
      "name": "Cost ($/mo)",
      "data": [
        {
          "x": "auth",
          "y": 402,
          "meta": {
            "err": 1
          }
        },
        {
          "x": "users",
          "y": 381,
          "meta": {
            "err": 0.6
          }
        },
        {
          "x": "sessions",
          "y": 455,
          "meta": {
            "err": 0.6
          }
        },
        {
          "x": "cart",
          "y": 262,
          "meta": {
            "err": 1.6
          }
        },
        {
          "x": "checkout",
          "y": 305,
          "meta": {
            "err": 1
          }
        },
        {
          "x": "pricing",
          "y": 121,
          "meta": {
            "err": 4.1
          }
        },
        {
          "x": "orders",
          "y": 362,
          "meta": {
            "err": 1.7
          }
        },
        {
          "x": "search",
          "y": 388,
          "meta": {
            "err": 1.6
          }
        },
        {
          "x": "catalog",
          "y": 191,
          "meta": {
            "err": 1.7
          }
        },
        {
          "x": "media",
          "y": 335,
          "meta": {
            "err": 1.3
          }
        },
        {
          "x": "notify",
          "y": 221,
          "meta": {
            "err": 0.6
          }
        },
        {
          "x": "billing-sync",
          "y": 199,
          "meta": {
            "err": 1.1
          }
        }
      ]
    }
  ],
  "plotOptions": {
    "radialColumn": {
      "innerRadius": 0.66,
      "legend": {
        "show": false
      },
      "center": {
        "label": "Monthly cost"
      },
      "encode": {
        "angle": "Service",
        "color": {
          "field": "err",
          "name": "Error rate",
          "unit": "%"
        }
      },
      "link": {
        "mode": "category",
        "align": true,
        "unit": "services"
      },
      "layers": [
        {
          "type": "chord",
          "name": "Calls",
          "data": [
            [
              "checkout",
              "cart",
              38
            ],
            [
              "checkout",
              "pricing",
              31
            ],
            [
              "checkout",
              "orders",
              27
            ],
            [
              "checkout",
              "auth",
              22
            ],
            [
              "cart",
              "pricing",
              19
            ],
            [
              "cart",
              "catalog",
              24
            ],
            [
              "orders",
              "notify",
              16
            ],
            [
              "orders",
              "billing-sync",
              12
            ],
            [
              "search",
              "catalog",
              41
            ],
            [
              "catalog",
              "media",
              18
            ],
            [
              "users",
              "sessions",
              14
            ],
            [
              "auth",
              "sessions",
              26
            ],
            [
              "auth",
              "users",
              20
            ],
            [
              "pricing",
              "catalog",
              15
            ],
            [
              "notify",
              "users",
              9
            ],
            [
              "search",
              "auth",
              7
            ],
            [
              "media",
              "auth",
              5
            ],
            [
              "billing-sync",
              "users",
              6
            ]
          ],
          "directed": true,
          "groups": [
            {
              "id": "auth",
              "color": "#818cf8"
            },
            {
              "id": "users",
              "color": "#818cf8"
            },
            {
              "id": "sessions",
              "color": "#818cf8"
            },
            {
              "id": "cart",
              "color": "#2dd4bf"
            },
            {
              "id": "checkout",
              "color": "#2dd4bf"
            },
            {
              "id": "pricing",
              "color": "#2dd4bf"
            },
            {
              "id": "orders",
              "color": "#2dd4bf"
            },
            {
              "id": "search",
              "color": "#f59e0b"
            },
            {
              "id": "catalog",
              "color": "#f59e0b"
            },
            {
              "id": "media",
              "color": "#f59e0b"
            },
            {
              "id": "notify",
              "color": "#f472b6"
            },
            {
              "id": "billing-sync",
              "color": "#f472b6"
            }
          ],
          "ringWidth": 12,
          "padding": 2,
          "gap": 6
        },
        {
          "type": "sunburst",
          "name": "Team › Service",
          "data": [
            {
              "x": "Identity",
              "color": "#818cf8",
              "children": [
                {
                  "x": "auth",
                  "y": 402
                },
                {
                  "x": "users",
                  "y": 381
                },
                {
                  "x": "sessions",
                  "y": 455
                }
              ]
            },
            {
              "x": "Commerce",
              "color": "#2dd4bf",
              "children": [
                {
                  "x": "cart",
                  "y": 262
                },
                {
                  "x": "checkout",
                  "y": 305
                },
                {
                  "x": "pricing",
                  "y": 121
                },
                {
                  "x": "orders",
                  "y": 362
                }
              ]
            },
            {
              "x": "Content",
              "color": "#f59e0b",
              "children": [
                {
                  "x": "search",
                  "y": 388
                },
                {
                  "x": "catalog",
                  "y": 191
                },
                {
                  "x": "media",
                  "y": 335
                }
              ]
            },
            {
              "x": "Ops",
              "color": "#f472b6",
              "children": [
                {
                  "x": "notify",
                  "y": 221
                },
                {
                  "x": "billing-sync",
                  "y": 199
                }
              ]
            }
          ],
          "padding": 1.5,
          "thickness": 58
        }
      ]
    }
  },
  "responsive": [
    {
      "breakpoint": 600,
      "options": {
        "chart": {
          "fontSize": 11,
          "height": 720
        },
        "plotOptions": {
          "radialColumn": {
            "innerRadius": 0.8,
            "hole": 0,
            "layerGap": 3,
            "layers": [
              {
                "type": "chord",
                "name": "Calls",
                "data": [
                  [
                    "checkout",
                    "cart",
                    38
                  ],
                  [
                    "checkout",
                    "pricing",
                    31
                  ],
                  [
                    "checkout",
                    "orders",
                    27
                  ],
                  [
                    "checkout",
                    "auth",
                    22
                  ],
                  [
                    "cart",
                    "pricing",
                    19
                  ],
                  [
                    "cart",
                    "catalog",
                    24
                  ],
                  [
                    "orders",
                    "notify",
                    16
                  ],
                  [
                    "orders",
                    "billing-sync",
                    12
                  ],
                  [
                    "search",
                    "catalog",
                    41
                  ],
                  [
                    "catalog",
                    "media",
                    18
                  ],
                  [
                    "users",
                    "sessions",
                    14
                  ],
                  [
                    "auth",
                    "sessions",
                    26
                  ],
                  [
                    "auth",
                    "users",
                    20
                  ],
                  [
                    "pricing",
                    "catalog",
                    15
                  ],
                  [
                    "notify",
                    "users",
                    9
                  ],
                  [
                    "search",
                    "auth",
                    7
                  ],
                  [
                    "media",
                    "auth",
                    5
                  ],
                  [
                    "billing-sync",
                    "users",
                    6
                  ]
                ],
                "directed": true,
                "groups": [
                  {
                    "id": "auth",
                    "color": "#818cf8"
                  },
                  {
                    "id": "users",
                    "color": "#818cf8"
                  },
                  {
                    "id": "sessions",
                    "color": "#818cf8"
                  },
                  {
                    "id": "cart",
                    "color": "#2dd4bf"
                  },
                  {
                    "id": "checkout",
                    "color": "#2dd4bf"
                  },
                  {
                    "id": "pricing",
                    "color": "#2dd4bf"
                  },
                  {
                    "id": "orders",
                    "color": "#2dd4bf"
                  },
                  {
                    "id": "search",
                    "color": "#f59e0b"
                  },
                  {
                    "id": "catalog",
                    "color": "#f59e0b"
                  },
                  {
                    "id": "media",
                    "color": "#f59e0b"
                  },
                  {
                    "id": "notify",
                    "color": "#f472b6"
                  },
                  {
                    "id": "billing-sync",
                    "color": "#f472b6"
                  }
                ],
                "ringWidth": 10,
                "padding": 2,
                "gap": 3
              },
              {
                "type": "sunburst",
                "name": "Team › Service",
                "data": [
                  {
                    "x": "Identity",
                    "color": "#818cf8",
                    "children": [
                      {
                        "x": "auth",
                        "y": 402
                      },
                      {
                        "x": "users",
                        "y": 381
                      },
                      {
                        "x": "sessions",
                        "y": 455
                      }
                    ]
                  },
                  {
                    "x": "Commerce",
                    "color": "#2dd4bf",
                    "children": [
                      {
                        "x": "cart",
                        "y": 262
                      },
                      {
                        "x": "checkout",
                        "y": 305
                      },
                      {
                        "x": "pricing",
                        "y": 121
                      },
                      {
                        "x": "orders",
                        "y": 362
                      }
                    ]
                  },
                  {
                    "x": "Content",
                    "color": "#f59e0b",
                    "children": [
                      {
                        "x": "search",
                        "y": 388
                      },
                      {
                        "x": "catalog",
                        "y": 191
                      },
                      {
                        "x": "media",
                        "y": 335
                      }
                    ]
                  },
                  {
                    "x": "Ops",
                    "color": "#f472b6",
                    "children": [
                      {
                        "x": "notify",
                        "y": 221
                      },
                      {
                        "x": "billing-sync",
                        "y": 199
                      }
                    ]
                  }
                ],
                "padding": 1.5,
                "thickness": 32,
                "ringGap": 1
              }
            ]
          }
        }
      }
    }
  ]
}

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

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