TUN-834: Enable tracing on cloudflared
This commit is contained in:
parent
6644f28d83
commit
a7d9747fae
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"runtime/trace"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
|
@ -295,6 +296,13 @@ func main() {
|
|||
Usage: "Disables chunked transfer encoding; useful if you are running a WSGI server.",
|
||||
EnvVars: []string{"TUNNEL_NO_CHUNKED_ENCODING"},
|
||||
}),
|
||||
altsrc.NewStringFlag(&cli.StringFlag{
|
||||
Name: "trace-output",
|
||||
Value: "cloudflared.trace.out",
|
||||
Usage: "Name of trace output file.",
|
||||
EnvVars: []string{"TUNNEL_TRACE_OUTPUT"},
|
||||
Hidden: true,
|
||||
}),
|
||||
}
|
||||
app.Action = func(c *cli.Context) (err error) {
|
||||
tags := make(map[string]string)
|
||||
|
@ -398,6 +406,23 @@ func main() {
|
|||
}
|
||||
|
||||
func startServer(c *cli.Context, shutdownC, graceShutdownC chan struct{}) error {
|
||||
traceFile, err := os.Create(c.String("trace-output"))
|
||||
if err != nil {
|
||||
logger.WithError(err).Errorf("Failed to create trace output file %s", c.String("trace-output"))
|
||||
return errors.Wrap(err, "Error creating trace output file")
|
||||
}
|
||||
defer func() {
|
||||
if err := traceFile.Close(); err != nil {
|
||||
logger.WithError(err).Error("Failed to close trace output file")
|
||||
}
|
||||
}()
|
||||
|
||||
if err := trace.Start(traceFile); err != nil {
|
||||
logger.WithError(err).Error("Failed to start trace")
|
||||
return errors.Wrap(err, "Error starting tracing")
|
||||
}
|
||||
defer trace.Stop()
|
||||
|
||||
var wg sync.WaitGroup
|
||||
listeners := gracenet.Net{}
|
||||
errC := make(chan error)
|
||||
|
|
Loading…
Reference in New Issue