discoveryutils

package
v1.101.0 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: Apache-2.0 Imports: 22 Imported by: 17

Documentation

Index

Constants

View Source
const (
	// BlockingClientReadTimeout is the maximum duration for waiting the response from GetBlockingAPI*
	BlockingClientReadTimeout = 10 * time.Minute

	// DefaultClientReadTimeout is the maximum duration for waiting the response from GetAPI*
	DefaultClientReadTimeout = time.Minute
)

Variables

This section is empty.

Functions

func AddTagsToLabels added in v1.91.0

func AddTagsToLabels(m *promutils.Labels, tags []string, prefix, tagSeparator string)

AddTagsToLabels adds <prefix>_tags (separated with tagSeparator) to labels and exposes individual tags via <prefix>_tag_* labels, so users could move all the tags into the discovered scrape target with the following relabeling rule in the way similar to kubernetes_sd_configs:

  • action: labelmap regex: <prefix>_tag_(.+)

This solves https://stackoverflow.com/questions/44339461/relabeling-in-prometheus

func GetHTTPClient added in v1.35.1

func GetHTTPClient() *http.Client

GetHTTPClient returns default client for http API requests.

func JoinHostPort

func JoinHostPort(host string, port int) string

JoinHostPort returns host:port.

Host may be dns name, ipv4 or ipv6 address.

func SanitizeLabelName

func SanitizeLabelName(name string) string

SanitizeLabelName replaces anything that doesn't match client_label.LabelNameRE with an underscore.

This has been copied from Prometheus sources at util/strutil/strconv.go

func SleepCtx added in v1.87.2

func SleepCtx(ctx context.Context, sleepDuration time.Duration) bool

SleepCtx sleeps for sleepDuration.

It immediately returns false on ctx cancel or deadline, without waiting for sleepDuration.

func TestEqualLabelss added in v1.85.0

func TestEqualLabelss(t *testing.T, got, want []*promutils.Labels)

TestEqualLabelss tests whether got are equal to want.

Types

type Client added in v1.35.1

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

Client is http client, which talks to the given apiServer passed to NewClient().

func NewClient added in v1.35.1

func NewClient(apiServer string, ac *promauth.Config, proxyURL *proxy.URL, proxyAC *promauth.Config, httpCfg *promauth.HTTPClientConfig) (*Client, error)

NewClient returns new Client for the given args.

func (*Client) APIServer added in v1.79.6

func (c *Client) APIServer() string

APIServer returns the API server address

func (*Client) Context added in v1.86.2

func (c *Client) Context() context.Context

Context returns context for the client requests.

func (*Client) GetAPIResponse added in v1.35.1

func (c *Client) GetAPIResponse(path string) ([]byte, error)

GetAPIResponse returns response for the given absolute path.

func (*Client) GetAPIResponseWithParamsCtx added in v1.88.0

func (c *Client) GetAPIResponseWithParamsCtx(ctx context.Context, path string, modifyRequest RequestCallback, inspectResponse ResponseCallback) ([]byte, error)

GetAPIResponseWithParamsCtx returns response for given absolute path with blocking client and optional callback for api response,

func (*Client) GetAPIResponseWithReqParams added in v1.62.0

func (c *Client) GetAPIResponseWithReqParams(path string, modifyRequest RequestCallback) ([]byte, error)

GetAPIResponseWithReqParams returns response for given absolute path with optional callback for request.

func (*Client) GetBlockingAPIResponse added in v1.49.0

func (c *Client) GetBlockingAPIResponse(path string, inspectResponse ResponseCallback) ([]byte, error)

GetBlockingAPIResponse returns response for given absolute path with blocking client and optional callback for api response,

func (*Client) GetBlockingAPIResponseCtx added in v1.86.2

func (c *Client) GetBlockingAPIResponseCtx(ctx context.Context, path string, inspectResponse ResponseCallback) ([]byte, error)

GetBlockingAPIResponseCtx returns response for given absolute path with blocking client and optional callback for api response,

func (*Client) Stop added in v1.86.0

func (c *Client) Stop()

Stop cancels all in-flight requests

type ConfigMap added in v1.35.1

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

ConfigMap is a map for storing discovery api configs.

It automatically removes old configs which weren't accessed recently.

func NewConfigMap added in v1.35.1

func NewConfigMap() *ConfigMap

NewConfigMap creates ConfigMap

func (*ConfigMap) Delete added in v1.55.0

func (cm *ConfigMap) Delete(key interface{}) interface{}

Delete deletes config for the given key from cm and returns it.

func (*ConfigMap) Get added in v1.35.1

func (cm *ConfigMap) Get(key interface{}, newConfig func() (interface{}, error)) (interface{}, error)

Get returns config for the given key.

Key must be a pointer.

It creates new config map with newConfig() call if cm doesn't contain config under the given key.

type HTTPClient added in v1.86.0

type HTTPClient struct {
	ReadTimeout time.Duration
	// contains filtered or unexported fields
}

HTTPClient is a wrapper around http.Client with timeouts.

type RequestCallback added in v1.88.0

type RequestCallback func(req *http.Request)

RequestCallback is called on the request before sending the request to the server.

type ResponseCallback added in v1.88.0

type ResponseCallback func(resp *http.Response)

ResponseCallback is called on the response before validating and returning the response to the caller.

Jump to

Keyboard shortcuts

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