http

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2024 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Overview

Package http implements the HTTP service.

Index

Constants

View Source
const ServiceName = "http"

ServiceName defines the name used for the HTTP service.

Variables

This section is empty.

Functions

This section is empty.

Types

type Arguments

type Arguments struct {
	TLS *TLSArguments `alloy:"tls,block,optional"`
}

Arguments holds runtime settings for the HTTP service.

type ClientAuth

type ClientAuth tls.ClientAuthType

ClientAuth configures the type of TLS client authentication to use.

func (ClientAuth) MarshalText

func (c ClientAuth) MarshalText() ([]byte, error)

MarshalText marshals the ID of a client auth type to its name.

func (*ClientAuth) UnmarshalText

func (c *ClientAuth) UnmarshalText(text []byte) error

UnmarshalText unmarshals the name of a client auth type to its ID.

type Component

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 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

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() (*alloy.Source, 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 and applies settings.

type ServiceHandler

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.

type TLSArguments

type TLSArguments struct {
	Cert             string            `alloy:"cert_pem,attr,optional"`
	CertFile         string            `alloy:"cert_file,attr,optional"`
	Key              alloytypes.Secret `alloy:"key_pem,attr,optional"`
	KeyFile          string            `alloy:"key_file,attr,optional"`
	ClientCA         string            `alloy:"client_ca_pem,attr,optional"`
	ClientCAFile     string            `alloy:"client_ca_file,attr,optional"`
	ClientAuth       ClientAuth        `alloy:"client_auth_type,attr,optional"`
	CipherSuites     []TLSCipher       `alloy:"cipher_suites,attr,optional"`
	CurvePreferences []TLSCurve        `alloy:"curve_preferences,attr,optional"`
	MinVersion       TLSVersion        `alloy:"min_version,attr,optional"`
	MaxVersion       TLSVersion        `alloy:"max_version,attr,optional"`

	// Windows Certificate Filter
	WindowsFilter *WindowsCertificateFilter `alloy:"windows_certificate_filter,block,optional"`
}

TLSArguments configures TLS settings for the HTTP service.

func (*TLSArguments) Validate

func (args *TLSArguments) Validate() error

Validate returns whether args is valid.

type TLSCipher

type TLSCipher uint16

TLSCipher holds the ID of a TLS cipher suite.

func (TLSCipher) MarshalText

func (c TLSCipher) MarshalText() ([]byte, error)

MarshalText marshals the ID of a cipher suite to its name.

func (*TLSCipher) UnmarshalText

func (c *TLSCipher) UnmarshalText(text []byte) error

UnmarshalText unmarshals the name of a cipher suite to its ID.

type TLSCurve

type TLSCurve tls.CurveID

TLSCurve holds the ID of a tls.CurveID.

func (TLSCurve) MarshalText

func (c TLSCurve) MarshalText() ([]byte, error)

MarshalText marshals the ID of a curve to its name.

func (*TLSCurve) UnmarshalText

func (c *TLSCurve) UnmarshalText(text []byte) error

UnmarshalText unmarshals the name of a curve to its ID.

type TLSVersion

type TLSVersion uint16

TLSVersion holds the ID of a TLS version.

func (TLSVersion) MarshalText

func (v TLSVersion) MarshalText() ([]byte, error)

MarshalText marshals the ID of a TLS version to its name.

func (*TLSVersion) UnmarshalText

func (v *TLSVersion) UnmarshalText(text []byte) error

UnmarshalText unmarshals the name of a TLS version to its ID.

type WindowsCertificateFilter

type WindowsCertificateFilter struct {
	Server *WindowsServerFilter `alloy:"server,block"`
	Client *WindowsClientFilter `alloy:"client,block"`
}

WindowsCertificateFilter represents the configuration for accessing the Windows store

type WindowsClientFilter

type WindowsClientFilter struct {
	IssuerCommonNames []string `alloy:"issuer_common_names,attr,optional"`
	SubjectRegEx      string   `alloy:"subject_regex,attr,optional"`
	TemplateID        string   `alloy:"template_id,attr,optional"`
}

WindowsClientFilter is used to select a client root CA certificate

type WindowsServerFilter

type WindowsServerFilter struct {
	Store             string        `alloy:"store,attr,optional"`
	SystemStore       string        `alloy:"system_store,attr,optional"`
	IssuerCommonNames []string      `alloy:"issuer_common_names,attr,optional"`
	TemplateID        string        `alloy:"template_id,attr,optional"`
	RefreshInterval   time.Duration `alloy:"refresh_interval,attr,optional"`
}

WindowsServerFilter is used to select a server certificate

func (*WindowsServerFilter) SetToDefault

func (wcf *WindowsServerFilter) SetToDefault()

SetToDefault sets the default for WindowsServerFilter

Jump to

Keyboard shortcuts

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