Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CentralizedManifest ¶ added in v1.0.0
type CentralizedManifest struct { Default *CentralizedRule Rules []*CentralizedRule Index map[string]*CentralizedRule // contains filtered or unexported fields }
CentralizedManifest represents a full sampling ruleset, with a list of custom rules and default values for incoming requests that do not match any of the provided rules.
type CentralizedReservoir ¶ added in v1.0.0
type CentralizedReservoir struct {
// contains filtered or unexported fields
}
CentralizedReservoir is a reservoir distributed among all running instances of the SDK
func (*CentralizedReservoir) Take ¶ added in v1.0.0
func (r *CentralizedReservoir) Take(now int64) bool
Take consumes quota from reservoir, if any remains, and returns true. False otherwise.
type CentralizedRule ¶ added in v1.0.0
type CentralizedRule struct { // Common sampling rule properties *Properties // contains filtered or unexported fields }
CentralizedRule represents a centralized sampling rule
func (*CentralizedRule) AppliesTo ¶ added in v1.0.0
func (r *CentralizedRule) AppliesTo(request *Request) bool
AppliesTo returns true if the sampling rule matches against given sampling request. False Otherwise. Assumes lock is already held, if required.
func (*CentralizedRule) Sample ¶ added in v1.0.0
func (r *CentralizedRule) Sample() *Decision
Sample returns true if the request should be sampled. False otherwise.
type CentralizedStrategy ¶ added in v1.0.0
type CentralizedStrategy struct {
// contains filtered or unexported fields
}
CentralizedStrategy is an implementation of SamplingStrategy. It performs quota-based sampling with X-Ray acting as arbitrator for clients. It will fall back to LocalizedStrategy if sampling rules are not available from X-Ray APIS.
func NewCentralizedStrategy ¶ added in v1.0.0
func NewCentralizedStrategy() (*CentralizedStrategy, error)
NewCentralizedStrategy creates a centralized sampling strategy with a fallback on local default rule.
func NewCentralizedStrategyWithFilePath ¶ added in v1.0.0
func NewCentralizedStrategyWithFilePath(fp string) (*CentralizedStrategy, error)
NewCentralizedStrategyWithFilePath creates a centralized sampling strategy with a fallback on local rules located at the given file path.
func NewCentralizedStrategyWithJSONBytes ¶ added in v1.0.0
func NewCentralizedStrategyWithJSONBytes(b []byte) (*CentralizedStrategy, error)
NewCentralizedStrategyWithJSONBytes creates a centralized sampling strategy with a fallback on local rules specified in the given byte slice.
func (*CentralizedStrategy) LoadDaemonEndpoints ¶ added in v1.0.0
func (ss *CentralizedStrategy) LoadDaemonEndpoints(endpoints *daemoncfg.DaemonEndpoints)
LoadDaemonEndpoints configures proxy with the provided endpoint.
func (*CentralizedStrategy) ShouldTrace ¶ added in v1.0.0
func (ss *CentralizedStrategy) ShouldTrace(request *Request) *Decision
ShouldTrace determines whether a request should be sampled. It matches the given parameters against a list of known rules and uses the matched rule's values to make a decision.
type Decision ¶ added in v1.0.0
Decision contains sampling decision and the rule matched for an incoming request
type LocalizedStrategy ¶
type LocalizedStrategy struct {
// contains filtered or unexported fields
}
LocalizedStrategy makes trace sampling decisions based on a set of rules provided in a local JSON file. Trace sampling decisions are made by the root node in the trace. If a sampling decision is made by the root service, it will be passed to downstream services through the trace header.
func NewLocalizedStrategy ¶
func NewLocalizedStrategy() (*LocalizedStrategy, error)
NewLocalizedStrategy initializes an instance of LocalizedStrategy with the default trace sampling rules. The default rules sample the first request per second, and 5% of requests thereafter.
func NewLocalizedStrategyFromFilePath ¶
func NewLocalizedStrategyFromFilePath(fp string) (*LocalizedStrategy, error)
NewLocalizedStrategyFromFilePath initializes an instance of LocalizedStrategy using a custom ruleset found at the filepath fp.
func NewLocalizedStrategyFromJSONBytes ¶
func NewLocalizedStrategyFromJSONBytes(b []byte) (*LocalizedStrategy, error)
NewLocalizedStrategyFromJSONBytes initializes an instance of LocalizedStrategy using a custom ruleset provided in the json bytes b.
func (*LocalizedStrategy) ShouldTrace ¶
func (lss *LocalizedStrategy) ShouldTrace(rq *Request) *Decision
ShouldTrace consults the LocalizedStrategy's rule set to determine if the given request should be traced or not.
type Properties ¶ added in v1.0.0
type Properties struct { ServiceName string `json:"service_name"` Host string `json:"host"` HTTPMethod string `json:"http_method"` URLPath string `json:"url_path"` FixedTarget int64 `json:"fixed_target"` Rate float64 `json:"rate"` }
Properties is the base set of properties that define a sampling rule.
func (*Properties) AppliesTo ¶ added in v1.0.0
func (p *Properties) AppliesTo(host, path, method string) bool
AppliesTo returns true if the sampling rule matches against given parameters. False Otherwise. Assumes lock is already held, if required.
type Reservoir ¶
type Reservoir struct {
// contains filtered or unexported fields
}
Reservoir is a reservoir local to the running instance of the SDK
type Rule ¶
type Rule struct { // Common sampling rule properties *Properties // contains filtered or unexported fields }
Rule is local sampling rule.
type RuleManifest ¶
type RuleManifest struct { Version int `json:"version"` Default *Rule `json:"default"` Rules []*Rule `json:"rules"` }
RuleManifest represents a full sampling ruleset, with a list of custom rules and default values for incoming requests that do not match any of the provided rules.
func ManifestFromFilePath ¶
func ManifestFromFilePath(fp string) (*RuleManifest, error)
ManifestFromFilePath creates a sampling ruleset from a given filepath fp.
func ManifestFromJSONBytes ¶
func ManifestFromJSONBytes(b []byte) (*RuleManifest, error)
ManifestFromJSONBytes creates a sampling ruleset from given JSON bytes b.