skydive icon indicating copy to clipboard operation
skydive copied to clipboard

Add Gremlin templating

Open lebauce opened this issue 5 years ago • 3 comments

Adding a WebUI engine for expanding parameterized or composite Gremlin queries.

For the purpose of providing finer filter/highlight/capture capabilities.

lebauce avatar Mar 21 '19 10:03 lebauce

Templating

by resources under namespace

G.V().Has("K8s.Namespace", "@1")

@1 --> G.V().Values("K8s.Namespace")

by k8s resouces under namespace

G.V().Has("Manager", "k8s").Has("K8s.Namespace", "@1")

@1 --> G.V().Has("Manager", "k8s").Values("K8s.Namespace")

all containers of a pod

G.V().Has("Manager", "k8s", "Type", "container").Has("K8s.Namespace", "@1").Has("Pod", "@2")

@1 --> G.V().Has("Manager", "k8s", "Type", "container").Values("K8s.Namespace")
@2 --> G.V().Has("Manager", "k8s", "Type", "container").Values("Pod")

pods by namespace (including namespace object)

G.V().Has("Type", "namespace").Has("Name", "@1").As("parent")
.G.V().Has("Type", "pod").Has("K8s.Namespace", "@1").As("children")
.Select("parent", "children")

@1 --> G.V().Values("K8s.Namespace")

hunchback avatar Mar 21 '19 11:03 hunchback

AND operator

services under kube-system

G.V()
*AND*
Has("K8s.Namespace", "kube-system")
*AND*
Has("Type", "service")

G.V()
.Has("K8s.Namespace", "kube-system")
.Has("Type", "service")

hunchback avatar Mar 21 '19 11:03 hunchback

OR operator

kube-system or istio-system

G.V().Has("K8s.Namespace", "kube-system")
*OR*
G.V().Has("K8s.Namespace", "istio-system")

G.V().Has("K8s.Namespace", "kube-system").As("1")
.G.V().Has("K8s.Namespace", "istio-system").As("2")
.Select("1", "2")

hunchback avatar Mar 21 '19 11:03 hunchback