Documentation ¶
Index ¶
- Constants
- func AddWarningHeaders(w http.ResponseWriter, meta block.ResultMetadata)
- func AllowedServices() []string
- func CloseWatcher(ctx context.Context, cancel context.CancelFunc, w http.ResponseWriter, ...)
- func IsAllowedService(svc string) bool
- func NewSearchHandler(storage storage.Storage, fetchOptionsBuilder FetchOptionsBuilder, ...) http.Handler
- func ParseDuration(r *http.Request, key string) (time.Duration, error)
- func ParseLimit(req *http.Request, defaultLimit int) (int, error)
- func ParseLookbackDuration(r *http.Request) (time.Duration, bool, error)
- func ParseStep(r *http.Request) (time.Duration, bool, error)
- type FetchOptionsBuilder
- type FetchOptionsBuilderOptions
- type HeaderKeyType
- type M3AggServiceOptions
- type SearchHandler
- type ServiceNameAndDefaults
- type ServiceOptions
- type ServiceOptionsDefault
Constants ¶
const ( // StepParam is the step parameter. StepParam = "step" // LookbackParam is the lookback parameter. LookbackParam = "lookback" )
const ( // WarningsHeader is the M3 warnings header when to display a warning to a user. WarningsHeader = "M3-Warnings" // RetryHeader is the M3 retry header to display when it is safe to retry. RetryHeader = "M3-Retry" // ServedByHeader is the M3 query storage execution breakdown. ServedByHeader = "M3-Storage-By" // DeprecatedHeader is the M3 deprecated header. DeprecatedHeader = "M3-Deprecated" // LimitMaxSeriesHeader is the M3 limit timeseries header that limits // the number of time series returned by each storage node. LimitMaxSeriesHeader = "M3-Limit-Max-Series" // MetricsTypeHeader sets the write or read metrics type to restrict // metrics to. // Valid values are "unaggregated" or "aggregated". MetricsTypeHeader = "M3-Metrics-Type" // MetricsStoragePolicyHeader specifies the resolution and retention of // metrics being written or read. // In the form of a storage policy string, e.g. "1m:14d". // Only required if the metrics type header does not specify unaggregated // metrics type. MetricsStoragePolicyHeader = "M3-Storage-Policy" // UnaggregatedStoragePolicy specifies the unaggregated storage policy. UnaggregatedStoragePolicy = "unaggregated" // DefaultServiceEnvironment is the default service ID environment. DefaultServiceEnvironment = "default_env" // DefaultServiceZone is the default service ID zone. DefaultServiceZone = "embedded" // HeaderClusterEnvironmentName is the header used to specify the environment // name. HeaderClusterEnvironmentName = "Cluster-Environment-Name" // HeaderClusterZoneName is the header used to specify the zone name. HeaderClusterZoneName = "Cluster-Zone-Name" // HeaderDryRun is the header used to specify whether this should be a dry // run. HeaderDryRun = "Dry-Run" // HeaderForce is the header used to specify whether this should be a forced operation. HeaderForce = "Force" // LimitHeader is the header added when returned series are limited. LimitHeader = "M3-Results-Limited" // LimitHeaderSeriesLimitApplied is the header applied when fetch results are // maxed. LimitHeaderSeriesLimitApplied = "max_fetch_series_limit_applied" )
const ( // M3DBServiceName is the service name for M3DB. M3DBServiceName = "m3db" // M3AggregatorServiceName is the service name for M3Aggregator. M3AggregatorServiceName = "m3aggregator" // M3CoordinatorServiceName is the service name for M3Coordinator. M3CoordinatorServiceName = "m3coordinator" )
const ( // SearchURL is the url to search for metric ids SearchURL = "/search" // SearchHTTPMethod is the HTTP method used with this resource. SearchHTTPMethod = http.MethodPost )
Variables ¶
This section is empty.
Functions ¶
func AddWarningHeaders ¶ added in v0.14.0
func AddWarningHeaders(w http.ResponseWriter, meta block.ResultMetadata)
AddWarningHeaders adds any warning headers present in the result's metadata. No-op if no warnings encountered.
func AllowedServices ¶ added in v0.7.0
func AllowedServices() []string
AllowedServices returns the list of valid M3 services.
func CloseWatcher ¶
func CloseWatcher( ctx context.Context, cancel context.CancelFunc, w http.ResponseWriter, instrumentOpts instrument.Options, )
CloseWatcher watches for CloseNotify and context timeout. It is best effort and may sometimes not close the channel relying on gc
func IsAllowedService ¶ added in v0.7.0
IsAllowedService returns whether a service name is a valid M3 service.
func NewSearchHandler ¶
func NewSearchHandler( storage storage.Storage, fetchOptionsBuilder FetchOptionsBuilder, instrumentOpts instrument.Options, ) http.Handler
NewSearchHandler returns a new instance of handler
func ParseDuration ¶ added in v0.11.0
ParseDuration parses a duration HTTP parameter. nolint: unparam
func ParseLimit ¶ added in v0.14.0
ParseLimit parses request limit from either header or query string.
func ParseLookbackDuration ¶ added in v0.11.0
ParseLookbackDuration parses a lookback duration for an HTTP request.
Types ¶
type FetchOptionsBuilder ¶ added in v0.9.2
type FetchOptionsBuilder interface { // NewFetchOptions parses an http request into fetch options. NewFetchOptions(req *http.Request) (*storage.FetchOptions, *xhttp.ParseError) }
FetchOptionsBuilder builds fetch options based on a request and default config.
func NewFetchOptionsBuilder ¶ added in v0.9.2
func NewFetchOptionsBuilder( opts FetchOptionsBuilderOptions, ) FetchOptionsBuilder
NewFetchOptionsBuilder returns a new fetch options builder.
type FetchOptionsBuilderOptions ¶ added in v0.9.2
type FetchOptionsBuilderOptions struct {
Limit int
}
FetchOptionsBuilderOptions provides options to use when creating a fetch options builder.
type HeaderKeyType ¶ added in v0.4.5
type HeaderKeyType int
HeaderKeyType is the type for the header key
const ( // HeaderKey is the key which headers will be added to in the request context HeaderKey HeaderKeyType = iota // RoutePrefixV1 is the v1 prefix for all coordinator routes RoutePrefixV1 = "/api/v1" )
type M3AggServiceOptions ¶ added in v0.7.0
type M3AggServiceOptions struct { MaxAggregationWindowSize time.Duration WarmupDuration time.Duration }
M3AggServiceOptions contains the service options that are specific to the M3Agg service.
type SearchHandler ¶
type SearchHandler struct {
// contains filtered or unexported fields
}
SearchHandler represents a handler for the search endpoint
func (*SearchHandler) ServeHTTP ¶
func (h *SearchHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type ServiceNameAndDefaults ¶ added in v0.14.0
type ServiceNameAndDefaults struct { ServiceName string Defaults []ServiceOptionsDefault }
ServiceNameAndDefaults is the params used when identifying a service and it's service option defaults.
type ServiceOptions ¶ added in v0.7.0
type ServiceOptions struct { ServiceName string ServiceEnvironment string ServiceZone string M3Agg *M3AggServiceOptions DryRun bool Force bool }
ServiceOptions are the options for Service.
func NewServiceOptions ¶ added in v0.7.0
func NewServiceOptions( service ServiceNameAndDefaults, headers http.Header, m3AggOpts *M3AggServiceOptions, ) ServiceOptions
NewServiceOptions returns a ServiceOptions based on the provided values.
func (*ServiceOptions) ServiceID ¶ added in v0.7.0
func (opts *ServiceOptions) ServiceID() services.ServiceID
ServiceID constructs a cluster services ID from the options.
func (*ServiceOptions) Validate ¶ added in v0.7.0
func (opts *ServiceOptions) Validate() error
Validate ensures the service options are valid.
type ServiceOptionsDefault ¶ added in v0.14.0
type ServiceOptionsDefault func(o ServiceOptions) ServiceOptions
ServiceOptionsDefault is a default to apply to service options.
func WithDefaultServiceEnvironment ¶ added in v0.14.0
func WithDefaultServiceEnvironment(env string) ServiceOptionsDefault
WithDefaultServiceEnvironment returns the default service environment.
func WithDefaultServiceZone ¶ added in v0.14.0
func WithDefaultServiceZone(zone string) ServiceOptionsDefault
WithDefaultServiceZone returns the default service zone.