67 lines
1.4 KiB
Markdown
67 lines
1.4 KiB
Markdown
|
# 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
|
||
|
```
|