README

Performance Profiler

Performance Profiler extension enables the golang net/http/pprof endpoint. This is typically used by developers to collect performance profiles and investigate issues with the service.

The following settings are required:

  • endpoint (default = localhost:1777): The endpoint in which the pprof will be listening to. Use localhost: to make it available only locally, or ":" to make it available on all network interfaces.
  • block_profile_fraction (default = 0): Fraction of blocking events that are profiled. A value <= 0 disables profiling. See https://golang.org/pkg/runtime/#SetBlockProfileRate for details.
  • mutex_profile_fraction (default = 0): Fraction of mutex contention events that are profiled. A value <= 0 disables profiling. See https://golang.org/pkg/runtime/#SetMutexProfileFraction for details.

The following settings can be optionally configured:

  • save_to_file: File name to save the CPU profile to. The profiling starts when the Collector starts and is saved to the file when the Collector is terminated.

Example:


extensions:
  pprof:

The full list of settings exposed for this exporter are documented here with detailed sample configurations here.

Documentation

Overview

    Package pprofextension implements an extension that exposes the golang net/http/pprof (Performance Profiler) in a HTTP endpoint.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func NewFactory

    func NewFactory() component.ExtensionFactory

      NewFactory creates a factory for pprof extension.

      Types

      type Config

      type Config struct {
      	*config.ExtensionSettings `mapstructure:"-"`
      
      	// TCPAddr is the address and port in which the pprof will be listening to.
      	// Use localhost:<port> to make it available only locally, or ":<port>" to
      	// make it available on all network interfaces.
      	TCPAddr confignet.TCPAddr `mapstructure:",squash"`
      
      	// Fraction of blocking events that are profiled. A value <= 0 disables
      	// profiling. See https://golang.org/pkg/runtime/#SetBlockProfileRate for details.
      	BlockProfileFraction int `mapstructure:"block_profile_fraction"`
      
      	// Fraction of mutex contention events that are profiled. A value <= 0
      	// disables profiling. See https://golang.org/pkg/runtime/#SetMutexProfileFraction
      	// for details.
      	MutexProfileFraction int `mapstructure:"mutex_profile_fraction"`
      
      	// Optional file name to save the CPU profile to. The profiling starts when the
      	// Collector starts and is saved to the file when the Collector is terminated.
      	SaveToFile string `mapstructure:"save_to_file"`
      }

        Config has the configuration for the extension enabling the golang net/http/pprof (Performance Profiler) extension.

        func (*Config) Validate

        func (cfg *Config) Validate() error

          Validate checks if the extension configuration is valid