Documentation

Overview

    Package prober contains functionality for implementing probing in knative serving.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func Do

    func Do(ctx context.Context, transport http.RoundTripper, target string, ops ...interface{}) (bool, error)

      Do sends a single probe to given target, e.g. `http://revision.default.svc.cluster.local:81`. 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, transport http.RoundTripper) *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 string, arg interface{}, period, timeout time.Duration, ops ...interface{}) 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 Preparer

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

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

                func WithHeader

                func WithHeader(name, value string) Preparer

                  WithHeader sets a header in the probe request.

                  func WithHost

                  func WithHost(host string) Preparer

                    WithHost sets the host in the probe request.

                    type Verifier

                    type Verifier func(r *http.Response, b []byte) (bool, error)

                      Verifier is a way for the caller to validate the HTTP response after it comes back.

                      func ExpectsBody

                      func ExpectsBody(body string) Verifier

                        ExpectsBody validates that the body of the probe response matches the provided string.

                        func ExpectsHeader

                        func ExpectsHeader(name, value string) Verifier

                          ExpectsHeader validates that the given header of the probe response matches the provided string.

                          func ExpectsStatusCodes

                          func ExpectsStatusCodes(statusCodes []int) Verifier

                            ExpectsStatusCodes validates that the given status code of the probe response matches the provided int.

                            Source Files