Documentation
¶
Index ¶
- func EdgeID(from, to string, kind EdgeKind, blocking bool) string
- func FormatMilliseconds(value float64) float64
- func MarshalCanonical(mdl ResilienceModel) ([]byte, error)
- func WriteToFile(path string, mdl ResilienceModel) error
- type BackoffPolicy
- type CircuitBreakerPolicy
- type CommonMetadata
- type Edge
- type EdgeKind
- type EdgeMetadata
- type Endpoint
- type EndpointMetadata
- type LatencySummary
- type Metadata
- type ObservedEdge
- type Placement
- type PolicyScope
- type ResilienceModel
- type ResiliencePolicy
- type RetryPolicy
- type SchemaRef
- type Service
- type ServiceMetadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatMilliseconds ¶ added in v0.3.0
func MarshalCanonical ¶
func MarshalCanonical(mdl ResilienceModel) ([]byte, error)
func WriteToFile ¶
func WriteToFile(path string, mdl ResilienceModel) error
Types ¶
type BackoffPolicy ¶ added in v0.3.0
type BackoffPolicy struct {
InitialMS *int `json:"initial_ms,omitempty" yaml:"initial_ms,omitempty"`
MaxMS *int `json:"max_ms,omitempty" yaml:"max_ms,omitempty"`
Multiplier *float64 `json:"multiplier,omitempty" yaml:"multiplier,omitempty"`
Jitter string `json:"jitter,omitempty" yaml:"jitter,omitempty"`
}
func (BackoffPolicy) IsZero ¶ added in v0.3.0
func (p BackoffPolicy) IsZero() bool
func (*BackoffPolicy) Normalize ¶ added in v0.3.0
func (p *BackoffPolicy) Normalize()
type CircuitBreakerPolicy ¶ added in v0.3.0
type CircuitBreakerPolicy struct {
Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
MaxPendingRequests *int `json:"max_pending_requests,omitempty" yaml:"max_pending_requests,omitempty"`
MaxRequests *int `json:"max_requests,omitempty" yaml:"max_requests,omitempty"`
MaxConnections *int `json:"max_connections,omitempty" yaml:"max_connections,omitempty"`
Consecutive5xx *int `json:"consecutive_5xx,omitempty" yaml:"consecutive_5xx,omitempty"`
IntervalMS *int `json:"interval_ms,omitempty" yaml:"interval_ms,omitempty"`
BaseEjectionTimeMS *int `json:"base_ejection_time_ms,omitempty" yaml:"base_ejection_time_ms,omitempty"`
}
func (CircuitBreakerPolicy) IsZero ¶ added in v0.3.0
func (p CircuitBreakerPolicy) IsZero() bool
func (*CircuitBreakerPolicy) Normalize ¶ added in v0.3.0
func (p *CircuitBreakerPolicy) Normalize()
type CommonMetadata ¶ added in v0.3.0
type CommonMetadata struct {
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`
SLORefs []string `json:"slo_refs,omitempty" yaml:"slo_refs,omitempty"`
}
func (CommonMetadata) IsZero ¶ added in v0.3.0
func (m CommonMetadata) IsZero() bool
func (*CommonMetadata) Normalize ¶ added in v0.3.0
func (m *CommonMetadata) Normalize()
type Edge ¶
type Edge struct {
ID string `json:"id,omitempty"`
From string `json:"from"`
To string `json:"to"`
Kind EdgeKind `json:"kind"`
Blocking bool `json:"blocking"`
Metadata *EdgeMetadata `json:"metadata,omitempty"`
Resilience *ResiliencePolicy `json:"resilience,omitempty"`
Observed *ObservedEdge `json:"observed,omitempty"`
PolicyScope *PolicyScope `json:"policy_scope,omitempty"`
}
type EdgeMetadata ¶ added in v0.3.0
type EdgeMetadata struct {
CommonMetadata
Weight *float64 `json:"weight,omitempty" yaml:"weight,omitempty"`
}
func (EdgeMetadata) IsZero ¶ added in v0.3.0
func (m EdgeMetadata) IsZero() bool
func (*EdgeMetadata) Normalize ¶ added in v0.3.0
func (m *EdgeMetadata) Normalize()
type EndpointMetadata ¶ added in v0.3.0
type EndpointMetadata struct {
CommonMetadata
Weight *float64 `json:"weight,omitempty" yaml:"weight,omitempty"`
}
func (EndpointMetadata) IsZero ¶ added in v0.3.0
func (m EndpointMetadata) IsZero() bool
func (*EndpointMetadata) Normalize ¶ added in v0.3.0
func (m *EndpointMetadata) Normalize()
type LatencySummary ¶ added in v0.3.0
type LatencySummary struct {
P50 *float64 `json:"p50,omitempty" yaml:"p50,omitempty"`
P90 *float64 `json:"p90,omitempty" yaml:"p90,omitempty"`
P95 *float64 `json:"p95,omitempty" yaml:"p95,omitempty"`
P99 *float64 `json:"p99,omitempty" yaml:"p99,omitempty"`
}
func (LatencySummary) IsZero ¶ added in v0.3.0
func (s LatencySummary) IsZero() bool
func (*LatencySummary) Normalize ¶ added in v0.3.0
func (s *LatencySummary) Normalize()
type ObservedEdge ¶ added in v0.3.0
type ObservedEdge struct {
LatencyMS *LatencySummary `json:"latency_ms,omitempty" yaml:"latency_ms,omitempty"`
ErrorRate *float64 `json:"error_rate,omitempty" yaml:"error_rate,omitempty"`
}
func (ObservedEdge) IsZero ¶ added in v0.3.0
func (o ObservedEdge) IsZero() bool
func (*ObservedEdge) Normalize ¶ added in v0.3.0
func (o *ObservedEdge) Normalize()
type PolicyScope ¶ added in v0.3.0
type PolicyScope struct {
SourceEndpointID string `json:"source_endpoint_id,omitempty" yaml:"source_endpoint_id,omitempty"`
SourceRoute string `json:"source_route,omitempty" yaml:"source_route,omitempty"`
Method string `json:"method,omitempty" yaml:"method,omitempty"`
Operation string `json:"operation,omitempty" yaml:"operation,omitempty"`
}
func (PolicyScope) IsZero ¶ added in v0.3.0
func (s PolicyScope) IsZero() bool
func (*PolicyScope) Normalize ¶ added in v0.3.0
func (s *PolicyScope) Normalize()
type ResilienceModel ¶
type ResilienceModel struct {
Services []Service `json:"services"`
Edges []Edge `json:"edges"`
Endpoints []Endpoint `json:"endpoints"`
Metadata Metadata `json:"metadata"`
}
func LoadFromFile ¶
func LoadFromFile(path string) (ResilienceModel, error)
func ParseJSON ¶
func ParseJSON(raw []byte) (ResilienceModel, error)
func (*ResilienceModel) SortDeterministic ¶
func (m *ResilienceModel) SortDeterministic()
func (ResilienceModel) ValidateSemantic ¶
func (m ResilienceModel) ValidateSemantic() error
type ResiliencePolicy ¶ added in v0.3.0
type ResiliencePolicy struct {
RequestTimeoutMS *int `json:"request_timeout_ms,omitempty" yaml:"request_timeout_ms,omitempty"`
PerTryTimeoutMS *int `json:"per_try_timeout_ms,omitempty" yaml:"per_try_timeout_ms,omitempty"`
Retry *RetryPolicy `json:"retry,omitempty" yaml:"retry,omitempty"`
CircuitBreaker *CircuitBreakerPolicy `json:"circuit_breaker,omitempty" yaml:"circuit_breaker,omitempty"`
}
func (ResiliencePolicy) IsZero ¶ added in v0.3.0
func (p ResiliencePolicy) IsZero() bool
func (*ResiliencePolicy) Normalize ¶ added in v0.3.0
func (p *ResiliencePolicy) Normalize()
type RetryPolicy ¶ added in v0.3.0
type RetryPolicy struct {
MaxAttempts *int `json:"max_attempts,omitempty" yaml:"max_attempts,omitempty"`
BudgetCap *float64 `json:"budget_cap,omitempty" yaml:"budget_cap,omitempty"`
RetryOn []string `json:"retry_on,omitempty" yaml:"retry_on,omitempty"`
Backoff *BackoffPolicy `json:"backoff,omitempty" yaml:"backoff,omitempty"`
}
func (RetryPolicy) IsZero ¶ added in v0.3.0
func (p RetryPolicy) IsZero() bool
func (*RetryPolicy) Normalize ¶ added in v0.3.0
func (p *RetryPolicy) Normalize()
type Service ¶
type Service struct {
ID string `json:"id"`
Name string `json:"name"`
Replicas int `json:"replicas"`
Metadata *ServiceMetadata `json:"metadata,omitempty"`
}
type ServiceMetadata ¶ added in v0.3.0
type ServiceMetadata struct {
CommonMetadata
FailureEligible *bool `json:"failure_eligible,omitempty" yaml:"failure_eligible,omitempty"`
Placements []Placement `json:"placements,omitempty" yaml:"placements,omitempty"`
}
func (ServiceMetadata) IsZero ¶ added in v0.3.0
func (m ServiceMetadata) IsZero() bool
func (*ServiceMetadata) Normalize ¶ added in v0.3.0
func (m *ServiceMetadata) Normalize()
Click to show internal directories.
Click to hide internal directories.