profile

package
v5.0.0-...-00f3ef1 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2025 License: AGPL-3.0 Imports: 5 Imported by: 0

Documentation

Overview

Package profile provides an abstraction of pprof profiles generations.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetPullServices

func GetPullServices() []otel.PullServiceDiscovery

GetPullServices lists the PProfProvider that implement the otel.PullServiceDiscovery interface

func HasProviders

func HasProviders() bool

HasProviders checks that there is at least one PProfProvider initialized.

func HasPullServices

func HasPullServices() bool

HasPullServices checks if one or more current PProfProvider implement the otel.PullServiceDiscovery interface

func InitPublishers

func InitPublishers(ctx context.Context, scv otel.Service, cfg Config) error

InitPublishers reads a config and initialize the corresponding PProfProvider

Types

type Config

type Config struct {
	Publishers []string `json:"publishers" yaml:"publishers"`
}

Config is a serializable representation of a list of publishers

type PProfProvider

type PProfProvider interface {
	PushSupported() bool
}

PProfProvider is the interface for a profile provider

func OpenProfiler

func OpenProfiler(ctx context.Context, urlstr string, svc otel.Service) (PProfProvider, error)

OpenProfiler opens the Registry identified by the URL given. See the URLOpener documentation in driver subpackages for details on supported URL formats, and https://gocloud.dev/concepts/urls for more information.

type URLMux

type URLMux struct {
	// contains filtered or unexported fields
}

URLMux is a URL opener multiplexer. It matches the scheme of the URLs against a set of registered schemes and calls the opener that matches the URL's scheme. See https://gocloud.dev/concepts/urls/ for more information.

The zero value is a multiplexer with no registered schemes.

func DefaultURLMux

func DefaultURLMux() *URLMux

DefaultURLMux returns the URLMux used by OpenTopic and OpenSubscription.

Driver packages can use this to register their TopicURLOpener and/or SubscriptionURLOpener on the mux.

func (*URLMux) OpenProfiler

func (mux *URLMux) OpenProfiler(ctx context.Context, urlstr string, svc otel.Service) (PProfProvider, error)

OpenProfiler calls OpenTopicURL with the URL parsed from urlstr. OpenTopic is safe to call from multiple goroutines.

func (*URLMux) Register

func (mux *URLMux) Register(scheme string, opener URLOpener)

Register registers the opener with the given scheme. If an opener already exists for the scheme, Register panics.

type URLOpener

type URLOpener interface {
	OpenURL(ctx context.Context, u *url.URL, svc otel.Service) (PProfProvider, error)
}

URLOpener represents types than can open Registries based on a URL. The opener must not modify the URL argument. OpenURL must be safe to call from multiple goroutines.

This interface is generally implemented by types in driver packages.

Directories

Path Synopsis
Package http_pull provides a profiling implementation that exposes PProf profiles on an HTTP endpoint
Package http_pull provides a profiling implementation that exposes PProf profiles on an HTTP endpoint
Package pyroscope provides a Push-implementation of profiling traces to Grafana Pyroscope server
Package pyroscope provides a Push-implementation of profiling traces to Grafana Pyroscope server

Jump to

Keyboard shortcuts

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