activator

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2019 License: Apache-2.0 Imports: 21 Imported by: 0

README

About the Activator

The name activator is actually a misnomer, since after Knative 0.2, the activator no longer activates inactive Revisions.

The only responsibilities of the activator are:

  • Receiving & buffering requests for inactive Revisions.
  • Reporting metrics to the autoscaler.
  • Retrying requests to a Revision after the autoscaler scales such Revision based on the reported metrics.

Documentation

Index

Constants

View Source
const (
	// K8sServiceName is the name of the activator service
	K8sServiceName = "activator-service"
	// RequestCountHTTPHeader is the header key for number of tries
	RequestCountHTTPHeader string = "knative-activator-num-retries"
	// RevisionHeaderName is the header key for revision name
	RevisionHeaderName string = "knative-serving-revision"
	// RevisionHeaderNamespace is the header key for revision's namespace
	RevisionHeaderNamespace string = "knative-serving-namespace"
)
View Source
const (
	//RequestCountM is the request count when Activator proxy the request
	RequestCountM = iota

	// ResponseTimeInMsecM is the response time in millisecond
	ResponseTimeInMsecM
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ActivationResult

type ActivationResult struct {
	Status            int
	Endpoint          Endpoint
	ServiceName       string
	ConfigurationName string
	Error             error
}

ActivationResult is used to return the result of an ActivateEndpoint call

type Activator

type Activator interface {
	ActiveEndpoint(namespace, name string) ActivationResult
	Shutdown()
}

Activator provides an active endpoint for a revision or an error and status code indicating why it could not.

func NewDedupingActivator

func NewDedupingActivator(a Activator) Activator

NewDedupingActivator creates an Activator that deduplicates activations requests for the same revision id and namespace.

func NewRevisionActivator

func NewRevisionActivator(kubeClient kubernetes.Interface, servingClient clientset.Interface, logger *zap.SugaredLogger) Activator

NewRevisionActivator creates an Activator that changes revision serving status to active if necessary, then returns the endpoint once the revision is ready to serve traffic.

type Endpoint

type Endpoint struct {
	FQDN string
	Port int32
}

Endpoint is a fully-qualified domain name / port pair for an active revision.

type Measurement

type Measurement int

Measurement represents the type of the autoscaler metric to be reported

type Reporter

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

Reporter holds cached metric objects to report autoscaler metrics

func NewStatsReporter

func NewStatsReporter() (*Reporter, error)

NewStatsReporter creates a reporter that collects and reports activator metrics

func (*Reporter) ReportRequestCount

func (r *Reporter) ReportRequestCount(ns, service, config, rev string, responseCode, numTries int, v float64) error

ReportRequestCount captures request count metric with value v.

func (*Reporter) ReportResponseTime

func (r *Reporter) ReportResponseTime(ns, service, config, rev string, responseCode int, d time.Duration) error

ReportResponseTime captures response time requests

type StatsReporter

type StatsReporter interface {
	ReportRequestCount(ns, service, config, rev string, responseCode, numTries int, v float64) error
	ReportResponseTime(ns, service, config, rev string, responseCode int, d time.Duration) error
}

StatsReporter defines the interface for sending activator metrics

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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