prober

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: May 14, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package prober contains functionality for implementing probing in knative serving.

Index

Constants

This section is empty.

Variables

View Source
var TransportFactory = network.NewAutoTransport

TransportFactory creates new transport.

Functions

func Do

func Do(ctx context.Context, target, headerValue string, pos ...ProbeOption) (bool, error)

Do sends a single probe to given target, e.g. `http://revision.default.svc.cluster.local:81`. headerValue is the value for the `k-network-probe` header. Do returns whether the probe was successful or not, or there was an error probing.

Types

type Done

type Done func(arg interface{}, success bool, err error)

Done is a callback that is executed when the async probe has finished. `arg` is given by the caller at the offering time, while `success` and `err` are the return values of the `Do` call. It is assumed that the opaque arg is consistent for a given target and we will coalesce concurrent Offer invocations on target.

type Manager

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

Manager manages async probes and makes sure we run concurrently only a single probe for the same key.

func New

func New(cb Done) *Manager

New creates a new Manager, that will invoke the given callback when async probing is finished.

func (*Manager) Offer

func (m *Manager) Offer(ctx context.Context, target, headerValue string, arg interface{}, period, timeout time.Duration) bool

Offer executes asynchronous probe using `target` as the key. If a probe with the same key already exists, Offer will return false and the call is discarded. If the request is accepted, Offer returns true. Otherwise Offer starts a goroutine that periodically executes `Do`, until timeout is reached, the probe succeeds, or fails with an error. In the end the callback is invoked with the provided `arg` and probing results.

type ProbeOption

type ProbeOption func(r *http.Request) *http.Request

ProbeOption is a way for caller to modify the HTTP request before it goes out.

Jump to

Keyboard shortcuts

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