feat: add vector integration
This currently is missing a few features: - global sinks - logrotation But works fairly well otherwise.
This commit is contained in:
@@ -23,7 +23,12 @@ Additional commands:`
|
||||
|
||||
helpContent = `
|
||||
logs [-h] [-t|--tail] [-n|--num num] [-q|--quiet] [-p|--ps process] <app>, Display recent log output
|
||||
logs:failed [<app>], Shows the last failed deploy logs
|
||||
logs:failed [--all|<app>], Shows the last failed deploy logs
|
||||
logs:report [<app>] [<flag>], Displays a logs report for one or more apps
|
||||
logs:set <app> <key> <value>, Set or clear a logs property for an app
|
||||
logs:vector-logs, Tail the logs of the vector container
|
||||
logs:vector-start, Start the vector logging container
|
||||
logs:vector-stop, Stop the vector logging container
|
||||
`
|
||||
)
|
||||
|
||||
|
||||
@@ -24,6 +24,34 @@ func main() {
|
||||
args.Parse(os.Args[2:])
|
||||
appName := args.Arg(0)
|
||||
err = logs.CommandFailed(appName, *allApps)
|
||||
case "report":
|
||||
args := flag.NewFlagSet("logs:report", flag.ExitOnError)
|
||||
osArgs, infoFlag, err := common.ParseReportArgs("logs", os.Args[2:])
|
||||
if err == nil {
|
||||
args.Parse(osArgs)
|
||||
appName := args.Arg(0)
|
||||
err = logs.CommandReport(appName, infoFlag)
|
||||
}
|
||||
case "set":
|
||||
args := flag.NewFlagSet("logs:set", flag.ExitOnError)
|
||||
args.Parse(os.Args[2:])
|
||||
appName := args.Arg(0)
|
||||
property := args.Arg(1)
|
||||
value := args.Arg(2)
|
||||
err = logs.CommandSet(appName, property, value)
|
||||
case "vector-logs":
|
||||
args := flag.NewFlagSet("logs:vector-logs", flag.ExitOnError)
|
||||
args.Parse(os.Args[2:])
|
||||
err = logs.CommandVectorLogs()
|
||||
case "vector-start":
|
||||
args := flag.NewFlagSet("logs:vector-start", flag.ExitOnError)
|
||||
vectorImage := args.String("vector-image", logs.VectorImage, "--vector-image: the name of the docker image to run for vector")
|
||||
args.Parse(os.Args[2:])
|
||||
err = logs.CommandVectorStart(*vectorImage)
|
||||
case "vector-stop":
|
||||
args := flag.NewFlagSet("logs:vector-stop", flag.ExitOnError)
|
||||
args.Parse(os.Args[2:])
|
||||
err = logs.CommandVectorStop()
|
||||
default:
|
||||
common.LogFail(fmt.Sprintf("Invalid plugin subcommand call: %s", subcommand))
|
||||
}
|
||||
|
||||
36
plugins/logs/src/triggers/triggers.go
Normal file
36
plugins/logs/src/triggers/triggers.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/dokku/dokku/plugins/common"
|
||||
"github.com/dokku/dokku/plugins/logs"
|
||||
)
|
||||
|
||||
// main entrypoint to all triggers
|
||||
func main() {
|
||||
parts := strings.Split(os.Args[0], "/")
|
||||
trigger := parts[len(parts)-1]
|
||||
flag.Parse()
|
||||
|
||||
var err error
|
||||
switch trigger {
|
||||
case "install":
|
||||
err = logs.TriggerInstall()
|
||||
case "post-delete":
|
||||
appName := flag.Arg(0)
|
||||
err = logs.TriggerPostDelete(appName)
|
||||
case "report":
|
||||
appName := flag.Arg(0)
|
||||
err = logs.ReportSingleApp(appName, "")
|
||||
default:
|
||||
common.LogFail(fmt.Sprintf("Invalid plugin trigger call: %s", trigger))
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
common.LogFail(err.Error())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user