1
1
package main
2
2
3
3
import "C"
4
- import (
5
- "regexp"
6
- )
4
+ import . "github.com/sysdiglabs/sysdigQueryTranslator/pkg/translator"
7
5
8
6
func main () {
9
7
}
@@ -12,52 +10,7 @@ func main() {
12
10
func RemoveSysdigLabelsInExpression (cExpr , cExcludeScope * C.char ) * C.char {
13
11
expr := C .GoString (cExpr )
14
12
excludeScope := C .GoString (cExcludeScope )
15
- // Remove scopes of sysdig kube_cluster_name=~$cluster for example
16
- scope := "kube_cluster_name|kube_namespace_name|kube_pod_name|kube_workload_name|kube_node_name|agent_tag_cluster|instance|node|namespace|host_hostname"
17
- if excludeScope != "" {
18
- scope = scope + "|" + excludeScope
19
- }
20
- regex := regexp .MustCompile ("(?:" + scope + ")" + "(?:=|=~|!=|!~)\\ $[\\ w_]*," )
21
- expr = regex .ReplaceAllString (expr , "" )
22
- regex = regexp .MustCompile ("(?:" + scope + ")" + "(?:=|=~|!=|!~)\" \" ," )
23
- expr = regex .ReplaceAllString (expr , "" )
24
- regex = regexp .MustCompile ("(?:" + scope + ")" + "(?:=|=~|!=|!~)\\ $[\\ w_]*\\ }" )
25
- expr = regex .ReplaceAllString (expr , "}" )
26
- regex = regexp .MustCompile ("(?:" + scope + ")" + "(?:=|=~|!=|!~)\" \" }" )
27
- expr = regex .ReplaceAllString (expr , "}" )
28
- // Remove the sysdig aggregation
29
- aggregation := "kube_cluster_name|kube_namespace_name|kube_pod_name|kube_workload_name|kube_node_name|agent_tag_cluster"
30
- aggregation = aggregation + "|" + excludeScope
31
- regex = regexp .MustCompile ("(?:" + aggregation + ")" )
32
- expr = regex .ReplaceAllString (expr , "" )
33
- // Remove extra commas
34
- regex = regexp .MustCompile ("(?:,+)(?:\\ s*)(?:,+)" )
35
- expr = regex .ReplaceAllString (expr , "," )
36
- regex = regexp .MustCompile (",\\ s*\\ }" )
37
- expr = regex .ReplaceAllString (expr , "}" )
38
- regex = regexp .MustCompile ("\\ {\\ s*," )
39
- expr = regex .ReplaceAllString (expr , "{" )
40
- regex = regexp .MustCompile (",\\ s*\\ )" )
41
- expr = regex .ReplaceAllString (expr , ")" )
42
- regex = regexp .MustCompile ("\\ (\\ s*," )
43
- expr = regex .ReplaceAllString (expr , "(" )
44
- // Remove duplicate \\
45
- regex = regexp .MustCompile ("\\ \\ " )
46
- expr = regex .ReplaceAllString (expr , "" )
47
- // Remove empty by ()
48
- regex = regexp .MustCompile ("by\\ s*\\ (\\ s*\\ )" )
49
- expr = regex .ReplaceAllString (expr , "" )
50
- // Remove empty scope
51
- regex = regexp .MustCompile ("\\ {\\ s*\\ }" )
52
- expr = regex .ReplaceAllString (expr , "" )
53
- // Remove 2 or more whitespaces
54
- regex = regexp .MustCompile ("[ \\ t]{2,}" )
55
- expr = regex .ReplaceAllString (expr , " " )
56
- // Remove the extra\n
57
- regex = regexp .MustCompile ("\\ n" )
58
- expr = regex .ReplaceAllString (expr , "" )
59
- // Add trailing \n, very important don't touch
60
- expr = expr + "\n "
13
+ expr = RemoveSysdigLabels (expr , excludeScope )
61
14
cStr := C .CString (expr )
62
15
return cStr
63
16
}
0 commit comments