config

package
v0.0.0-...-fe632b3 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2020 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package config is a generated protocol buffer package.

The `redisquota` adapter can be used to support Istio's quota management system. It depends on a Redis server to store quota values.

This adapter supports the [quota template](https://istio.io/docs/reference/config/policy-and-telemetry/templates/quota/).

It is generated from these files:

mixer/adapter/redisquota/config/config.proto

It has these top-level messages:

Params

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthConfig = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowConfig   = fmt.Errorf("proto: integer overflow")
)
View Source
var Params_QuotaAlgorithm_name = map[int32]string{
	0: "FIXED_WINDOW",
	1: "ROLLING_WINDOW",
}
View Source
var Params_QuotaAlgorithm_value = map[string]int32{
	"FIXED_WINDOW":   0,
	"ROLLING_WINDOW": 1,
}

Functions

This section is empty.

Types

type Params

type Params struct {
	// The set of known quotas. At least one quota configuration is required
	Quotas []Params_Quota `protobuf:"bytes,1,rep,name=quotas" json:"quotas"`
	// Redis connection string <hostname>:<port number>
	// ex) localhost:6379
	RedisServerUrl string `protobuf:"bytes,2,opt,name=redis_server_url,json=redisServerUrl,proto3" json:"redis_server_url,omitempty"`
	// Maximum number of idle connections to redis
	// Default is 10 connections per every CPU as reported by runtime.NumCPU.
	ConnectionPoolSize int64 `protobuf:"varint,3,opt,name=connection_pool_size,json=connectionPoolSize,proto3" json:"connection_pool_size,omitempty"`
}

redisquota adapter supports the rate limit quota using either fixed or rolling window algorithm. And it is using Redis as a shared data storage.

Example configuration:

```yaml redisServerUrl: localhost:6379 connectionPoolSize: 10 quotas:

  • name: requestcount.quota.istio-system maxAmount: 50 validDuration: 60s bucketDuration: 1s rateLimitAlgorithm: ROLLING_WINDOW overrides:
  • dimensions: destination: ratings source: reviews maxAmount: 12
  • dimensions: destination: reviews maxAmount: 5

```

func (*Params) Descriptor

func (*Params) Descriptor() ([]byte, []int)

func (*Params) Marshal

func (m *Params) Marshal() (dAtA []byte, err error)

func (*Params) MarshalTo

func (m *Params) MarshalTo(dAtA []byte) (int, error)

func (*Params) ProtoMessage

func (*Params) ProtoMessage()

func (*Params) Reset

func (m *Params) Reset()

func (*Params) Size

func (m *Params) Size() (n int)

func (*Params) String

func (this *Params) String() string

func (*Params) Unmarshal

func (m *Params) Unmarshal(dAtA []byte) error

type Params_Override

type Params_Override struct {
	// The specific dimensions for which this override applies.
	// String representation of instance dimensions is used to check against configured dimensions.
	// dimensions should not be empty
	Dimensions map[string]string `` /* 144-byte string literal not displayed */
	// The upper limit for this quota override.
	// This value should be bigger than 0
	MaxAmount int64 `protobuf:"varint,2,opt,name=max_amount,json=maxAmount,proto3" json:"max_amount,omitempty"`
}

func (*Params_Override) Descriptor

func (*Params_Override) Descriptor() ([]byte, []int)

func (*Params_Override) GetDimensions

func (m *Params_Override) GetDimensions() map[string]string

func (*Params_Override) GetMaxAmount

func (m *Params_Override) GetMaxAmount() int64

func (*Params_Override) Marshal

func (m *Params_Override) Marshal() (dAtA []byte, err error)

func (*Params_Override) MarshalTo

func (m *Params_Override) MarshalTo(dAtA []byte) (int, error)

func (*Params_Override) ProtoMessage

func (*Params_Override) ProtoMessage()

func (*Params_Override) Reset

func (m *Params_Override) Reset()

func (*Params_Override) Size

func (m *Params_Override) Size() (n int)

func (*Params_Override) String

func (this *Params_Override) String() string

func (*Params_Override) Unmarshal

func (m *Params_Override) Unmarshal(dAtA []byte) error

type Params_Quota

type Params_Quota struct {
	// The name of the quota
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The upper limit for this quota. max_amount should be bigger than 0
	MaxAmount int64 `protobuf:"varint,2,opt,name=max_amount,json=maxAmount,proto3" json:"max_amount,omitempty"`
	// The amount of time allocated quota remains valid before it is
	// automatically released. This is only meaningful for rate limit quotas.
	// value should be 0 < valid_duration
	ValidDuration time.Duration `protobuf:"bytes,3,opt,name=valid_duration,json=validDuration,stdduration" json:"valid_duration"`
	// bucket_duration will be ignored if rate_limit_algorithm is FIXED_WINDOW
	// value should be 0 < bucket_duration < valid_duration
	BucketDuration time.Duration `protobuf:"bytes,4,opt,name=bucket_duration,json=bucketDuration,stdduration" json:"bucket_duration"`
	// Quota management algorithm. The default value is FIXED_WINDOW
	RateLimitAlgorithm Params_QuotaAlgorithm `` /* 171-byte string literal not displayed */
	// Overrides associated with this quota.
	// The first matching override is applied.
	Overrides []*Params_Override `protobuf:"bytes,6,rep,name=overrides" json:"overrides,omitempty"`
}

func (*Params_Quota) Descriptor

func (*Params_Quota) Descriptor() ([]byte, []int)

func (*Params_Quota) GetBucketDuration

func (m *Params_Quota) GetBucketDuration() time.Duration

func (*Params_Quota) GetMaxAmount

func (m *Params_Quota) GetMaxAmount() int64

func (*Params_Quota) GetName

func (m *Params_Quota) GetName() string

func (*Params_Quota) GetOverrides

func (m *Params_Quota) GetOverrides() []*Params_Override

func (*Params_Quota) GetRateLimitAlgorithm

func (m *Params_Quota) GetRateLimitAlgorithm() Params_QuotaAlgorithm

func (*Params_Quota) GetValidDuration

func (m *Params_Quota) GetValidDuration() time.Duration

func (*Params_Quota) Marshal

func (m *Params_Quota) Marshal() (dAtA []byte, err error)

func (*Params_Quota) MarshalTo

func (m *Params_Quota) MarshalTo(dAtA []byte) (int, error)

func (*Params_Quota) ProtoMessage

func (*Params_Quota) ProtoMessage()

func (*Params_Quota) Reset

func (m *Params_Quota) Reset()

func (*Params_Quota) Size

func (m *Params_Quota) Size() (n int)

func (*Params_Quota) String

func (this *Params_Quota) String() string

func (*Params_Quota) Unmarshal

func (m *Params_Quota) Unmarshal(dAtA []byte) error

type Params_QuotaAlgorithm

type Params_QuotaAlgorithm int32

Algorithms for rate-limiting:

const (
	// FIXED_WINDOW The fixed window approach can allow 2x peak specified rate, whereas the rolling-window doesn't.
	FIXED_WINDOW Params_QuotaAlgorithm = 0
	// ROLLING_WINDOW The rolling window algorithm's additional precision comes at the cost of increased redis resource usage.
	ROLLING_WINDOW Params_QuotaAlgorithm = 1
)

func (Params_QuotaAlgorithm) EnumDescriptor

func (Params_QuotaAlgorithm) EnumDescriptor() ([]byte, []int)

func (Params_QuotaAlgorithm) String

func (x Params_QuotaAlgorithm) String() string

Jump to

Keyboard shortcuts

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