Documentation ¶
Overview ¶
Package prober contains functionality for implementing probing in knative serving.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var TransportFactory = network.NewAutoTransport
TransportFactory creates new transport.
Functions ¶
func Do ¶
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 ¶
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 ¶
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.