mirror of
https://github.com/openfaas/faasd.git
synced 2025-06-19 04:26:34 +00:00
Add log shim and collect command
The collect command redirects function logs to the journal for viewing on journalctl. faas-cli logs is not implemented as of yet. View logs with journalctl -t openfaas-fn:FN_NAME_HERE. Tested on Dell XPS with Ubuntu Linux. The approach takes inspiration from the Stellar project. Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
This commit is contained in:
committed by
Alex Ellis
parent
853830c018
commit
2307fc71c5
13
README.md
13
README.md
@ -75,6 +75,19 @@ ofc-bootstrap registry-login --username <your-registry-username> --password-stdi
|
|||||||
```
|
```
|
||||||
The file will be created in `./credentials/`
|
The file will be created in `./credentials/`
|
||||||
|
|
||||||
|
### Logs for functions
|
||||||
|
|
||||||
|
You can view the logs of functions using `journalctl`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
journalctl -t openfaas-fn:FUNCTION_NAME
|
||||||
|
|
||||||
|
|
||||||
|
faas-cli store deploy figlet
|
||||||
|
journalctl -t openfaas-fn:figlet -f &
|
||||||
|
echo logs | faas-cli invoke figlet
|
||||||
|
```
|
||||||
|
|
||||||
### Manual / developer instructions
|
### Manual / developer instructions
|
||||||
|
|
||||||
See [here for manual / developer instructions](docs/DEV.md)
|
See [here for manual / developer instructions](docs/DEV.md)
|
||||||
|
@ -12,6 +12,10 @@ import (
|
|||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func CollectCommand() *cobra.Command {
|
||||||
|
return collectCmd
|
||||||
|
}
|
||||||
|
|
||||||
var collectCmd = &cobra.Command{
|
var collectCmd = &cobra.Command{
|
||||||
Use: "collect",
|
Use: "collect",
|
||||||
Short: "Collect logs to the journal",
|
Short: "Collect logs to the journal",
|
||||||
|
@ -18,6 +18,10 @@ func init() {
|
|||||||
rootCommand.AddCommand(collectCmd)
|
rootCommand.AddCommand(collectCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func RootCommand() *cobra.Command {
|
||||||
|
return rootCommand
|
||||||
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// GitCommit Git Commit SHA
|
// GitCommit Git Commit SHA
|
||||||
GitCommit string
|
GitCommit string
|
||||||
|
16
main.go
16
main.go
@ -1,6 +1,7 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/openfaas/faasd/cmd"
|
"github.com/openfaas/faasd/cmd"
|
||||||
@ -15,6 +16,21 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
|
if _, ok := os.LookupEnv("CONTAINER_ID"); ok {
|
||||||
|
collect := cmd.RootCommand()
|
||||||
|
collect.SetArgs([]string{"collect"})
|
||||||
|
collect.SilenceUsage = true
|
||||||
|
collect.SilenceErrors = true
|
||||||
|
|
||||||
|
err := collect.Execute()
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintf(os.Stderr, err.Error())
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
if err := cmd.Execute(Version, GitCommit); err != nil {
|
if err := cmd.Execute(Version, GitCommit); err != nil {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,10 @@ func deploy(ctx context.Context, req types.FunctionDeployment, client *container
|
|||||||
func createTask(ctx context.Context, client *containerd.Client, container containerd.Container, cni gocni.CNI) error {
|
func createTask(ctx context.Context, client *containerd.Client, container containerd.Container, cni gocni.CNI) error {
|
||||||
|
|
||||||
name := container.ID()
|
name := container.ID()
|
||||||
task, taskErr := container.NewTask(ctx, cio.NewCreator(cio.WithStdio))
|
// task, taskErr := container.NewTask(ctx, cio.NewCreator(cio.WithStdio))
|
||||||
|
|
||||||
|
task, taskErr := container.NewTask(ctx, cio.BinaryIO("/usr/local/bin/faasd", nil))
|
||||||
|
|
||||||
if taskErr != nil {
|
if taskErr != nil {
|
||||||
return fmt.Errorf("unable to start task: %s, error: %s", name, taskErr)
|
return fmt.Errorf("unable to start task: %s, error: %s", name, taskErr)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user