Documentation
¶
Overview ¶
Package http implements the HTTP service for Flow.
Index ¶
Constants ¶
const ServiceName = "http"
ServiceName defines the name used for the HTTP service.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Component ¶ added in v0.36.0
type Component interface {
component.Component
// Handler should return a valid HTTP handler for the component.
// All requests to the component will have the path trimmed such that the component is at the root.
// For example, f a request is made to `/component/{id}/metrics`, the component
// will receive a request to just `/metrics`.
Handler() http.Handler
}
Component is a Flow component which also contains a custom HTTP handler.
type Data ¶
type Data struct {
// Address that the HTTP service is configured to listen on.
HTTPListenAddr string
// Address that the HTTP service is configured to listen on for in-memory
// traffic when [DialFunc] is used to establish a connection.
MemoryListenAddr string
// BaseHTTPPath is the base path where component HTTP routes are exposed.
BaseHTTPPath string
// DialFunc is a function which establishes in-memory network connection when
// address is MemoryListenAddr. If address is not MemoryListenAddr, DialFunc
// establishes an outbound network connection.
DialFunc func(ctx context.Context, network, address string) (net.Conn, error)
}
Data includes information associated with the HTTP service.
func (Data) HTTPPathForComponent ¶ added in v0.36.0
func (d Data) HTTPPathForComponent(componentID string) string
HTTPPathForComponent returns the full HTTP path for a given global component ID.
type Options ¶
type Options struct {
Logger log.Logger // Where to send logs.
Tracer trace.TracerProvider // Where to send traces.
Gatherer prometheus.Gatherer // Where to collect metrics from.
ReadyFunc func() bool
ReloadFunc func() error
HTTPListenAddr string // Address to listen for HTTP traffic on.
MemoryListenAddr string // Address to accept in-memory traffic on.
EnablePProf bool // Whether pprof endpoints should be exposed.
}
Options are used to configure the HTTP service. Options are constant for the lifetime of the HTTP service.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func New ¶
func New(opts Options) *Service
New returns a new, unstarted instance of the HTTP service.
func (*Service) Data ¶
func (s *Service) Data() any
Data returns an instance of Data. Calls to Data are cachable by the caller.
Data must only be called after parsing command-line flags.
func (*Service) Definition ¶
func (s *Service) Definition() service.Definition
Definition returns the definition of the HTTP service.
func (*Service) Run ¶
func (s *Service) Run(ctx context.Context, host service.Host) error
Run starts the HTTP service. It will run until the provided context is canceled or there is a fatal error.
func (*Service) Update ¶
func (s *Service) Update(newConfig any) error
Update implements service.Service. It is a no-op since the HTTP service does not support runtime configuration.
type ServiceHandler ¶ added in v0.36.0
type ServiceHandler interface {
service.Service
// ServiceHandler returns the base route and HTTP handlers to register for
// the provided service.
//
// This method is only called for services that declare a dependency on
// the http service.
//
// The http service prioritizes longer base routes. Given two base routes of
// /foo and /foo/bar, an HTTP URL of /foo/bar/baz will be routed to the
// longer base route (/foo/bar).
ServiceHandler(host service.Host) (base string, handler http.Handler)
}
ServiceHandler is a Service which exposes custom HTTP handlers.