Back to Telegraf

Profiling

docs/developers/PROFILING.md

1.38.21.4 KB
Original Source

Profiling

This article describes how to collect performance traces and memory profiles from Telegraf. If you are submitting this for an issue, please include the version.txt generated below.

Use the --pprof-addr option to enable the profiler, the easiest way to do this may be to add this line to /etc/default/telegraf:

shell
TELEGRAF_OPTS="--pprof-addr localhost:6060"

Restart Telegraf to activate the profile address.

Trace Profile

Collect a trace during the time where the performance issue is occurring. This example collects a 10 second trace and runs for 10 seconds:

shell
curl 'http://localhost:6060/debug/pprof/trace?seconds=10' > trace.bin
telegraf --version > version.txt
go env GOOS GOARCH >> version.txt

The trace.bin and version.txt files can be sent in for analysis or, if desired, you can analyze the trace with:

shell
go tool trace trace.bin

Memory Profile

Collect a heap memory profile:

shell
curl 'http://localhost:6060/debug/pprof/heap' > mem.prof
telegraf --version > version.txt
go env GOOS GOARCH >> version.txt

Analyze:

shell
$ go tool pprof mem.prof
(pprof) top5

CPU Profile

Collect a 30s CPU profile:

shell
curl 'http://localhost:6060/debug/pprof/profile' > cpu.prof
telegraf --version > version.txt
go env GOOS GOARCH >> version.txt

Analyze:

shell
go tool pprof cpu.prof
(pprof) top5