TUN-834: Enable tracing on cloudflared
This commit is contained in:
parent
6644f28d83
commit
a7d9747fae
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"runtime/trace"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -295,6 +296,13 @@ func main() {
|
||||||
Usage: "Disables chunked transfer encoding; useful if you are running a WSGI server.",
|
Usage: "Disables chunked transfer encoding; useful if you are running a WSGI server.",
|
||||||
EnvVars: []string{"TUNNEL_NO_CHUNKED_ENCODING"},
|
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) {
|
app.Action = func(c *cli.Context) (err error) {
|
||||||
tags := make(map[string]string)
|
tags := make(map[string]string)
|
||||||
|
@ -398,6 +406,23 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func startServer(c *cli.Context, shutdownC, graceShutdownC chan struct{}) error {
|
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
|
var wg sync.WaitGroup
|
||||||
listeners := gracenet.Net{}
|
listeners := gracenet.Net{}
|
||||||
errC := make(chan error)
|
errC := make(chan error)
|
||||||
|
|
Loading…
Reference in New Issue