stats

package
v0.25.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2024 License: Apache-2.0 Imports: 15 Imported by: 10

README

Logs

enable debug logs with

curl -XPUT -d '{"level":"debug"}' -H"content-type: application/json" http://localhost:9091/logging

zPages

see them here:

localhost:9091/zpages/tracez

Local Prometheus

Start like so:

cat <<EOF > config.yaml
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

# A scrape configuration containing exactly one endpoint to scrape:
scrape_configs:
  # The job name is added as a label 'job=<job_name>' to any timeseries scraped from this config.
  - job_name: 'go-utils'

    # Override the global default and scrape targets from this job every 1 seconds.
    scrape_interval: 1s

    static_configs:
      - targets: ['localhost:9091']
EOF
prometheus --config.file=./config.yaml

Prometheus will be available in localhost:9090.

To see the rate of incoming snapshots, try this query:

rate(api_snap_emitter_snap_in[5m])

Profiling

CPU tracing

$ curl http://localhost:9091/debug/pprof/trace?seconds=5 -o trace.out
$ go tool trace trace.out

profiling

$ curl http://localhost:9091/debug/pprof/profile?seconds=5 -o pprof.out
$ go tool pprof pprof.out
(pprof) top
(pprof) web

Stack traces

See go routines:

$ curl http://localhost:9091/debug/pprof/goroutine?debug=2

Documentation

Index

Constants

View Source
const (
	DefaultEnvVar       = "START_STATS_SERVER"
	DefaultEnabledValue = "true"
	DefaultPort         = 9091
)

Variables

View Source
var (
	MNumGoRoutines = stats.Int64("runtime/goroutines", "The number of goroutines", "1")

	GoroutinesNumView = &view.View{
		Name:        "runtime/goroutines",
		Measure:     MNumGoRoutines,
		Description: "The number of goroutines",
		Aggregation: view.Sum(),
	}
)

Functions

func ConditionallyStartStatsServer added in v0.11.5

func ConditionallyStartStatsServer(addhandlers ...func(mux *http.ServeMux, profiles map[string]string))

start the server with the default startup options

func Index

func Index(w http.ResponseWriter, r *http.Request)

func RunCancellableGoroutineStat added in v0.21.27

func RunCancellableGoroutineStat(ctx context.Context)

func RunGoroutineStat

func RunGoroutineStat()

func StartCancellableStatsServerWithPort added in v0.21.27

func StartCancellableStatsServerWithPort(ctx context.Context, startupOpts StartupOptions, customAddHandlers ...func(mux *http.ServeMux, profiles map[string]string))

func StartStatsServerWithPort

func StartStatsServerWithPort(startupOpts StartupOptions, addhandlers ...func(mux *http.ServeMux, profiles map[string]string))

Types

type StartupOptions added in v0.11.5

type StartupOptions struct {
	// only start the server if this env var is present in the environment, and it is set to the given value
	// a StartStatsServer invocation when this is not the case is a no-op
	// if EnvVar is not provided, then the server starts unconditionally
	EnvVar       string
	EnabledValue string

	// listen on this port
	Port int

	// If set, the server will use this `AtomicLevel` to serve
	// the "/logging" endpoint instead of building its own logger.
	LogLevel *zap.AtomicLevel
}

func DefaultStartupOptions added in v0.11.5

func DefaultStartupOptions() StartupOptions

return options indicating that the server should:

  • start up only if DefaultEnvVar is set to DefaultEnabledValue
  • listen on DefaultPort

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL