Skip to content

Instantly share code, notes, and snippets.

@chiradeep
Last active August 23, 2018 21:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chiradeep/f5d6c7dea2bc3e682e63c43eec281305 to your computer and use it in GitHub Desktop.
Save chiradeep/f5d6c7dea2bc3e682e63c43eec281305 to your computer and use it in GitHub Desktop.
{
"$schema": "https://vega.github.io/schema/vega/v4.json",
"width": 720,
"height": 720,
"padding": 5,
"autosize": "none",
"signals": [
{
"name": "labels", "value": true,
"bind": {"input": "checkbox"}
},
{
"name": "radius", "value": 280,
"bind": {"input": "range", "min": 20, "max": 600}
},
{
"name": "extent", "value": 360,
"bind": {"input": "range", "min": 0, "max": 360, "step": 1}
},
{
"name": "rotate", "value": 0,
"bind": {"input": "range", "min": 0, "max": 360, "step": 1}
},
{
"name": "layout", "value": "tidy",
"bind": {"input": "radio", "options": ["tidy", "cluster"]}
},
{
"name": "links", "value": "line",
"bind": {
"input": "select",
"options": ["line", "curve", "diagonal", "orthogonal"]
}
},
{ "name": "originX", "update": "width / 2" },
{ "name": "originY", "update": "height / 2" }
],
"data": [
{
"name": "tree",
"values": {
"name": "SLO",
"children": [
{
"name": "Troubleshooting",
"children": [
{
"name": "Custom Dashboards",
"children": [
{
"name": "Query-driven",
"children": [
{
"name": "Joins with other data"
}
]
}
]
},
{
"name": "Data In Context",
"children": [
{
"name": "Joins with other data",
"children": [
{
"name": "SIEM"
}
]
},
{
"name": "Indigenous Data Sources",
"children": [
{
"name": "L3-L4 Telemetry"
},
{
"name": "App. Perf. Monitoring"
},
{
"name": "Version Control Systems"
},
{
"name": "Continuous Delivery Pipeline"
},
{
"name": "Security Scans"
},
{
"name": "SIEM"
},
{
"name": "Labels&Tags",
"children": [
{
"name": "K8s labels"
},
{
"name": "AWS VM Tags"
}
]
}
]
},
{
"name": "Exogenous Data Sources",
"children": [
{
"name": "Cloud Provider Status"
},
{
"name": "ISP Status"
},
{
"name": "DNS"
}
]
},
{
"name": "Search",
"children": [
{
"name": "Google-Like",
"children": [
{
"name": "Auto-complete"
}
]
},
{
"name": "Faceted"
}
]
},
{
"name": "Drill down",
"children": [
{
"name": "Query-driven",
"children": [
{
"name": "SQL-like queries"
}
]
}
]
},
{
"name": "Slice & Dice",
"children": [
{
"name": "In-memory analytics"
}
]
},
{
"name": "A/B compare",
"children": [
{
"name": "Compare with baseline"
},
{
"name": "Compare with similar service"
}
]
}
]
},
{
"name": "Machine-Aided",
"children": [
{
"name": "Recommendation Engine"
},
{
"name": "Anomaly UX"
}
]
},
{
"name": "Collaboration",
"children": [
{
"name": "Ticketing Integration",
"children":[
{
"name": "Service Now"
},
{
"name": "Jira"
}
]
},
{
"name": "Alert Channels",
"children":[
{
"name": "Slack"
},
{
"name": "PagerDuty"
}
]
},
{
"name": "Sharing",
"children":[
{
"name": "Shareable Dashboards"
},
{
"name": "Share dashboards via email or chat",
"children":[
{
"name": "Embed visuals in email or chat"
},
{
"name": "Deep linking"
}
]
},
{
"name": "Share drilldowns and search results via email or chat"
}
]
},
{
"name": "Embed in 3rd Party Dashboards",
"children":[
{
"name": "Embed in Datadog"
},
{
"name": "JS snippets"
}
]
}
]
}
]
},
{
"name": "Alerting"
},
{
"name": "High Availability"
},
{
"name": "Policy"
}
]
},
"transform": [
{
"type": "tree",
"method": {"signal": "layout"},
"size": [1, {"signal": "radius"}],
"as": ["alpha", "radius", "depth", "children"]
},
{
"type": "formula",
"expr": "(rotate + extent * datum.alpha + 270) % 360",
"as": "angle"
},
{
"type": "formula",
"expr": "PI * datum.angle / 180",
"as": "radians"
},
{
"type": "formula",
"expr": "inrange(datum.angle, [90, 270])",
"as": "leftside"
},
{
"type": "formula",
"expr": "originX + datum.radius * cos(datum.radians)",
"as": "x"
},
{
"type": "formula",
"expr": "originY + datum.radius * sin(datum.radians)",
"as": "y"
}
]
},
{
"name": "links",
"source": "tree",
"transform": [
{ "type": "treelinks" },
{
"type": "linkpath",
"shape": {"signal": "links"}, "orient": "radial",
"sourceX": "source.radians", "sourceY": "source.radius",
"targetX": "target.radians", "targetY": "target.radius"
}
]
}
],
"scales": [
{
"name": "color",
"type": "sequential",
"range": {"scheme": "magma"},
"domain": {"data": "tree", "field": "depth"},
"zero": true
}
],
"marks": [
{
"type": "path",
"from": {"data": "links"},
"encode": {
"update": {
"x": {"signal": "originX"},
"y": {"signal": "originY"},
"path": {"field": "path"},
"stroke": {"value": "#ccc"}
}
}
},
{
"type": "symbol",
"from": {"data": "tree"},
"encode": {
"enter": {
"size": {"value": 100},
"stroke": {"value": "#fff"}
},
"update": {
"x": {"field": "x"},
"y": {"field": "y"},
"fill": {"scale": "color", "field": "depth"}
}
}
},
{
"type": "text",
"from": {"data": "tree"},
"encode": {
"enter": {
"text": {"field": "name"},
"fontSize": {"value": 9},
"baseline": {"value": "middle"}
},
"update": {
"x": {"field": "x"},
"y": {"field": "y"},
"dx": {"signal": "(datum.leftside ? -1 : 1) * 6"},
"angle": {"signal": "datum.leftside ? datum.angle - 180 : datum.angle"},
"align": {"signal": "datum.leftside ? 'right' : 'left'"},
"opacity": {"signal": "labels ? 1 : 0"}
}
}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment