Skip to content

Instantly share code, notes, and snippets.

@chiradeep
Last active August 23, 2018 21:24
Show Gist options
  • Select an option

  • Save chiradeep/f5d6c7dea2bc3e682e63c43eec281305 to your computer and use it in GitHub Desktop.

Select an option

Save chiradeep/f5d6c7dea2bc3e682e63c43eec281305 to your computer and use it in GitHub Desktop.

Revisions

  1. chiradeep revised this gist Aug 23, 2018. 1 changed file with 212 additions and 1 deletion.
    213 changes: 212 additions & 1 deletion slo.json
    Original file line number Diff line number Diff line change
    @@ -40,7 +40,218 @@
    "data": [
    {
    "name": "tree",
    "url": "https://s3.amazonaws.com/vega-cluster-dendrogram/slo.json",
    "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",
  2. chiradeep created this gist Aug 23, 2018.
    151 changes: 151 additions & 0 deletions slo.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,151 @@
    {
    "$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",
    "url": "https://s3.amazonaws.com/vega-cluster-dendrogram/slo.json",
    "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"}
    }
    }
    }
    ]
    }