Files
Miek Gieben 0c6ef34234 1.6.4 release notes (#166)
* Generate html for plugins

Signed-off-by: Miek Gieben <miek@miek.nl>

* Release 1.6.4

Signed-off-by: Miek Gieben <miek@miek.nl>
2019-09-27 15:18:57 +01:00

78 lines
1.7 KiB
Markdown

+++
title = "pprof"
description = "*pprof* publishes runtime profiling data at endpoints under `/debug/pprof`."
weight = 31
tags = [ "plugin", "pprof" ]
categories = [ "plugin" ]
date = "2019-09-27T10:37:57.665051"
+++
## Description
You can visit `/debug/pprof` on your site for an index of the available endpoints. By default it
will listen on localhost:6053.
This is a debugging tool. Certain requests (such as collecting execution traces) can be slow. If
you use pprof on a live server, consider restricting access or enabling it only temporarily.
This plugin can only be used once per Server Block.
## Syntax
~~~ txt
pprof [ADDRESS]
~~~
Optionally pprof takes an address; the default is `localhost:6053`.
An extra option can be set with this extended syntax:
~~~ txt
pprof [ADDRESS] {
block [RATE]
}
~~~
* `block` option enables block profiling, **RATE** defaults to 1. **RATE** must be a positive value.
See [Diagnostics, chapter profiling](https://golang.org/doc/diagnostics.html) and
[runtime.SetBlockProfileRate](https://golang.org/pkg/runtime/#SetBlockProfileRate) for what block
profiling entails.
## Examples
Enable a pprof endpoint:
~~~
. {
pprof
}
~~~
And use the pprof tool to get statistics: `go tool pprof http://localhost:6053`.
Listen on an alternate address:
~~~ txt
. {
pprof 10.9.8.7:6060
}
~~~
Listen on an all addresses on port 6060, and enable block profiling
~~~ txt
. {
pprof :6060 {
block
}
}
~~~
## Also See
See [Go's pprof documentation](https://golang.org/pkg/net/http/pprof/) and [Profiling Go
Programs](https://blog.golang.org/profiling-go-programs).
See [runtime.SetBlockProfileRate](https://golang.org/pkg/runtime/#SetBlockProfileRate) for
background on block profiling.