Service-Mesh: Aufrufe, Zuständigkeit und Kosten in einem Ring
Drei übereinanderliegende Ebenen, alle an denselben zwölf Diensten ausgerichtet. Innen: ein Chord-Diagramm der dienstübergreifenden Aufrufe (k Anfragen/min). Mitte: Team › Dienst als Sunburst. Außen: monatliche Kosten je Dienst, eingefärbt nach Fehlerrate. Beim Überfahren leuchtet ein Aufruf über alle Ebenen hinweg bei beiden Diensten auf.
Innere Verbindungsbänder
Diagramm ohne Website-Rahmen öffnen ↗Drawing width at least 760 px. Scroll within the chart on smaller screens.
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()import WestCoastCharts from 'west-coast-charts'
import premium from 'west-coast-charts/premium'
WestCoastCharts.use(premium)
const WestCoastChartsPremium = premium
WestCoastCharts.setLicenseKey(LICENCE_KEY) // paid production licence; localhost evaluation needs no key
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)
await chart.render() Warten auf das Diagramm.
Open Data & agent view to read this chart through chart.describe().
Aus der laufenden Bibliothek über das optionale agent/describe -Modul gelesen. Text, Tabelle und JSON zeigen denselben Zustand. Ausschließlich Demonstrationsdaten.
$ wcc chart export radial-column-chord-mesh.json --out radial-column-chord-mesh.svg --with-table Public agent tools 0.2.3, tested with Library 1.1.5; available from the versioned GitHub release and npm. Speichern Sie zuerst eine JSON-Spezifikation und prüfen Sie vor dem Rendern die geladene Runtime und die unterstützten Module. Befehlsreferenz
Loading /gallery/radial-column/chord-mesh/index.md … This example uses Premium modules. Compare licences · Embedding in a distributed product?