strategy/sampling/xray_service_api.go (56 lines of code) (raw):
// Types in this file are modified from:
// https://github.com/aws/aws-sdk-go/blob/v1.55.6/service/xray/api.go
package sampling
type SamplingStatisticsDocument struct {
// The number of requests recorded with borrowed reservoir quota.
BorrowCount *int64 `type:"integer"`
// A unique identifier for the service in hexadecimal.
//
// ClientID is a required field
ClientID *string `min:"24" type:"string" required:"true"`
// The number of requests that matched the rule.
//
// RequestCount is a required field
RequestCount *int64 `type:"integer" required:"true"`
// The name of the sampling rule.
//
// RuleName is a required field
RuleName *string `min:"1" type:"string" required:"true"`
// The number of requests recorded.
//
// SampledCount is a required field
SampledCount *int64 `type:"integer" required:"true"`
// The current time.
//
// Timestamp is a required field
Timestamp *int64 `type:"integer" required:"true"`
}
// A sampling rule that services use to decide whether to instrument a request.
// Rule fields can match properties of the service, or properties of a request.
// The service can ignore rules that don't match its properties.
type SamplingRule struct {
// Matches attributes derived from the request.
Attributes map[string]*string `json:"Attributes"`
// The percentage of matching requests to instrument, after the reservoir is
// exhausted.
//
// FixedRate is a required field
FixedRate *float64 `json:"FixedRate" required:"true"`
// Matches the HTTP method of a request.
//
// HTTPMethod is a required field
HTTPMethod *string `json:"HTTPMethod" required:"true"`
// Matches the hostname from a request URL.
//
// Host is a required field
Host *string `json:"Host" required:"true"`
// The priority of the sampling rule.
//
// Priority is a required field
Priority *int64 `min:"1" json:"Priority" required:"true"`
// A fixed number of matching requests to instrument per second, prior to applying
// the fixed rate. The reservoir is not used directly by services, but applies
// to all services using the rule collectively.
//
// ReservoirSize is a required field
ReservoirSize *int64 `json:"ReservoirSize" required:"true"`
// Matches the ARN of the Amazon Web Services resource on which the service
// runs.
//
// ResourceARN is a required field
ResourceARN *string `json:"ResourceARN" required:"true"`
// The ARN of the sampling rule. Specify a rule by either name or ARN, but not
// both.
RuleARN *string `json:"RuleARN"`
// The name of the sampling rule. Specify a rule by either name or ARN, but
// not both.
RuleName *string `min:"1" json:"RuleName"`
// Matches the name that the service uses to identify itself in segments.
//
// ServiceName is a required field
ServiceName *string `json:"ServiceName" required:"true"`
// Matches the origin that the service uses to identify its type in segments.
//
// ServiceType is a required field
ServiceType *string `json:"ServiceType" required:"true"`
// Matches the path from a request URL.
//
// URLPath is a required field
URLPath *string `json:"URLPath" required:"true"`
// The version of the sampling rule format (1).
//
// Version is a required field
Version *int64 `min:"1" json:"Version" required:"true"`
}
// A SamplingRule (https://docs.aws.amazon.com/xray/latest/api/API_SamplingRule.html)
// and its metadata.
type SamplingRuleRecord struct {
// When the rule was created.
CreatedAt *float64 `json:"CreatedAt"`
// When the rule was last modified.
ModifiedAt *float64 `json:"ModifiedAt"`
// The sampling rule.
SamplingRule *SamplingRule `json:"SamplingRule"`
}
type GetSamplingTargetsOutput struct {
// The last time a user changed the sampling rule configuration. If the sampling
// rule configuration changed since the service last retrieved it, the service
// should call GetSamplingRules (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html)
// to get the latest version.
LastRuleModification *float64 `json:"LastRuleModification"`
// Updated rules that the service should use to sample requests.
SamplingTargetDocuments []*SamplingTargetDocument `json:"SamplingTargetDocuments"`
// Information about SamplingStatisticsDocument (https://docs.aws.amazon.com/xray/latest/api/API_SamplingStatisticsDocument.html)
// that X-Ray could not process.
UnprocessedStatistics []*UnprocessedStatistics `json:"UnprocessedStatistics"`
}
// Temporary changes to a sampling rule configuration. To meet the global sampling
// target for a rule, X-Ray calculates a new reservoir for each service based
// on the recent sampling results of all services that called GetSamplingTargets
// (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html).
type SamplingTargetDocument struct {
// The percentage of matching requests to instrument, after the reservoir is
// exhausted.
FixedRate *float64 `json:"FixedRate"`
// The number of seconds for the service to wait before getting sampling targets
// again.
Interval *int64 `json:"Interval"`
// The number of requests per second that X-Ray allocated for this service.
ReservoirQuota *int64 `json:"ReservoirQuota"`
// When the reservoir quota expires.
ReservoirQuotaTTL *float64 `json:"ReservoirQuotaTTL"`
// The name of the sampling rule.
RuleName *string `json:"RuleName"`
}
// Sampling statistics from a call to GetSamplingTargets (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html)
// that X-Ray could not process.
type UnprocessedStatistics struct {
// The error code.
ErrorCode *string `json:"ErrorCode"`
// The error message.
Message *string `json:"Message"`
// The name of the sampling rule.
RuleName *string `json:"RuleName"`
}
type GetSamplingTargetsInput struct {
// Information about rules that the service is using to sample requests.
//
// SamplingStatisticsDocuments is a required field
SamplingStatisticsDocuments []*SamplingStatisticsDocument `type:"list" required:"true"`
}
type GetSamplingRulesInput struct {
// Pagination token.
NextToken *string `type:"string"`
}
type GetSamplingRulesOutput struct {
// Pagination token.
NextToken *string `json:"NextToken"`
// Rule definitions and metadata.
SamplingRuleRecords []*SamplingRuleRecord `json:"SamplingRuleRecords"`
}