mirror of
https://github.com/kubeshark/kubeshark.git
synced 2025-08-05 18:46:16 +00:00
Add a build script to automatically build extensions from a known path and load them
This commit is contained in:
parent
e1167c4065
commit
95a9ee7571
10
Makefile
10
Makefile
@ -66,11 +66,5 @@ clean-cli: ## Clean CLI.
|
|||||||
clean-docker:
|
clean-docker:
|
||||||
@(echo "DOCKER cleanup - NOT IMPLEMENTED YET " )
|
@(echo "DOCKER cleanup - NOT IMPLEMENTED YET " )
|
||||||
|
|
||||||
extensions: extension-http
|
extensions:
|
||||||
|
./build_extensions.sh
|
||||||
extension-http:
|
|
||||||
cd tap/extensions/http && \
|
|
||||||
go build -buildmode=plugin -o ../http.so .
|
|
||||||
cd ../../..
|
|
||||||
mkdir -p agent/build/extensions
|
|
||||||
cp tap/extensions/http.so agent/build/extensions
|
|
||||||
|
12
build_extensions.sh
Executable file
12
build_extensions.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for f in tap/extensions/*; do
|
||||||
|
if [ -d "$f" ]; then
|
||||||
|
extension=$(basename $f) && \
|
||||||
|
cd tap/extensions/${extension} && \
|
||||||
|
go build -buildmode=plugin -o ../${extension}.so . && \
|
||||||
|
cd ../../.. && \
|
||||||
|
mkdir -p agent/build/extensions && \
|
||||||
|
cp tap/extensions/${extension}.so agent/build/extensions
|
||||||
|
fi
|
||||||
|
done
|
3
tap/extensions/amqp/go.mod
Normal file
3
tap/extensions/amqp/go.mod
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module github.com/up9inc/mizu/tap/extensions/amqp
|
||||||
|
|
||||||
|
go 1.16
|
18
tap/extensions/amqp/main.go
Normal file
18
tap/extensions/amqp/main.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
log.Println("Initializing AMQP extension.")
|
||||||
|
}
|
||||||
|
|
||||||
|
type greeting string
|
||||||
|
|
||||||
|
func (g greeting) Greet() {
|
||||||
|
log.Println("Hello from AMQP extension.")
|
||||||
|
}
|
||||||
|
|
||||||
|
// exported as symbol named "Greeter"
|
||||||
|
var Greeter greeting
|
@ -1,20 +0,0 @@
|
|||||||
github.com/bradleyfalzon/tlsx v0.0.0-20170624122154-28fd0e59bac4 h1:NJOOlc6ZJjix0A1rAU+nxruZtR8KboG1848yqpIUo4M=
|
|
||||||
github.com/bradleyfalzon/tlsx v0.0.0-20170624122154-28fd0e59bac4/go.mod h1:DQPxZS994Ld1Y8uwnJT+dRL04XPD0cElP/pHH/zEBHM=
|
|
||||||
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
|
|
||||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
|
||||||
github.com/orcaman/concurrent-map v0.0.0-20210501183033-44dafcb38ecc h1:Ak86L+yDSOzKFa7WM5bf5itSOo1e3Xh8bm5YCMUXIjQ=
|
|
||||||
github.com/orcaman/concurrent-map v0.0.0-20210501183033-44dafcb38ecc/go.mod h1:Lu3tH6HLW3feq74c2GC+jIMS/K2CFcDWnWD9XkenwhI=
|
|
||||||
github.com/romana/rlog v0.0.0-20171115192701-f018bc92e7d7 h1:jkvpcEatpwuMF5O5LVxTnehj6YZ/aEZN4NWD/Xml4pI=
|
|
||||||
github.com/romana/rlog v0.0.0-20171115192701-f018bc92e7d7/go.mod h1:KTrHyWpO1sevuXPZwyeZc72ddWRFqNSKDFl7uVWKpg0=
|
|
||||||
golang.org/x/net v0.0.0-20210421230115-4e50805a0758 h1:aEpZnXcAmXkd6AvLb2OPt+EN1Zu/8Ne3pCqPjja5PXY=
|
|
||||||
golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM=
|
|
||||||
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d h1:LO7XpTYMwTqxjLcGWPijK3vRXg1aWdlNOVOHRq45d7c=
|
|
||||||
golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
|
||||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
|
||||||
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
|
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
@ -1,13 +1,17 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
log.Println("Initializing HTTP extension.")
|
||||||
|
}
|
||||||
|
|
||||||
type greeting string
|
type greeting string
|
||||||
|
|
||||||
func (g greeting) Greet() {
|
func (g greeting) Greet() {
|
||||||
fmt.Println("Hello HTTP")
|
log.Println("Hello from HTTP extension.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// exported as symbol named "Greeter"
|
// exported as symbol named "Greeter"
|
||||||
|
3
tap/extensions/kafka/go.mod
Normal file
3
tap/extensions/kafka/go.mod
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module github.com/up9inc/mizu/tap/extensions/kafka
|
||||||
|
|
||||||
|
go 1.16
|
18
tap/extensions/kafka/main.go
Normal file
18
tap/extensions/kafka/main.go
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
log.Println("Initializing Kafka extension.")
|
||||||
|
}
|
||||||
|
|
||||||
|
type greeting string
|
||||||
|
|
||||||
|
func (g greeting) Greet() {
|
||||||
|
log.Println("Hello from Kafka extension.")
|
||||||
|
}
|
||||||
|
|
||||||
|
// exported as symbol named "Greeter"
|
||||||
|
var Greeter greeting
|
@ -12,6 +12,7 @@ import (
|
|||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
@ -253,11 +254,18 @@ func startMemoryProfiler() {
|
|||||||
|
|
||||||
func loadExtensions() {
|
func loadExtensions() {
|
||||||
dir, _ := filepath.Abs(filepath.Dir(os.Args[0]))
|
dir, _ := filepath.Abs(filepath.Dir(os.Args[0]))
|
||||||
abspath := path.Join(dir, "./extensions/http.so")
|
extensionsDir := path.Join(dir, "./extensions/")
|
||||||
fmt.Printf("abspath: %v\n", abspath)
|
|
||||||
|
files, err := ioutil.ReadDir(extensionsDir)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
for _, file := range files {
|
||||||
|
filename := file.Name()
|
||||||
|
log.Printf("Loading extension: %s\n", filename)
|
||||||
extension := &Extension{
|
extension := &Extension{
|
||||||
Name: "http",
|
Name: strings.TrimSuffix(filename, filepath.Ext(filename)),
|
||||||
Path: abspath,
|
Path: path.Join(extensionsDir, filename),
|
||||||
}
|
}
|
||||||
plug, _ := plugin.Open(extension.Path)
|
plug, _ := plugin.Open(extension.Path)
|
||||||
extension.Plug = plug
|
extension.Plug = plug
|
||||||
@ -267,6 +275,7 @@ func loadExtensions() {
|
|||||||
greeter, _ = symGreeter.(Greeter)
|
greeter, _ = symGreeter.(Greeter)
|
||||||
greeter.Greet()
|
greeter.Greet()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func startPassiveTapper(outboundLinkWriter *OutboundLinkWriter) {
|
func startPassiveTapper(outboundLinkWriter *OutboundLinkWriter) {
|
||||||
loadExtensions()
|
loadExtensions()
|
||||||
|
Loading…
Reference in New Issue
Block a user