config

package
v1.8.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2026 License: Apache-2.0 Imports: 28 Imported by: 0

Documentation

Overview

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

package config providers configuration type and load configuration logic

Package config providers configuration type and load configuration logic

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2019-2026 vdaas.org vald team <vald@vdaas.org>

Licensed under the Apache License, Version 2.0 (the "License"); You may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetActualValue

func GetActualValue[T ~string](val T) (res T)

GetActualValue returns the environment variable value if the val has prefix and suffix "_", if actual value start with file://{path} the return value will read from file otherwise the val will directly return.

func GetActualValues

func GetActualValues[T ~string](vals []T) []T

GetActualValues returns the environment variable values if the vals has string slice that has prefix and suffix "_", if actual value start with file://{path} the return value will read from file otherwise the val will directly return.

func Merge added in v1.7.11

func Merge[T any](objs ...T) (dst T, err error)

Merge merges multiple objects to one object. the value of each field is prioritized the value of last index of `objs`. if the length of `objs` is zero, it returns initial value of type T.

func Read

func Read[T any](path string, cfg T) (err error)

Read returns config struct or error when decoding the configuration file to actually *Config struct.

func ToRawYaml

func ToRawYaml(data any) string

ToRawYaml writes the YAML encoding of v to the stream and returns the string written to stream.

Types

type AgentSidecar added in v0.0.38

type AgentSidecar struct {
	// BlobStorage represents the blob storage configuration.
	BlobStorage *Blob `json:"blob_storage" yaml:"blob_storage"`
	// Client represents the client configuration.
	Client *Client `json:"client" yaml:"client"`
	// RestoreBackoff represents the restore backoff configuration.
	RestoreBackoff *Backoff `json:"restore_backoff" yaml:"restore_backoff"`
	// Compress represents the compress configuration.
	Compress *CompressCore `json:"compress" yaml:"compress"`
	// Filename represents the filename.
	Filename string `json:"filename" yaml:"filename"`
	// PostStopTimeout represents the post stop timeout duration.
	PostStopTimeout string `json:"post_stop_timeout" yaml:"post_stop_timeout"`
	// Mode represents the mode.
	Mode string `json:"mode" yaml:"mode"`
	// FilenameSuffix represents the filename suffix.
	FilenameSuffix string `json:"filename_suffix" yaml:"filename_suffix"`
	// AutoBackupDuration represents the auto backup duration.
	AutoBackupDuration string `json:"auto_backup_duration" yaml:"auto_backup_duration"`
	// WatchDir represents the watch directory.
	WatchDir string `json:"watch_dir" yaml:"watch_dir"`
	// AutoBackupEnabled enables auto backup.
	AutoBackupEnabled bool `json:"auto_backup_enabled" yaml:"auto_backup_enabled"`
	// RestoreBackoffEnabled enables restore backoff.
	RestoreBackoffEnabled bool `json:"restore_backoff_enabled" yaml:"restore_backoff_enabled"`
	// WatchEnabled enables watch.
	WatchEnabled bool `json:"watch_enabled" yaml:"watch_enabled"`
}

AgentSidecar represents the configuration for the agent sidecar.

func (*AgentSidecar) Bind added in v0.0.38

func (s *AgentSidecar) Bind() *AgentSidecar

Bind binds the actual data from the AgentSidecar receiver fields.

type Backoff

type Backoff struct {
	// InitialDuration represents the initial duration for backoff.
	InitialDuration string `json:"initial_duration" yaml:"initial_duration"`
	// BackoffTimeLimit represents the maximum duration for backoff time limit.
	BackoffTimeLimit string `json:"backoff_time_limit" yaml:"backoff_time_limit"`
	// MaximumDuration represents the maximum duration for backoff.
	MaximumDuration string `json:"maximum_duration" yaml:"maximum_duration"`
	// JitterLimit represents the jitter limit for randomizing delay.
	JitterLimit string `json:"jitter_limit" yaml:"jitter_limit"`
	// BackoffFactor represents the backoff factor.
	BackoffFactor float64 `json:"backoff_factor" yaml:"backoff_factor"`
	// RetryCount represents the retry count.
	RetryCount int `json:"retry_count" yaml:"retry_count"`
	// EnableErrorLog enables error logging.
	EnableErrorLog bool `json:"enable_error_log" yaml:"enable_error_log"`
}

Backoff represents the configuration for the internal backoff package.

func (*Backoff) Bind

func (b *Backoff) Bind() *Backoff

Bind binds the actual data from the Backoff receiver fields.

func (*Backoff) Opts

func (b *Backoff) Opts() []backoff.Option

Opts creates and returns the slice with the functional options for the internal backoff package.

type BackupManager

type BackupManager struct {
	// Client represents the gRPC client configuration.
	Client *GRPCClient `json:"client" yaml:"client"`
}

BackupManager represents the configuration for backup manager.

func (*BackupManager) Bind

func (b *BackupManager) Bind() *BackupManager

Bind binds the actual data from the BackupManager receiver fields.

type BenchmarkDataset added in v1.7.11

type BenchmarkDataset struct {
	// Range represents the range configuration.
	Range *BenchmarkDatasetRange `json:"range,omitempty"`
	// Name represents the dataset name.
	Name string `json:"name,omitempty"`
	// Group represents the dataset group.
	Group string `json:"group,omitempty"`
	// URL represents the dataset URL.
	URL string `json:"url,omitempty"`
	// Indexes represents the number of indexes.
	Indexes int `json:"indexes,omitempty"`
}

BenchmarkDataset defines the desired state of BenchmarkDateset.

func (*BenchmarkDataset) Bind added in v1.7.11

type BenchmarkDatasetRange added in v1.7.11

type BenchmarkDatasetRange struct {
	// Start represents the start index.
	Start int `json:"start,omitempty"`
	// End represents the end index.
	End int `json:"end,omitempty"`
}

BenchmarkDatasetRange defines the desired state of BenchmarkDatesetRange.

type BenchmarkJob added in v1.7.11

type BenchmarkJob struct {
	// RemoveConfig represents the remove configuration.
	RemoveConfig *RemoveConfig `json:"remove_config,omitempty" yaml:"remove_config"`
	// Dataset represents the dataset configuration.
	Dataset *BenchmarkDataset `json:"dataset,omitempty" yaml:"dataset"`
	// ClientConfig represents the client configuration.
	ClientConfig *GRPCClient `json:"client_config,omitempty" yaml:"client_config"`
	// ObjectConfig represents the object configuration.
	ObjectConfig *ObjectConfig `json:"object_config,omitempty" yaml:"object_config"`
	// Target represents the target configuration.
	Target *BenchmarkTarget `json:"target,omitempty" yaml:"target"`
	// InsertConfig represents the insert configuration.
	InsertConfig *InsertConfig `json:"insert_config,omitempty" yaml:"insert_config"`
	// UpdateConfig represents the update configuration.
	UpdateConfig *UpdateConfig `json:"update_config,omitempty" yaml:"update_config"`
	// UpsertConfig represents the upsert configuration.
	UpsertConfig *UpsertConfig `json:"upsert_config,omitempty" yaml:"upsert_config"`
	// SearchConfig represents the search configuration.
	SearchConfig *SearchConfig `json:"search_config,omitempty" yaml:"search_config"`
	// JobType represents the job type.
	JobType string `json:"job_type,omitempty" yaml:"job_type"`
	// BeforeJobName represents the before job name.
	BeforeJobName string `json:"before_job_name,omitempty" yaml:"before_job_name"`
	// BeforeJobNamespace represents the before job namespace.
	BeforeJobNamespace string `json:"before_job_namespace,omitempty" yaml:"before_job_namespace"`
	// Rules represents the list of rules.
	Rules []*BenchmarkJobRule `json:"rules,omitempty" yaml:"rules"`
	// Repetition represents the repetition count.
	Repetition int `json:"repetition,omitempty" yaml:"repetition"`
	// Replica represents the replica count.
	Replica int `json:"replica,omitempty" yaml:"replica"`
	// RPS represents the requests per second.
	RPS int `json:"rps,omitempty" yaml:"rps"`
	// ConcurrencyLimit represents the concurrency limit.
	ConcurrencyLimit int `json:"concurrency_limit,omitempty" yaml:"concurrency_limit"`
}

BenchmarkJob represents the configuration for the internal benchmark search job.

func (*BenchmarkJob) Bind added in v1.7.11

func (b *BenchmarkJob) Bind() *BenchmarkJob

Bind binds the actual data from the Job receiver fields.

type BenchmarkJobImageInfo added in v1.7.11

type BenchmarkJobImageInfo struct {
	// Repository represents the image repository.
	Repository string `info:"repository" json:"repository,omitempty" yaml:"repository"`
	// Tag represents the image tag.
	Tag string `info:"tag" json:"tag,omitempty" yaml:"tag"`
	// PullPolicy represents the image pull policy.
	PullPolicy string `info:"pull_policy" json:"pull_policy,omitempty" yaml:"pull_policy"`
}

BenchmarkJobImageInfo represents the docker image information for benchmark job.

func (*BenchmarkJobImageInfo) Bind added in v1.7.11

Bind binds the actual data from the BenchmarkJobImageInfo receiver fields.

type BenchmarkJobRule added in v1.7.11

type BenchmarkJobRule struct {
	// Name represents the rule name.
	Name string `json:"name,omitempty"`
	// Type represents the rule type.
	Type string `json:"type,omitempty"`
}

BenchmarkJobRule defines the desired state of BenchmarkJobRule.

func (*BenchmarkJobRule) Bind added in v1.7.11

type BenchmarkScenario added in v1.7.11

type BenchmarkScenario struct {
	// Target represents the target configuration.
	Target *BenchmarkTarget `json:"target,omitempty" yaml:"target"`
	// Dataset represents the dataset configuration.
	Dataset *BenchmarkDataset `json:"dataset,omitempty" yaml:"dataset"`
	// Jobs represents the list of benchmark jobs.
	Jobs []*BenchmarkJob `json:"jobs,omitempty" yaml:"jobs"`
}

BenchmarkScenario represents the configuration for the internal benchmark scenario.

func (*BenchmarkScenario) Bind added in v1.7.11

Bind binds the actual data from the BenchmarkScenario receiver fields.

type BenchmarkTarget added in v1.7.11

type BenchmarkTarget struct {
	// Meta represents the metadata.
	Meta map[string]string `json:"meta,omitempty"`
	// Host represents the host.
	Host string `json:"host,omitempty"`
	// Port represents the port.
	Port int `json:"port,omitempty"`
}

BenchmarkTarget defines the desired state of BenchmarkTarget.

func (*BenchmarkTarget) Bind added in v1.7.11

func (t *BenchmarkTarget) Bind() *BenchmarkTarget

type Blob added in v0.0.38

type Blob struct {
	// S3 represents S3 configuration.
	S3 *S3Config `json:"s3" yaml:"s3"`
	// CloudStorage represents CloudStorage configuration.
	CloudStorage *CloudStorageConfig `json:"cloud_storage" yaml:"cloud_storage"`
	// StorageType represents the storage type.
	StorageType string `json:"storage_type" yaml:"storage_type"`
	// Bucket represents the bucket name.
	Bucket string `json:"bucket" yaml:"bucket"`
}

Blob represents Blob configuration.

func (*Blob) Bind added in v0.0.38

func (b *Blob) Bind() *Blob

Bind binds the actual data from the Blob receiver field.

type BlobStorageType added in v0.0.38

type BlobStorageType uint8

BlobStorageType represents blob storage type.

const (
	// S3 represents s3 storage type.
	S3 BlobStorageType = 1 + iota
	CloudStorage
)

func AtoBST added in v0.0.38

func AtoBST(bst string) BlobStorageType

AtoBST returns BlobStorageType converted from string.

func (BlobStorageType) String added in v0.0.38

func (bst BlobStorageType) String() string

String returns blob storage type.

type CallOption

type CallOption struct {
	// ContentSubtype represents the content subtype.
	ContentSubtype string `json:"content_subtype" yaml:"content_subtype"`
	// MaxRetryRPCBufferSize represents the maximum retry RPC buffer size.
	MaxRetryRPCBufferSize int `json:"max_retry_rpc_buffer_size" yaml:"max_retry_rpc_buffer_size"`
	// MaxRecvMsgSize represents the maximum receive message size.
	MaxRecvMsgSize int `json:"max_recv_msg_size" yaml:"max_recv_msg_size"`
	// MaxSendMsgSize represents the maximum send message size.
	MaxSendMsgSize int `json:"max_send_msg_size" yaml:"max_send_msg_size"`
	// WaitForReady enables wait for ready.
	WaitForReady bool `json:"wait_for_ready" yaml:"wait_for_ready"`
}

CallOption represents the configurations for call option.

func (*CallOption) Bind

func (c *CallOption) Bind() *CallOption

Bind binds the actual data from the CallOption receiver fields.

type Cassandra

type Cassandra struct {
	// PoolConfig represents the pool configuration.
	PoolConfig *PoolConfig `json:"pool_config" yaml:"pool_config"`
	// Net represents the network configuration.
	Net *Net `json:"net" yaml:"net"`
	// TLS represents the TLS configuration.
	TLS *TLS `json:"tls" yaml:"tls"`
	// HostFilter represents the host filter configuration.
	HostFilter *HostFilter `json:"host_filter" yaml:"host_filter"`
	// ReconnectionPolicy represents the reconnection policy.
	ReconnectionPolicy *ReconnectionPolicy `json:"reconnection_policy" yaml:"reconnection_policy"`
	// RetryPolicy represents the retry policy.
	RetryPolicy *RetryPolicy `json:"retry_policy" yaml:"retry_policy"`
	// VKTable represents the Vector-Key table name.
	VKTable string `json:"vk_table" yaml:"vk_table"`
	// ReconnectInterval represents the reconnect interval.
	ReconnectInterval string `json:"reconnect_interval" yaml:"reconnect_interval"`
	// Consistency represents the consistency level.
	Consistency string `json:"consistency" yaml:"consistency"`
	// SerialConsistency represents the serial consistency level.
	SerialConsistency string `json:"serial_consistency" yaml:"serial_consistency"`
	// Username represents the username.
	Username string `json:"username" yaml:"username"`
	// Password represents the password.
	Password string `json:"password" yaml:"password"`
	// Keyspace represents the keyspace name.
	Keyspace string `json:"keyspace" yaml:"keyspace"`
	// KVTable represents the Key-Value table name.
	KVTable string `json:"kv_table" yaml:"kv_table"`
	// ConnectTimeout represents the connect timeout.
	ConnectTimeout string `json:"connect_timeout" yaml:"connect_timeout"`
	// Timeout represents the request timeout.
	Timeout string `json:"timeout" yaml:"timeout"`
	// SocketKeepalive represents the socket keepalive duration.
	SocketKeepalive string `json:"socket_keepalive" yaml:"socket_keepalive"`
	// WriteCoalesceWaitTime represents the write coalesce wait time.
	WriteCoalesceWaitTime string `json:"write_coalesce_wait_time" yaml:"write_coalesce_wait_time"`
	// CQLVersion represents the CQL version.
	CQLVersion string `json:"cql_version" yaml:"cql_version"`
	// MaxWaitSchemaAgreement represents the max wait schema agreement.
	MaxWaitSchemaAgreement string `json:"max_wait_schema_agreement" yaml:"max_wait_schema_agreement"`
	// VectorBackupTable represents the vector backup table name.
	VectorBackupTable string `json:"vector_backup_table" yaml:"vector_backup_table"`
	// Hosts represents the list of hosts.
	Hosts []string `json:"hosts" yaml:"hosts"`
	// MaxRoutingKeyInfo represents the max routing key info.
	MaxRoutingKeyInfo int `json:"max_routing_key_info" yaml:"max_routing_key_info"`
	// MaxPreparedStmts represents the max prepared statements.
	MaxPreparedStmts int `json:"max_prepared_stmts" yaml:"max_prepared_stmts"`
	// ProtoVersion represents the protocol version.
	ProtoVersion int `json:"proto_version" yaml:"proto_version"`
	// PageSize represents the page size.
	PageSize int `json:"page_size" yaml:"page_size"`
	// Port represents the port number.
	Port int `json:"port" yaml:"port"`
	// NumConns represents the number of connections.
	NumConns int `json:"num_conns" yaml:"num_conns"`
	// DisableTopologyEvents enables disabling topology events.
	DisableTopologyEvents bool `json:"disable_topology_events" yaml:"disable_topology_events"`
	// DefaultTimestamp enables default timestamp.
	DefaultTimestamp bool `json:"default_timestamp" yaml:"default_timestamp"`
	// DisableSchemaEvents enables disabling schema events.
	DisableSchemaEvents bool `json:"disable_schema_events" yaml:"disable_schema_events"`
	// DisableSkipMetadata enables disabling skip metadata.
	DisableSkipMetadata bool `json:"disable_skip_metadata" yaml:"disable_skip_metadata"`
	// DefaultIdempotence enables default idempotence.
	DefaultIdempotence bool `json:"default_idempotence" yaml:"default_idempotence"`
	// DisableNodeStatusEvents enables disabling node status events.
	DisableNodeStatusEvents bool `json:"disable_node_status_events" yaml:"disable_node_status_events"`
	// DisableInitialHostLookup enables disabling initial host lookup.
	DisableInitialHostLookup bool `json:"disable_initial_host_lookup" yaml:"disable_initial_host_lookup"`
	// IgnorePeerAddr enables ignoring peer address.
	IgnorePeerAddr bool `json:"ignore_peer_addr" yaml:"ignore_peer_addr"`
	// EnableHostVerification enables host verification.
	EnableHostVerification bool `json:"enable_host_verification" yaml:"enable_host_verification"`
}

Cassandra represents the configuration for the internal cassandra package.

func (*Cassandra) Bind

func (c *Cassandra) Bind() *Cassandra

Bind binds the actual data from the Cassandra receiver fields.

func (*Cassandra) Opts

func (cfg *Cassandra) Opts() (opts []cassandra.Option, err error)

Opts creates and returns the slice with the functional options for the internal cassandra package. In addition, Opts sometimes returns the error when the any errors are occurred.

type CircuitBreaker added in v1.6.0

type CircuitBreaker struct {
	// OpenTimeout specifies the duration the circuit breaker stays open before transitioning to half-open.
	OpenTimeout string `json:"open_timeout,omitempty" yaml:"open_timeout"`
	// ClosedRefreshTimeout specifies the interval at which the internal counters (e.g., error rate) are reset while in the closed state.
	ClosedRefreshTimeout string `json:"closed_refresh_timeout,omitempty" yaml:"closed_refresh_timeout"`
	// MinSamples specifies the minimum number of requests required before calculating the error rate.
	MinSamples int64 `json:"min_samples,omitempty" yaml:"min_samples"`
	// ClosedErrorRate specifies the threshold error rate (0.0 to 1.0) above which the circuit breaker opens.
	ClosedErrorRate float32 `json:"closed_error_rate,omitempty" yaml:"closed_error_rate"`
	// HalfOpenErrorRate specifies the threshold error rate (0.0 to 1.0) in the half-open state that causes the circuit breaker to reopen.
	HalfOpenErrorRate float32 `json:"half_open_error_rate,omitempty" yaml:"half_open_error_rate"`
}

CircuitBreaker represents the configuration for the internal circuitbreaker package.

func (*CircuitBreaker) Bind added in v1.6.0

func (cb *CircuitBreaker) Bind() *CircuitBreaker

type Client

type Client struct {
	// Net represents the network configuration.
	Net *Net `json:"net" yaml:"net"`
	// Transport represents the transport configuration.
	Transport *Transport `json:"transport" yaml:"transport"`
}

Client represents the Client configurations.

func (*Client) Bind

func (c *Client) Bind() *Client

Bind binds the actual data from the Client receiver field.

type CloudStorageClient added in v1.1.0

type CloudStorageClient struct {
	// CredentialsFilePath represents the path to the credentials file.
	CredentialsFilePath string `json:"credentials_file_path" yaml:"credentials_file_path"`
	// CredentialsJSON represents the credentials JSON string.
	CredentialsJSON string `json:"credentials_json" yaml:"credentials_json"`
}

CloudStorageClient represents CloudStorage client configuration.

func (*CloudStorageClient) Bind added in v1.7.17

Bind binds the actual data from the CloudStorageClient receiver fields.

type CloudStorageConfig added in v1.1.0

type CloudStorageConfig struct {
	// Client represents the CloudStorage client configuration.
	Client *CloudStorageClient `json:"client" yaml:"client"`
	// URL represents the storage URL.
	URL string `json:"url" yaml:"url"`
	// WriteCacheControl represents the cache control header.
	WriteCacheControl string `json:"write_cache_control" yaml:"write_cache_control"`
	// WriteContentDisposition represents the content disposition header.
	WriteContentDisposition string `json:"write_content_disposition" yaml:"write_content_disposition"`
	// WriteContentEncoding represents the content encoding header.
	WriteContentEncoding string `json:"write_content_encoding" yaml:"write_content_encoding"`
	// WriteContentLanguage represents the content language header.
	WriteContentLanguage string `json:"write_content_language" yaml:"write_content_language"`
	// WriteContentType represents the content type header.
	WriteContentType string `json:"write_content_type" yaml:"write_content_type"`
	// WriteBufferSize represents the write buffer size.
	WriteBufferSize int `json:"write_buffer_size" yaml:"write_buffer_size"`
}

CloudStorageConfig represents CloudStorage configuration.

func (*CloudStorageConfig) Bind added in v1.1.0

type CompressAlgorithm

type CompressAlgorithm uint8

CompressAlgorithm is an enum for compress algorithm.

const (
	// GOB represents gob algorithm.
	GOB CompressAlgorithm = 1 + iota
	// GZIP represents gzip algorithm.
	GZIP
	// LZ4 represents lz4 algorithm.
	LZ4
	// ZSTD represents zstd algorithm.
	ZSTD
)

func AToCompressAlgorithm added in v1.7.0

func AToCompressAlgorithm(ca string) CompressAlgorithm

AToCompressAlgorithm returns CompressAlgorithm converted from string.

func (CompressAlgorithm) String added in v1.7.0

func (ca CompressAlgorithm) String() string

String returns compress algorithm.

type CompressCore added in v0.0.38

type CompressCore struct {
	// CompressorAlgorithm represents compression algorithm type
	CompressAlgorithm string `json:"compress_algorithm" yaml:"compress_algorithm"`

	// CompressionLevel represents compression level
	CompressionLevel int `json:"compression_level" yaml:"compression_level"`
}

CompressCore represents CompressCore configuration.

func (*CompressCore) Bind added in v0.0.38

func (c *CompressCore) Bind() *CompressCore

Bind binds the actual data from the receiver field.

type Compressor

type Compressor struct {
	// QueueCheckDuration represents queue check duration.
	QueueCheckDuration string `json:"queue_check_duration" yaml:"queue_check_duration"`
	CompressCore       `       json:",inline"              yaml:",inline"`
	// ConcurrentLimit represents concurrent limit.
	ConcurrentLimit int `json:"concurrent_limit" yaml:"concurrent_limit"`
}

Compressor represents Compressor configuration.

func (*Compressor) Bind

func (c *Compressor) Bind() *Compressor

Bind binds the actual data from the Compressor receiver field.

type CompressorRegisterer added in v0.0.28

type CompressorRegisterer struct {
	// Compressor represents compressor configuration.
	Compressor *BackupManager `json:"compressor" yaml:"compressor"`
	// QueueCheckDuration represents queue check duration.
	QueueCheckDuration string `json:"queue_check_duration" yaml:"queue_check_duration"`
	// ConcurrentLimit represents concurrent limit.
	ConcurrentLimit int `json:"concurrent_limit" yaml:"concurrent_limit"`
}

CompressorRegisterer represents CompressorRegisterer configuration.

func (*CompressorRegisterer) Bind added in v0.0.28

Bind binds the actual data from the CompressorRegisterer receiver field.

type ConnectionPool added in v0.0.27

type ConnectionPool struct {
	// RebalanceDuration represents the rebalance duration.
	RebalanceDuration string `json:"rebalance_duration" yaml:"rebalance_duration"`
	// OldConnCloseDuration represents the old connection close duration.
	OldConnCloseDuration string `json:"old_conn_close_duration" yaml:"old_conn_close_duration"`
	// Size represents the pool size.
	Size int `json:"size" yaml:"size"`
	// ResolveDNS enables DNS resolution.
	ResolveDNS bool `json:"enable_dns_resolver" yaml:"enable_dns_resolver"`
	// EnableRebalance enables rebalance.
	EnableRebalance bool `json:"enable_rebalance" yaml:"enable_rebalance"`
	// EnableMetrics enables pool connection metrics.
	EnableMetrics bool `json:"enable_metrics" yaml:"enable_metrics"`
}

ConnectionPool represents the configurations for connection pool.

func (*ConnectionPool) Bind added in v1.7.17

func (cp *ConnectionPool) Bind() *ConnectionPool

Bind binds the actual data from the ConnectionPool receiver fields.

type Corrector added in v1.7.9

type Corrector struct {
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// Gateway represents the gateway client configuration.
	Gateway *GRPCClient `json:"gateway" yaml:"gateway"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// KVSBackgroundSyncInterval represents the interval for KVS background synchronization.
	KVSBackgroundSyncInterval string `json:"kvs_background_sync_interval" yaml:"kvs_background_sync_interval"`
	// KVSBackgroundCompactionInterval represents the interval for KVS background compaction.
	KVSBackgroundCompactionInterval string `json:"kvs_background_compaction_interval" yaml:"kvs_background_compaction_interval"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// StreamListConcurrency represents the stream list concurrency.
	StreamListConcurrency int `json:"stream_list_concurrency" yaml:"stream_list_concurrency"`
	// IndexReplica represents the index replica count.
	IndexReplica int `json:"index_replica" yaml:"index_replica"`
}

Corrector represents the index correction configurations.

func (*Corrector) Bind added in v1.7.9

func (c *Corrector) Bind() *Corrector

Bind binds the actual data from the Indexer receiver field.

type DNS

type DNS struct {
	// RefreshDuration represents the refresh duration.
	RefreshDuration string `json:"refresh_duration,omitempty" yaml:"refresh_duration"`
	// CacheExpiration represents the cache expiration duration.
	CacheExpiration string `json:"cache_expiration,omitempty" yaml:"cache_expiration"`
	// CacheEnabled enables DNS cache.
	CacheEnabled bool `json:"cache_enabled,omitempty" yaml:"cache_enabled"`
}

DNS represents the configuration for resolving DNS.

func (*DNS) Bind

func (d *DNS) Bind() *DNS

Bind binds the actual data from the DNS fields.

type DialOption

type DialOption struct {
	// Keepalive represents the keepalive configuration.
	Keepalive *GRPCClientKeepalive `json:"keepalive,omitempty" yaml:"keepalive"`
	// Net represents the network configuration.
	Net *Net `json:"net,omitempty" yaml:"net"`
	// Authority represents the authority.
	Authority string `json:"authority,omitempty" yaml:"authority"`
	// UserAgent represents the user agent.
	UserAgent string `json:"user_agent,omitempty" yaml:"user_agent"`
	// Timeout represents the timeout duration.
	Timeout string `json:"timeout,omitempty" yaml:"timeout"`
	// MinimumConnectionTimeout represents the minimum connection timeout.
	MinimumConnectionTimeout string `json:"min_connection_timeout,omitempty" yaml:"min_connection_timeout"`
	// IdleTimeout represents the idle timeout.
	IdleTimeout string `json:"idle_timeout,omitempty" yaml:"idle_timeout"`
	// BackoffMaxDelay represents the backoff maximum delay.
	BackoffMaxDelay string `json:"backoff_max_delay,omitempty" yaml:"backoff_max_delay"`
	// BackoffBaseDelay represents the backoff base delay.
	BackoffBaseDelay string `json:"backoff_base_delay,omitempty" yaml:"backoff_base_delay"`
	// Interceptors represents the interceptors.
	Interceptors []string `json:"interceptors,omitempty" yaml:"interceptors"`
	// WriteBufferSize represents the write buffer size.
	WriteBufferSize int `json:"write_buffer_size,omitempty" yaml:"write_buffer_size"`
	// BackoffJitter represents the backoff jitter.
	BackoffJitter float64 `json:"backoff_jitter,omitempty" yaml:"backoff_jitter"`
	// BackoffMultiplier represents the backoff multiplier.
	BackoffMultiplier float64 `json:"backoff_multiplier,omitempty" yaml:"backoff_multiplier"`
	// ReadBufferSize represents the read buffer size.
	ReadBufferSize int `json:"read_buffer_size,omitempty" yaml:"read_buffer_size"`
	// MaxMsgSize represents the maximum message size.
	MaxMsgSize int `json:"max_msg_size,omitempty" yaml:"max_msg_size"`
	// MaxCallAttempts represents the maximum call attempts.
	MaxCallAttempts int `json:"max_call_attempts,omitempty" yaml:"max_call_attempts"`
	// MaxHeaderListSize represents the maximum header list size.
	MaxHeaderListSize uint32 `json:"max_header_list_size,omitempty" yaml:"max_header_list_size"`
	// InitialWindowSize represents the initial window size.
	InitialWindowSize int32 `json:"initial_window_size,omitempty" yaml:"initial_window_size"`
	// InitialConnectionWindowSize represents the initial connection window size.
	InitialConnectionWindowSize int32 `json:"initial_connection_window_size,omitempty" yaml:"initial_connection_window_size"`
	// DisableRetry disables retry.
	DisableRetry bool `json:"disable_retry,omitempty" yaml:"disable_retry"`
	// SharedWriteBuffer enables shared write buffer.
	SharedWriteBuffer bool `json:"shared_write_buffer,omitempty" yaml:"shared_write_buffer"`
	// Insecure enables insecure mode.
	Insecure bool `json:"insecure,omitempty" yaml:"insecure"`
	// EnableBackoff enables backoff.
	EnableBackoff bool `json:"enable_backoff,omitempty" yaml:"enable_backoff"`
}

DialOption represents the configurations for dial option.

func (*DialOption) Bind

func (d *DialOption) Bind() *DialOption

Bind binds the actual data from the DialOption receiver fields.

type Dialer

type Dialer struct {
	// Timeout represents the dial timeout duration.
	Timeout string `json:"timeout,omitempty" yaml:"timeout"`
	// Keepalive represents the keepalive duration.
	Keepalive string `json:"keepalive,omitempty" yaml:"keepalive"`
	// FallbackDelay represents the fallback delay duration.
	FallbackDelay string `json:"fallback_delay,omitempty" yaml:"fallback_delay"`
	// DualStackEnabled enables dual stack.
	DualStackEnabled bool `json:"dual_stack_enabled,omitempty" yaml:"dual_stack_enabled"`
}

Dialer represents the configuration for dial.

func (*Dialer) Bind

func (d *Dialer) Bind() *Dialer

Bind binds the actual data from the Dialer fields.

type Discoverer

type Discoverer struct {
	// Net represents the network configuration.
	Net *Net `json:"net,omitempty" yaml:"net"`
	// Selectors represents the selector configuration.
	Selectors *Selectors `json:"selectors,omitempty" yaml:"selectors"`
	// Name represents the discoverer name.
	Name string `json:"name,omitempty" yaml:"name"`
	// Namespace represents the namespace.
	Namespace string `json:"namespace,omitempty" yaml:"namespace"`
	// DiscoveryDuration represents the discovery duration.
	DiscoveryDuration string `json:"discovery_duration,omitempty" yaml:"discovery_duration"`
}

Discoverer represents the Discoverer configurations.

func (*Discoverer) Bind

func (d *Discoverer) Bind() *Discoverer

Bind binds the actual data from the Discoverer receiver field.

type DiscovererClient added in v0.0.5

type DiscovererClient struct {
	// Client represents the client configuration.
	Client *GRPCClient `json:"client" yaml:"client"`
	// AgentClientOptions represents the agent client options.
	AgentClientOptions *GRPCClient `json:"agent_client_options" yaml:"agent_client_options"`
	// Duration represents the duration.
	Duration string `json:"duration" yaml:"duration"`
}

DiscovererClient represents the DiscovererClient configurations.

func (*DiscovererClient) Bind added in v0.0.5

Bind binds the actual data from the DiscovererClient receiver field.

type EgressFilter

type EgressFilter struct {
	// Client represents the client configuration.
	Client *GRPCClient `json:"client,omitempty" yaml:"client"`
	// DistanceFilters represents the distance filters.
	DistanceFilters []string `json:"distance_filters,omitempty" yaml:"distance_filters"`
	// ObjectFilters represents the object filters.
	ObjectFilters []string `json:"object_filters,omitempty" yaml:"object_filters"`
}

EgressFilter represents the EgressFilter configuration.

func (*EgressFilter) Bind

func (e *EgressFilter) Bind() *EgressFilter

Bind binds the actual data from the EgressFilter receiver field.

type Faiss added in v1.7.11

type Faiss struct {
	// VQueue represents the vector queue configuration.
	VQueue *VQueue `json:"vqueue,omitempty" yaml:"vqueue"`
	// KVSDB represents the KVS DB configuration.
	KVSDB *KVSDB `json:"kvsdb,omitempty" yaml:"kvsdb"`
	// AutoIndexDurationLimit represents the auto index duration limit.
	AutoIndexDurationLimit string `json:"auto_index_duration_limit,omitempty" yaml:"auto_index_duration_limit"`
	// InitialDelayMaxDuration represents the initial delay maximum duration.
	InitialDelayMaxDuration string `json:"initial_delay_max_duration,omitempty" yaml:"initial_delay_max_duration"`
	// LoadIndexTimeoutFactor represents the load index timeout factor.
	LoadIndexTimeoutFactor string `json:"load_index_timeout_factor,omitempty" yaml:"load_index_timeout_factor"`
	// MethodType represents the method type.
	MethodType string `json:"method_type,omitempty" yaml:"method_type" info:"method_type"`
	// MetricType represents the metric type.
	MetricType string `json:"metric_type,omitempty" yaml:"metric_type" info:"metric_type"`
	// MaxLoadIndexTimeout represents the maximum load index timeout.
	MaxLoadIndexTimeout string `json:"max_load_index_timeout,omitempty" yaml:"max_load_index_timeout"`
	// AutoIndexCheckDuration represents the auto index check duration.
	AutoIndexCheckDuration string `json:"auto_index_check_duration,omitempty" yaml:"auto_index_check_duration"`
	// AutoSaveIndexDuration represents the auto save index duration.
	AutoSaveIndexDuration string `json:"auto_save_index_duration,omitempty" yaml:"auto_save_index_duration"`
	// IndexPath represents the index path.
	IndexPath string `json:"index_path,omitempty" yaml:"index_path"`
	// MinLoadIndexTimeout represents the minimum load index timeout.
	MinLoadIndexTimeout string `json:"min_load_index_timeout,omitempty" yaml:"min_load_index_timeout"`
	// AutoIndexLength represents the auto index length.
	AutoIndexLength int `json:"auto_index_length,omitempty" yaml:"auto_index_length"`
	// M represents the number of neighbors for graph construction.
	M int `json:"m,omitempty" yaml:"m" info:"m"`
	// NbitsPerIdx represents the number of bits per index.
	NbitsPerIdx int `json:"nbits_per_idx,omitempty" yaml:"nbits_per_idx" info:"nbits_per_idx"`
	// Nlist represents the number of cells.
	Nlist int `json:"nlist,omitempty" yaml:"nlist" info:"nlist"`
	// Dimension represents the dimension of the vector.
	Dimension int `json:"dimension,omitempty" yaml:"dimension" info:"dimension"`
	// EnableInMemoryMode enables in-memory mode.
	EnableInMemoryMode bool `json:"enable_in_memory_mode,omitempty" yaml:"enable_in_memory_mode"`
	// EnableProactiveGC enables proactive GC.
	EnableProactiveGC bool `json:"enable_proactive_gc,omitempty" yaml:"enable_proactive_gc"`
	// EnableCopyOnWrite enables copy on write.
	EnableCopyOnWrite bool `json:"enable_copy_on_write,omitempty" yaml:"enable_copy_on_write"`
}

Faiss represent the faiss core configuration for server.

func (*Faiss) Bind added in v1.7.11

func (f *Faiss) Bind() *Faiss

Bind returns Faiss object whose some string value is filed value or environment value.

type FilterConfig added in v1.7.11

type FilterConfig struct {
	// Targets represents the list of filter targets.
	Targets []*FilterTarget `json:"target,omitempty" yaml:"target"`
}

FilterConfig defines the desired state of filter config.

func (*FilterConfig) Bind added in v1.7.11

func (cfg *FilterConfig) Bind() *FilterConfig

type FilterTarget added in v1.7.11

type FilterTarget struct {
	// Host represents the host.
	Host string `json:"host,omitempty" yaml:"host"`
	// Port represents the port.
	Port int32 `json:"port,omitempty" yaml:"port"`
}

FilterTarget defines the desired state of filter target.

func (*FilterTarget) Bind added in v1.7.11

func (cfg *FilterTarget) Bind() *FilterTarget

type GRPC

type GRPC struct {
	// Keepalive represents the gRPC keepalive configuration.
	Keepalive *GRPCKeepalive `json:"keepalive,omitempty" yaml:"keepalive"`
	// ConnectionTimeout represents the gRPC connection timeout duration.
	ConnectionTimeout string `json:"connection_timeout,omitempty" yaml:"connection_timeout"`
	// Interceptors represents the list of gRPC interceptors.
	Interceptors []string `json:"interceptors,omitempty" yaml:"interceptors"`
	// InitialConnWindowSize represents the initial connection window size.
	InitialConnWindowSize int `json:"initial_conn_window_size,omitempty" yaml:"initial_conn_window_size"`
	// WriteBufferSize represents the write buffer size.
	WriteBufferSize int `json:"write_buffer_size,omitempty" yaml:"write_buffer_size"`
	// ReadBufferSize represents the read buffer size.
	ReadBufferSize int `json:"read_buffer_size,omitempty" yaml:"read_buffer_size"`
	// MaxSendMessageSize represents the maximum send message size.
	MaxSendMessageSize int `json:"max_send_message_size,omitempty" yaml:"max_send_message_size"`
	// MaxReceiveMessageSize represents the maximum receive message size.
	MaxReceiveMessageSize int `json:"max_receive_message_size,omitempty" yaml:"max_receive_message_size"`
	// InitialWindowSize represents the initial window size.
	InitialWindowSize int `json:"initial_window_size,omitempty" yaml:"initial_window_size"`
	// BidirectionalStreamConcurrency represents the bidirectional stream concurrency limit.
	BidirectionalStreamConcurrency int `json:"bidirectional_stream_concurrency,omitempty" yaml:"bidirectional_stream_concurrency"`
	// NumStreamWorkers represents the number of stream workers.
	NumStreamWorkers uint32 `json:"num_stream_workers,omitempty" yaml:"num_stream_workers"`
	// MaxHeaderListSize represents the maximum header list size.
	MaxHeaderListSize uint32 `json:"max_header_list_size,omitempty" yaml:"max_header_list_size"`
	// MaxConcurrentStreams represents the maximum concurrent streams.
	MaxConcurrentStreams uint32 `json:"max_concurrent_streams,omitempty" yaml:"max_concurrent_streams"`
	// HeaderTableSize represents the header table size.
	HeaderTableSize uint32 `json:"header_table_size,omitempty" yaml:"header_table_size"`
	// EnableAdmin enables the admin service.
	EnableAdmin bool `json:"enable_admin,omitempty" yaml:"enable_admin"`
	// WaitForHandlers waits for handlers to finish.
	WaitForHandlers bool `json:"wait_for_handlers,omitempty" yaml:"wait_for_handlers"`
	// SharedWriteBuffer enables the shared write buffer.
	SharedWriteBuffer bool `json:"shared_write_buffer,omitempty" yaml:"shared_write_buffer"`
	// EnableReflection enables the reflection service.
	EnableReflection bool `json:"enable_reflection,omitempty" yaml:"enable_reflection"`
	// EnableChannelz enables the channelz service.
	EnableChannelz bool `json:"enable_channelz,omitempty" yaml:"enable_channelz"`
}

GRPC represents the configuration for gPRC.

func (*GRPC) Bind

func (g *GRPC) Bind() *GRPC

Bind binds the actual value from the GRPC struct field.

type GRPCClient

type GRPCClient struct {
	// ConnectionPool represents the connection pool configuration.
	ConnectionPool *ConnectionPool `json:"connection_pool" yaml:"connection_pool"`
	// Backoff represents the backoff configuration.
	Backoff *Backoff `json:"backoff" yaml:"backoff"`
	// CircuitBreaker represents the circuit breaker configuration.
	CircuitBreaker *CircuitBreaker `json:"circuit_breaker" yaml:"circuit_breaker"`
	// CallOption represents the call option configuration.
	CallOption *CallOption `json:"call_option" yaml:"call_option"`
	// DialOption represents the dial option configuration.
	DialOption *DialOption `json:"dial_option" yaml:"dial_option"`
	// TLS represents the TLS configuration.
	TLS *TLS `json:"tls" yaml:"tls"`
	// HealthCheckDuration represents the health check duration.
	HealthCheckDuration string `json:"health_check_duration" yaml:"health_check_duration"`
	// Addrs represents the list of addresses.
	Addrs []string `json:"addrs" yaml:"addrs"`
}

GRPCClient represents the configurations for gRPC client.

func (*GRPCClient) Bind

func (g *GRPCClient) Bind() *GRPCClient

Bind binds the actual data from the GRPCClient receiver fields.

func (*GRPCClient) Opts

func (g *GRPCClient) Opts() ([]grpc.Option, error)

Opts creates the slice with the functional options for the gRPC options.

type GRPCClientKeepalive

type GRPCClientKeepalive struct {
	// Time represents the time duration.
	Time string `json:"time" yaml:"time"`
	// Timeout represents the timeout duration.
	Timeout string `json:"timeout" yaml:"timeout"`
	// PermitWithoutStream enables permit without stream.
	PermitWithoutStream bool `json:"permit_without_stream" yaml:"permit_without_stream"`
}

GRPCClientKeepalive represents the configurations for gRPC keep-alive.

func (*GRPCClientKeepalive) Bind

Bind binds the actual data from the GRPCClientKeepalive receiver fields.

type GRPCKeepalive

type GRPCKeepalive struct {
	// MaxConnIdle represents the maximum amount of time a connection may be idle.
	MaxConnIdle string `json:"max_conn_idle" yaml:"max_conn_idle"`
	// MaxConnAge represents the maximum amount of time a connection may exist.
	MaxConnAge string `json:"max_conn_age" yaml:"max_conn_age"`
	// MaxConnAgeGrace represents the additive period after MaxConnAge after which the connection will be forcibly closed.
	MaxConnAgeGrace string `json:"max_conn_age_grace" yaml:"max_conn_age_grace"`
	// Time represents the duration after which if the client doesn't see any activity it pings the server to see if the transport is still alive.
	Time string `json:"time" yaml:"time"`
	// Timeout represents the duration that the client waits for a ping response.
	Timeout string `json:"timeout" yaml:"timeout"`
	// MinTime represents the minimum amount of time a client should wait before sending a keepalive ping.
	MinTime string `json:"min_time" yaml:"min_time"`
	// PermitWithoutStream if true, client can send keepalive pings even with no active RPCs.
	PermitWithoutStream bool `json:"permit_without_stream" yaml:"permit_without_stream"`
}

GRPCKeepalive represents the configuration for gRPC keep-alive.

func (*GRPCKeepalive) Bind

func (k *GRPCKeepalive) Bind() *GRPCKeepalive

Bind binds the actual value from the GRPCKeepalive struct field.

type Gateway

type Gateway struct {
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// Meta represents the metadata configuration.
	Meta *Meta `json:"meta" yaml:"meta"`
	// BackupManager represents the backup manager configuration.
	BackupManager *BackupManager `json:"backup" yaml:"backup"`
	// EgressFilter represents the egress filter configuration.
	EgressFilter *EgressFilter `json:"egress_filter" yaml:"egress_filter"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// IndexReplica represents the index replica count.
	IndexReplica int `json:"index_replica" yaml:"index_replica"`
}

Gateway represents the list of configurations for gateway.

func (*Gateway) Bind

func (g *Gateway) Bind() *Gateway

Bind binds the actual data from the Gateway receiver field on the Gateway.

type GlobalConfig added in v0.0.2

type GlobalConfig struct {
	// Logging represents the logging configuration.
	Logging *Logging `json:"logging,omitempty" yaml:"logging,omitempty"`
	// Version represents the configuration file version.
	Version string `json:"version" yaml:"version"`
	// TZ represents the system time zone.
	TZ string `json:"time_zone" yaml:"time_zone"`
}

GlobalConfig represent a application setting data content (config.yaml).

func (*GlobalConfig) Bind added in v0.0.2

func (c *GlobalConfig) Bind() *GlobalConfig

Bind binds the actual data from the receiver field.

type HTTP

type HTTP struct {
	// HTTP2 represents the configuration for HTTP2.
	HTTP2 *HTTP2 `json:"http2" yaml:"http2"`
	// ShutdownDuration represents the duration for the http server to shutdown.
	ShutdownDuration string `json:"shutdown_duration" yaml:"shutdown_duration"`
	// HandlerTimeout represents the timeout duration for http handlers.
	HandlerTimeout string `json:"handler_timeout" yaml:"handler_timeout"`
	// IdleTimeout represents the maximum amount of time to wait for the next request when keep-alives are enabled.
	IdleTimeout string `json:"idle_timeout" yaml:"idle_timeout"`
	// ReadHeaderTimeout represents the amount of time allowed to read request headers.
	ReadHeaderTimeout string `json:"read_header_timeout" yaml:"read_header_timeout"`
	// ReadTimeout represents the maximum duration for reading the entire request, including the body.
	ReadTimeout string `json:"read_timeout" yaml:"read_timeout"`
	// WriteTimeout represents the maximum duration before timing out writes of the response.
	WriteTimeout string `json:"write_timeout" yaml:"write_timeout"`
}

HTTP represents the configuration for HTTP.

func (*HTTP) Bind

func (h *HTTP) Bind() *HTTP

Bind binds the actual value from the HTTP struct field.

type HTTP2 added in v1.7.14

type HTTP2 struct {
	// HandlerLimit represents the limit of handlers.
	HandlerLimit int `json:"handler_limit,omitempty" yaml:"handler_limit"`
	// Enabled enables HTTP2.
	Enabled bool `json:"enabled,omitempty" yaml:"enabled"`
	// PermitProhibitedCipherSuites enables prohibited cipher suites.
	PermitProhibitedCipherSuites bool `json:"permit_prohibited_cipher_suites,omitempty" yaml:"permit_prohibited_cipher_suites"`
	// MaxUploadBufferPerConnection represents the maximum upload buffer per connection.
	MaxUploadBufferPerConnection int32 `json:"max_upload_buffer_per_connection,omitempty" yaml:"max_upload_buffer_per_connection"`
	// MaxUploadBufferPerStream represents the maximum upload buffer per stream.
	MaxUploadBufferPerStream int32 `json:"max_upload_buffer_per_stream,omitempty" yaml:"max_upload_buffer_per_stream"`
	// MaxConcurrentStreams represents the maximum concurrent streams.
	MaxConcurrentStreams uint32 `json:"max_concurrent_streams,omitempty" yaml:"max_concurrent_streams"`
	// MaxDecoderHeaderTableSize represents the maximum decoder header table size.
	MaxDecoderHeaderTableSize uint32 `json:"max_decoder_header_table_size,omitempty" yaml:"max_decoder_header_table_size"`
	// MaxEncoderHeaderTableSize represents the maximum encoder header table size.
	MaxEncoderHeaderTableSize uint32 `json:"max_encoder_header_table_size,omitempty" yaml:"max_encoder_header_table_size"`
	// MaxReadFrameSize represents the maximum read frame size.
	MaxReadFrameSize uint32 `json:"max_read_frame_size,omitempty" yaml:"max_read_frame_size"`
}

HTTP2 represents the configuration for HTTP2.

func (*HTTP2) Bind added in v1.7.17

func (h *HTTP2) Bind() *HTTP2

Bind binds the actual data from the HTTP2 receiver fields.

type HostFilter added in v0.0.34

type HostFilter struct {
	// DataCenter represents the data center name.
	DataCenter string `json:"data_center" yaml:"data_center"`
	// WhiteList represents the white list.
	WhiteList []string `json:"white_list" yaml:"white_list"`
	// Enabled enables host filter.
	Enabled bool `json:"enabled"`
}

HostFilter represents the configuration for the host filter.

func (*HostFilter) Bind added in v1.7.17

func (hf *HostFilter) Bind() *HostFilter

Bind binds the actual data from the HostFilter receiver fields.

type IndexCreation added in v1.7.9

type IndexCreation struct {
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// TargetAddrs represents the target addresses.
	TargetAddrs []string `json:"target_addrs" yaml:"target_addrs"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// Concurrency represents the concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`
	// CreationPoolSize represents the creation pool size.
	CreationPoolSize uint32 `json:"creation_pool_size" yaml:"creation_pool_size"`
}

IndexCreation represents the configurations for index creation.

func (*IndexCreation) Bind added in v1.7.9

func (ic *IndexCreation) Bind() *IndexCreation

type IndexDeleter added in v1.7.15

type IndexDeleter struct {
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// IndexID represents the index ID.
	IndexID string `json:"index_id" yaml:"index_id"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// TargetAddrs represents the target addresses.
	TargetAddrs []string `json:"target_addrs" yaml:"target_addrs"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// Concurrency represents the concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`
	// DeletionPoolSize represents the deletion pool size.
	DeletionPoolSize uint32 `json:"deletion_pool_size" yaml:"deletion_pool_size"`
}

IndexDeleter represents the configurations for index deletion.

func (*IndexDeleter) Bind added in v1.7.15

func (ic *IndexDeleter) Bind() *IndexDeleter

type IndexExporter added in v1.7.17

type IndexExporter struct {
	// Gateway represents the gateway client configuration.
	Gateway *GRPCClient `json:"gateway" yaml:"gateway"`
	// KVSBackgroundSyncInterval represents the KVS background sync interval.
	KVSBackgroundSyncInterval string `json:"kvs_background_sync_interval" yaml:"kvs_background_sync_interval"`
	// KVSBackgroundCompactionInterval represents the KVS background compaction interval.
	KVSBackgroundCompactionInterval string `json:"kvs_background_compaction_interval" yaml:"kvs_background_compaction_interval"`
	// IndexPath represents the index path.
	IndexPath string `json:"index_path,omitempty" yaml:"index_path"`
	// Concurrency represents the concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`
}

IndexExporter represents the configurations for index exportation.

func (*IndexExporter) Bind added in v1.7.17

func (e *IndexExporter) Bind() *IndexExporter

type IndexJobTemplates added in v1.7.13

type IndexJobTemplates struct {
	// Rotate represents the rotate job template.
	Rotate *k8s.Job `json:"rotate" yaml:"rotate"`
	// Creation represents the creation job template.
	Creation *k8s.Job `json:"creation" yaml:"creation"`
	// Save represents the save job template.
	Save *k8s.Job `json:"save" yaml:"save"`
	// Correction represents the correction job template.
	Correction *k8s.Job `json:"correction" yaml:"correction"`
}

func (*IndexJobTemplates) Bind added in v1.7.17

func (ijt *IndexJobTemplates) Bind() *IndexJobTemplates

Bind binds the actual data from the IndexJobTemplates receiver fields.

type IndexOperator added in v1.7.13

type IndexOperator struct {
	// JobTemplates represents the job templates.
	JobTemplates IndexJobTemplates `json:"job_templates" yaml:"job_templates"`
	// Namespace represents the namespace.
	Namespace string `json:"namespace" yaml:"namespace"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// RotatorName represents the rotator name.
	RotatorName string `json:"rotator_name" yaml:"rotator_name"`
	// TargetReadReplicaIDAnnotationsKey represents the target read replica ID annotations key.
	TargetReadReplicaIDAnnotationsKey string `json:"target_read_replica_id_annotations_key" yaml:"target_read_replica_id_annotations_key"`
	// ReadReplicaLabelKey represents the read replica label key.
	ReadReplicaLabelKey string `json:"read_replica_label_key" yaml:"read_replica_label_key"`
	// RotationJobConcurrency represents the rotation job concurrency.
	RotationJobConcurrency uint `json:"rotation_job_concurrency" yaml:"rotation_job_concurrency"`
	// ReadReplicaEnabled enables read replica.
	ReadReplicaEnabled bool `json:"read_replica_enabled" yaml:"read_replica_enabled"`
}

IndexOperator represents the configurations for index k8s operator.

func (*IndexOperator) Bind added in v1.7.13

func (ic *IndexOperator) Bind() *IndexOperator

type IndexSave added in v1.7.9

type IndexSave struct {
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// TargetAddrs represents the target addresses.
	TargetAddrs []string `json:"target_addrs" yaml:"target_addrs"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// Concurrency represents the concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`
}

IndexSave represents the configurations for index save.

func (*IndexSave) Bind added in v1.7.9

func (is *IndexSave) Bind() *IndexSave

type Indexer added in v0.0.5

type Indexer struct {
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// AutoSaveIndexDurationLimit represents the auto save index duration limit.
	AutoSaveIndexDurationLimit string `json:"auto_save_index_duration_limit" yaml:"auto_save_index_duration_limit"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// AutoIndexDurationLimit represents the auto index duration limit.
	AutoIndexDurationLimit string `json:"auto_index_duration_limit" yaml:"auto_index_duration_limit"`
	// AutoSaveIndexWaitDuration represents the auto save index wait duration.
	AutoSaveIndexWaitDuration string `json:"auto_save_index_wait_duration" yaml:"auto_save_index_wait_duration"`
	// AutoIndexCheckDuration represents the auto index check duration.
	AutoIndexCheckDuration string `json:"auto_index_check_duration" yaml:"auto_index_check_duration"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// Concurrency represents the concurrency.
	Concurrency int `json:"concurrency" yaml:"concurrency"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// AutoIndexLength represents the auto index length.
	AutoIndexLength uint32 `json:"auto_index_length" yaml:"auto_index_length"`
	// CreationPoolSize represents the creation pool size.
	CreationPoolSize uint32 `json:"creation_pool_size" yaml:"creation_pool_size"`
}

Indexer represents the Indexer configurations.

func (*Indexer) Bind added in v0.0.5

func (im *Indexer) Bind() *Indexer

Bind binds the actual data from the Indexer receiver field.

type IngressFilter added in v1.0.0

type IngressFilter struct {
	// Client represents the client configuration.
	Client *GRPCClient `json:"client,omitempty" yaml:"client"`
	// Vectorizer represents the vectorizer.
	Vectorizer string `json:"vectorizer,omitempty" yaml:"vectorizer"`
	// SearchFilters represents the search filters.
	SearchFilters []string `json:"search_filters,omitempty" yaml:"search_filters"`
	// InsertFilters represents the insert filters.
	InsertFilters []string `json:"insert_filters,omitempty" yaml:"insert_filters"`
	// UpdateFilters represents the update filters.
	UpdateFilters []string `json:"update_filters,omitempty" yaml:"update_filters"`
	// UpsertFilters represents the upsert filters.
	UpsertFilters []string `json:"upsert_filters,omitempty" yaml:"upsert_filters"`
}

IngressFilter represents the IngressFilter configuration.

func (*IngressFilter) Bind added in v1.0.0

func (i *IngressFilter) Bind() *IngressFilter

Bind binds the actual data from the IngressFilter receiver field.

type InsertConfig added in v1.7.11

type InsertConfig struct {
	// Timestamp represents the timestamp.
	Timestamp string `json:"timestamp,omitempty"`
	// SkipStrictExistCheck enables skipping strict existence check.
	SkipStrictExistCheck bool `json:"skip_strict_exist_check,omitempty"`
}

InsertConfig defines the desired state of insert config.

func (*InsertConfig) Bind added in v1.7.11

func (cfg *InsertConfig) Bind() *InsertConfig

type KVSDB added in v1.2.1

type KVSDB struct {
	// Concurrency represents kvsdb range loop processing concurrency
	Concurrency int `json:"concurrency,omitempty" yaml:"concurrency,omitempty"`
}

KVSDB represent the ngt vector bidirectional kv store configuration.

func (*KVSDB) Bind added in v1.7.17

func (k *KVSDB) Bind() *KVSDB

Bind binds the actual data from the KVSDB receiver fields.

type LB added in v1.0.0

type LB struct {
	// ReadReplicaClient represents the read replica client configuration.
	ReadReplicaClient ReadReplicaClient `json:"read_replica_client" yaml:"read_replica_client"`
	// Discoverer represents the discoverer client configuration.
	Discoverer *DiscovererClient `json:"discoverer" yaml:"discoverer"`
	// AgentName represents the agent name.
	AgentName string `json:"agent_name" yaml:"agent_name"`
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// AgentDNS represents the agent DNS.
	AgentDNS string `json:"agent_dns" yaml:"agent_dns"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// AgentPort represents the agent port.
	AgentPort int `json:"agent_port" yaml:"agent_port"`
	// IndexReplica represents the index replica count.
	IndexReplica int `json:"index_replica" yaml:"index_replica"`
	// ReadReplicaReplicas represents the read replica replicas count.
	ReadReplicaReplicas uint64 `json:"read_replica_replicas" yaml:"read_replica_replicas"`
	// MultiOperationConcurrency represents the multi operation concurrency.
	MultiOperationConcurrency int `json:"multi_operation_concurrency" yaml:"multi_operation_concurrency"`
}

LB represents the configuration for load balancer.

func (*LB) Bind added in v1.0.0

func (g *LB) Bind() *LB

Bind binds the actual data from the LB receiver fields.

type Logging added in v0.0.2

type Logging struct {
	// Logger represents the logger name.
	Logger string `json:"logger" yaml:"logger"`
	// Level represents the log level.
	Level string `json:"level" yaml:"level"`
	// Format represents the log format.
	Format string `json:"format" yaml:"format"`
}

Logging represents Logging configuration.

func (*Logging) Bind added in v0.0.2

func (l *Logging) Bind() *Logging

Bind returns Logging object whose every value is field value or environment value.

type Meta

type Meta struct {
	// Client represents the gRPC client configuration.
	Client *GRPCClient `json:"client" yaml:"client"`
	// Host represents the host.
	Host string `json:"host" yaml:"host"`
	// CacheExpiration represents the cache expiration duration.
	CacheExpiration string `json:"cache_expiration" yaml:"cache_expiration"`
	// ExpiredCacheCheckDuration represents the expired cache check duration.
	ExpiredCacheCheckDuration string `json:"expired_cache_check_duration" yaml:"expired_cache_check_duration"`
	// Port represents the port number.
	Port uint16 `json:"port" yaml:"port"`
	// EnableCache enables cache.
	EnableCache bool `json:"enable_cache" yaml:"enable_cache"`
}

Meta represents the configurations for vald meta.

func (*Meta) Bind

func (m *Meta) Bind() *Meta

Bind binds the actual data from Meta receiver fields.

type Metrics added in v0.0.19

type Metrics struct {
	// VersionInfoLabels represents the version info labels.
	VersionInfoLabels []string `json:"version_info_labels" yaml:"version_info_labels"`
	// EnableVersionInfo enables version info metrics.
	EnableVersionInfo bool `json:"enable_version_info" yaml:"enable_version_info"`
	// EnableMemory enables memory metrics.
	EnableMemory bool `json:"enable_memory" yaml:"enable_memory"`
	// EnableGoroutine enables goroutine metrics.
	EnableGoroutine bool `json:"enable_goroutine" yaml:"enable_goroutine"`
	// EnableCGO enables cgo metrics.
	EnableCGO bool `json:"enable_cgo" yaml:"enable_cgo"`
}

Metrics represents the configuration for the metrics.

func (*Metrics) Bind added in v1.7.17

func (m *Metrics) Bind() *Metrics

Bind binds the actual data from the Metrics receiver fields.

type Mirror added in v1.7.11

type Mirror struct {
	// Net represents the network configuration tcp, udp, unix domain socket.
	Net *Net `json:"net,omitempty" yaml:"net"`

	// GRPCClient represents the configurations for gRPC client.
	Client *GRPCClient `json:"client" yaml:"client"`

	// SelfMirrorAddr represents the address for the self Mirror Gateway.
	SelfMirrorAddr string `json:"self_mirror_addr" yaml:"self_mirror_addr"`

	// GatewayAddr represents the address for the Vald Gateway (e.g lb-gateway).
	GatewayAddr string `json:"gateway_addr" yaml:"gateway_addr"`

	// PodName represents the mirror gateway pod name.
	PodName string `json:"pod_name" yaml:"pod_name"`

	// RegisterDuration represents the duration to register Mirror Gateway.
	RegisterDuration string `json:"register_duration" yaml:"register_duration"`

	// Namespace represents the target namespace to discover ValdMirrorTarget resource.
	Namespace string `json:"namespace" yaml:"namespace"`

	// DiscoveryDuration represents the duration to discover.
	DiscoveryDuration string `json:"discovery_duration" yaml:"discovery_duration"`

	// Colocation represents the colocation name.
	Colocation string `json:"colocation" yaml:"colocation"`

	// Group represents the group name of the Mirror Gateways.
	// It is used to discover ValdMirrorTarget resources with the same group name.
	Group string `json:"group" yaml:"group"`
}

Mirror represents the Mirror Gateway configuration.

func (*Mirror) Bind added in v1.7.11

func (m *Mirror) Bind() *Mirror

Bind binds the actual data from the Mirror receiver fields.

type MySQL

type MySQL struct {
	// TLS represents the TLS configuration.
	TLS *TLS `json:"tls" yaml:"tls"`
	// Net represents the network configuration.
	Net *Net `json:"net" yaml:"net"`
	// ConnMaxLifeTime specifies the maximum amount of time a connection may be reused.
	ConnMaxLifeTime string `json:"conn_max_life_time" yaml:"conn_max_life_time"`
	// Timezone specifies the timezone for the database connection (e.g. "Asia/Tokyo").
	Timezone string `json:"timezone" yaml:"timezone"`
	// Network specifies the network type (e.g., "tcp", "unix").
	Network string `json:"network" yaml:"network"`
	// User specifies the username for authentication.
	User string `json:"user" yaml:"user"`
	// Pass specifies the password for authentication.
	Pass string `json:"pass" yaml:"pass"`
	// Name specifies the database name.
	Name string `json:"name" yaml:"name"`
	// Charset specifies the character set (e.g. "utf8mb4").
	Charset string `json:"charset" yaml:"charset"`
	// Host specifies the host address.
	Host string `json:"host" yaml:"host"`
	// InitialPingTimeLimit specifies the timeout for the initial ping during startup.
	InitialPingTimeLimit string `json:"initial_ping_time_limit" yaml:"initial_ping_time_limit"`
	// InitialPingDuration specifies the interval for retrying the initial ping.
	InitialPingDuration string `json:"initial_ping_duration" yaml:"initial_ping_duration"`
	// DB specifies the database name (alias for Name).
	DB string `json:"db" yaml:"db"`
	// SocketPath specifies the unix domain socket path.
	SocketPath string `json:"socket_path" yaml:"socket_path"`
	// MaxIdleConns specifies the maximum number of idle connections in the pool.
	MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"`
	// MaxOpenConns specifies the maximum number of open connections to the database.
	MaxOpenConns int `json:"max_open_conns" yaml:"max_open_conns"`
	// Port specifies the port number.
	Port uint16 `json:"port" yaml:"port"`
}

MySQL represent the mysql configuration.

func (*MySQL) Bind

func (m *MySQL) Bind() *MySQL

Bind returns MySQL object whose some string value is filed value or environment value.

func (*MySQL) Opts added in v0.0.51

func (m *MySQL) Opts() ([]mysql.Option, error)

Opts creates and returns the slice with the functional options for the internal mysql package. When any errors occur, Opts returns the no functional options and the errors.

type NGT

type NGT struct {
	// KVSDB represents the KVS DB configuration.
	KVSDB *KVSDB `json:"kvsdb,omitempty" yaml:"kvsdb"`
	// VQueue represents the vector queue configuration.
	VQueue *VQueue `json:"vqueue,omitempty" yaml:"vqueue"`
	// ObjectType represents the object type.
	ObjectType string `json:"object_type,omitempty" yaml:"object_type" info:"object_type"`
	// ExportIndexInfoDuration represents the export index info duration.
	ExportIndexInfoDuration string `json:"export_index_info_duration,omitempty" yaml:"export_index_info_duration"`
	// IndexPath represents the index path.
	IndexPath string `json:"index_path,omitempty" yaml:"index_path"`
	// DistanceType represents the distance type.
	DistanceType string `json:"distance_type,omitempty" yaml:"distance_type" info:"distance_type"`
	// MinLoadIndexTimeout represents the minimum load index timeout.
	MinLoadIndexTimeout string `json:"min_load_index_timeout,omitempty" yaml:"min_load_index_timeout"`
	// PodNamespace represents the pod namespace.
	PodNamespace string `json:"namespace,omitempty" yaml:"namespace"`
	// PodName represents the pod name.
	PodName string `json:"pod_name,omitempty" yaml:"pod_name"`
	// AutoIndexDurationLimit represents the auto index duration limit.
	AutoIndexDurationLimit string `json:"auto_index_duration_limit,omitempty" yaml:"auto_index_duration_limit"`
	// AutoIndexCheckDuration represents the auto index check duration.
	AutoIndexCheckDuration string `json:"auto_index_check_duration,omitempty" yaml:"auto_index_check_duration"`
	// AutoSaveIndexDuration represents the auto save index duration.
	AutoSaveIndexDuration string `json:"auto_save_index_duration,omitempty" yaml:"auto_save_index_duration"`
	// LoadIndexTimeoutFactor represents the load index timeout factor.
	LoadIndexTimeoutFactor string `json:"load_index_timeout_factor,omitempty" yaml:"load_index_timeout_factor"`
	// InitialDelayMaxDuration represents the initial delay maximum duration.
	InitialDelayMaxDuration string `json:"initial_delay_max_duration,omitempty" yaml:"initial_delay_max_duration"`
	// MaxLoadIndexTimeout represents the maximum load index timeout.
	MaxLoadIndexTimeout string `json:"max_load_index_timeout,omitempty" yaml:"max_load_index_timeout"`
	// SearchEdgeSize represents the search edge size.
	SearchEdgeSize int `json:"search_edge_size,omitempty" yaml:"search_edge_size"`
	// BrokenIndexHistoryLimit represents the broken index history limit.
	BrokenIndexHistoryLimit int `json:"broken_index_history_limit,omitempty" yaml:"broken_index_history_limit"`
	// AutoIndexLength represents the auto index length.
	AutoIndexLength int `json:"auto_index_length,omitempty" yaml:"auto_index_length"`
	// Dimension represents the dimension of the vector.
	Dimension int `json:"dimension,omitempty" yaml:"dimension" info:"dimension"`
	// ErrorBufferLimit represents the error buffer limit.
	ErrorBufferLimit uint64 `json:"error_buffer_limit,omitempty" yaml:"error_buffer_limit"`
	// CreationEdgeSize represents the creation edge size.
	CreationEdgeSize int `json:"creation_edge_size,omitempty" yaml:"creation_edge_size"`
	// BulkInsertChunkSize represents the bulk insert chunk size.
	BulkInsertChunkSize int `json:"bulk_insert_chunk_size,omitempty" yaml:"bulk_insert_chunk_size"`
	// DefaultEpsilon represents the default epsilon.
	DefaultEpsilon float32 `json:"default_epsilon,omitempty" yaml:"default_epsilon"`
	// EpsilonForCreation represents the epsilon for creation.
	EpsilonForCreation float32 `json:"epsilon_for_creation,omitempty" yaml:"epsilon_for_creation"`
	// DefaultPoolSize represents the default pool size.
	DefaultPoolSize uint32 `json:"default_pool_size,omitempty" yaml:"default_pool_size"`
	// DefaultRadius represents the default radius.
	DefaultRadius float32 `json:"default_radius,omitempty" yaml:"default_radius"`
	// EnableInMemoryMode enables in-memory mode.
	EnableInMemoryMode bool `json:"enable_in_memory_mode,omitempty" yaml:"enable_in_memory_mode"`
	// EnableCopyOnWrite enables copy on write.
	EnableCopyOnWrite bool `json:"enable_copy_on_write,omitempty" yaml:"enable_copy_on_write"`
	// IsReadReplica enables read replica.
	IsReadReplica bool `json:"is_readreplica" yaml:"is_readreplica"`
	// EnableExportIndexInfoToK8s enables exporting index info to k8s.
	EnableExportIndexInfoToK8s bool `json:"enable_export_index_info_to_k8s" yaml:"enable_export_index_info_to_k8s"`
	// EnableProactiveGC enables proactive GC.
	EnableProactiveGC bool `json:"enable_proactive_gc,omitempty" yaml:"enable_proactive_gc"`
	// EnableStatistics enables statistics.
	EnableStatistics bool `json:"enable_statistics" yaml:"enable_statistics"`
}

NGT represent the ngt core configuration for server.

func (*NGT) Bind

func (n *NGT) Bind() *NGT

Bind returns NGT object whose some string value is filed value or environment value.

type Net added in v1.0.3

type Net struct {
	// DNS represents the DNS configuration.
	DNS *DNS `json:"dns,omitempty" yaml:"dns"`
	// Dialer represents the dialer configuration.
	Dialer *Dialer `json:"dialer,omitempty" yaml:"dialer"`
	// SocketOption represents the socket option configuration.
	SocketOption *SocketOption `json:"socket_option,omitempty" yaml:"socket_option"`
	// TLS represents the TLS configuration.
	TLS *TLS `json:"tls,omitempty" yaml:"tls"`
	// Network represents the network type.
	Network string `json:"network,omitempty" yaml:"network"`
}

Net represents the network configuration tcp, udp, unix domain socket.

func (*Net) Bind added in v1.0.3

func (t *Net) Bind() *Net

Bind binds the actual data from the Net fields.

func (*Net) Opts added in v1.0.3

func (t *Net) Opts() ([]net.DialerOption, error)

Opts creates the slice with the functional options for the net.Dialer options.

type OTLP added in v1.7.0

type OTLP struct {
	// Attribute represents the OTLP attribute configuration.
	Attribute *OTLPAttribute `json:"attribute" yaml:"attribute"`
	// CollectorEndpoint represents the collector endpoint.
	CollectorEndpoint string `json:"collector_endpoint" yaml:"collector_endpoint"`
	// TraceBatchTimeout represents the trace batch timeout.
	TraceBatchTimeout string `json:"trace_batch_timeout" yaml:"trace_batch_timeout"`
	// TraceExportTimeout represents the trace export timeout.
	TraceExportTimeout string `json:"trace_export_timeout" yaml:"trace_export_timeout"`
	// MetricsExportInterval represents the metrics export interval.
	MetricsExportInterval string `json:"metrics_export_interval" yaml:"metrics_export_interval"`
	// MetricsExportTimeout represents the metrics export timeout.
	MetricsExportTimeout string `json:"metrics_export_timeout" yaml:"metrics_export_timeout"`
	// TraceMaxExportBatchSize represents the trace max export batch size.
	TraceMaxExportBatchSize int `json:"trace_max_export_batch_size" yaml:"trace_max_export_batch_size"`
	// TraceMaxQueueSize represents the trace max queue size.
	TraceMaxQueueSize int `json:"trace_max_queue_size" yaml:"trace_max_queue_size"`
}

OTLP represents the configuration for the OTLP.

func (*OTLP) Bind added in v1.7.17

func (o *OTLP) Bind() *OTLP

Bind binds the actual data from the OTLP receiver fields.

type OTLPAttribute added in v1.7.0

type OTLPAttribute struct {
	// Namespace represents the namespace.
	Namespace string `json:"namespace" yaml:"namespace"`
	// PodName represents the pod name.
	PodName string `json:"pod_name" yaml:"pod_name"`
	// NodeName represents the node name.
	NodeName string `json:"node_name" yaml:"node_name"`
	// ServiceName represents the service name.
	ServiceName string `json:"service_name" yaml:"service_name"`
}

OTLPAttribute represents the configuration for the OTLP attribute.

func (*OTLPAttribute) Bind added in v1.7.0

func (o *OTLPAttribute) Bind() *OTLPAttribute

Bind binds the actual data from the OTLPAttribute receiver fields.

type ObjectConfig added in v1.7.11

type ObjectConfig struct {
	// FilterConfig represents the filter configuration.
	FilterConfig FilterConfig `json:"filter_config" yaml:"filter_config"`
}

ObjectConfig defines the desired state of object config.

func (*ObjectConfig) Bind added in v1.7.11

func (cfg *ObjectConfig) Bind() *ObjectConfig

type Observability added in v0.0.19

type Observability struct {
	// OTLP represents the OTLP configuration.
	OTLP *OTLP `json:"otlp" yaml:"otlp"`
	// Metrics represents the metrics configuration.
	Metrics *Metrics `json:"metrics" yaml:"metrics"`
	// Trace represents the trace configuration.
	Trace *Trace `json:"trace" yaml:"trace"`
	// Enabled enables observability.
	Enabled bool `json:"enabled" yaml:"enabled"`
}

Observability represents the configuration for the observability.

func (*Observability) Bind added in v0.0.19

func (o *Observability) Bind() *Observability

Bind binds the actual data from the Observability receiver fields.

type OperatorJobConfig added in v1.7.13

type OperatorJobConfig struct {
	// Image represents the image information.
	Image *BenchmarkJobImageInfo `info:"image" json:"image,omitempty" yaml:"image"`
	// BenchmarkJob represents the benchmark job configuration.
	*BenchmarkJob
}

OperatorJobConfig represents the general job configuration for operator.

type PoolConfig

type PoolConfig struct {
	// DataCenter represents the data center name.
	DataCenter string `json:"data_center" yaml:"data_center"`
	// DCAwareRouting enables DC aware routing.
	DCAwareRouting bool `json:"dc_aware_routing" yaml:"dc_aware_routing"`
	// NonLocalReplicasFallback enables non local replicas fallback.
	NonLocalReplicasFallback bool `json:"non_local_replicas_fallback" yaml:"non_local_replicas_fallback"`
	// ShuffleReplicas enables shuffle replicas.
	ShuffleReplicas bool `json:"shuffle_replicas" yaml:"shuffle_replicas"`
	// TokenAwareHostPolicy enables token aware host policy.
	TokenAwareHostPolicy bool `json:"token_aware_host_policy" yaml:"token_aware_host_policy"`
}

PoolConfig represents the configuration for the pool config.

func (*PoolConfig) Bind added in v1.7.17

func (pc *PoolConfig) Bind() *PoolConfig

Bind binds the actual data from the PoolConfig receiver fields.

type ReadReplica added in v1.7.10

type ReadReplica struct {
	// IDKey represents the ID key.
	IDKey string `json:"id_key,omitempty" yaml:"id_key"`
	// Enabled enables read replica.
	Enabled bool `json:"enabled,omitempty" yaml:"enabled"`
}

ReadReplica represents the read replica configuration.

func (*ReadReplica) Bind added in v1.7.10

func (r *ReadReplica) Bind() *ReadReplica

func (*ReadReplica) GetEnabled added in v1.7.10

func (r *ReadReplica) GetEnabled() bool

func (*ReadReplica) GetIDKey added in v1.7.10

func (r *ReadReplica) GetIDKey() string

type ReadReplicaClient added in v1.7.11

type ReadReplicaClient struct {
	// Client represents the gRPC client configuration.
	Client *GRPCClient `json:"client" yaml:"client"`
	// AgentClientOptions represents the agent client options.
	AgentClientOptions *GRPCClient `json:"agent_client_options" yaml:"agent_client_options"`
	// Duration represents the duration.
	Duration string `json:"duration" yaml:"duration"`
}

ReadReplicaClient represents a configuration of grpc client for read replica.

func (*ReadReplicaClient) Bind added in v1.7.11

Bind binds the actual data from the ReadReplicaClient receiver field.

type ReadReplicaRotate added in v1.7.9

type ReadReplicaRotate struct {
	// AgentNamespace represents the agent namespace.
	AgentNamespace string `json:"agent_namespace" yaml:"agent_namespace"`
	// ReadReplicaLabelKey represents the read replica label key.
	ReadReplicaLabelKey string `json:"read_replica_label_key" yaml:"read_replica_label_key"`
	// TargetReadReplicaID represents the target read replica ID.
	TargetReadReplicaID string `json:"target_read_replica_id" yaml:"target_read_replica_id"`
	// VolumeName represents the volume name.
	VolumeName string `json:"volume_name" yaml:"volume_name"`
}

func (*ReadReplicaRotate) Bind added in v1.7.9

type ReconnectionPolicy

type ReconnectionPolicy struct {
	// InitialInterval represents the initial interval.
	InitialInterval string `json:"initial_interval" yaml:"initial_interval"`
	// MaxRetries represents the maximum retry count.
	MaxRetries int `json:"max_retries" yaml:"max_retries"`
}

ReconnectionPolicy represents the configuration for the reconnection policy.

func (*ReconnectionPolicy) Bind added in v1.7.17

Bind binds the actual data from the ReconnectionPolicy receiver fields.

type Redis

type Redis struct {
	// Net represents the network configuration.
	Net *Net `json:"tcp,omitempty" yaml:"net"`
	// TLS represents the TLS configuration.
	TLS *TLS `json:"tls,omitempty" yaml:"tls"`
	// MinRetryBackoff specifies the minimum duration to wait before retrying a failed operation.
	MinRetryBackoff string `json:"min_retry_backoff,omitempty" yaml:"min_retry_backoff"`
	// SentinelPassword specifies the password for Redis Sentinel authentication.
	SentinelPassword string `json:"sentinel_password,omitempty" yaml:"sentinel_password"`
	// IdleTimeout specifies the duration after which an idle connection is closed.
	IdleTimeout string `json:"idle_timeout,omitempty" yaml:"idle_timeout"`
	// InitialPingDuration specifies the timeout for the initial ping check when establishing a connection.
	InitialPingDuration string `json:"initial_ping_duration,omitempty" yaml:"initial_ping_duration"`
	// InitialPingTimeLimit specifies the total time limit for initial ping checks during startup.
	InitialPingTimeLimit string `json:"initial_ping_time_limit,omitempty" yaml:"initial_ping_time_limit"`
	// KVPrefix specifies the key prefix used for Key-Value data (e.g. metadata).
	KVPrefix string `json:"kv_prefix,omitempty" yaml:"kv_prefix"`
	// KeyPref specifies the global key prefix applied to all Redis keys.
	KeyPref string `json:"key_pref,omitempty" yaml:"key_pref"`
	// MaxConnAge specifies the maximum duration a connection can be reused before being closed.
	MaxConnAge string `json:"max_conn_age,omitempty" yaml:"max_conn_age"`
	// WriteTimeout specifies the timeout for write operations.
	WriteTimeout string `json:"write_timeout,omitempty" yaml:"write_timeout"`
	// VKPrefix specifies the key prefix used for Vector-Key data.
	VKPrefix string `json:"vk_prefix,omitempty" yaml:"vk_prefix"`
	// MaxRetryBackoff specifies the maximum duration to wait before retrying a failed operation.
	MaxRetryBackoff string `json:"max_retry_backoff,omitempty" yaml:"max_retry_backoff"`
	// Username specifies the username for Redis ACL authentication.
	Username string `json:"username,omitempty" yaml:"username"`
	// DialTimeout specifies the timeout for establishing a new connection.
	DialTimeout string `json:"dial_timeout,omitempty" yaml:"dial_timeout"`
	// Network specifies the network type (e.g., "tcp", "unix").
	Network string `json:"network,omitempty" yaml:"network"`
	// IdleCheckFrequency specifies the interval at which the pool checks for and closes idle connections.
	IdleCheckFrequency string `json:"idle_check_frequency,omitempty" yaml:"idle_check_frequency"`
	// ReadTimeout specifies the timeout for read operations.
	ReadTimeout string `json:"read_timeout,omitempty" yaml:"read_timeout"`
	// Password specifies the password for Redis authentication.
	Password string `json:"password,omitempty" yaml:"password"`
	// PrefixDelimiter specifies the delimiter used between key parts (e.g., ":").
	PrefixDelimiter string `json:"prefix_delimiter,omitempty" yaml:"prefix_delimiter"`
	// SentinelMasterName specifies the name of the master set in Redis Sentinel configuration.
	SentinelMasterName string `json:"sentinel_main_name,omitempty" yaml:"sentinel_main_name"`
	// PoolTimeout specifies the timeout for waiting for a connection from the pool.
	PoolTimeout string `json:"pool_timeout,omitempty" yaml:"pool_timeout"`
	// Addrs specifies the list of Redis server addresses (host:port).
	Addrs []string `json:"addrs,omitempty" yaml:"addrs"`
	// PoolSize specifies the maximum number of socket connections.
	PoolSize int `json:"pool_size,omitempty" yaml:"pool_size"`
	// DB specifies the Redis database index to select.
	DB int `json:"db,omitempty" yaml:"db"`
	// MinIdleConns specifies the minimum number of idle connections to maintain in the pool.
	MinIdleConns int `json:"min_idle_conns,omitempty" yaml:"min_idle_conns"`
	// MaxRetries specifies the maximum number of retries for failed operations.
	MaxRetries int `json:"max_retries,omitempty" yaml:"max_retries"`
	// MaxRedirects specifies the maximum number of redirects (e.g., MOVED, ASK) to follow in a cluster.
	MaxRedirects int `json:"max_redirects,omitempty" yaml:"max_redirects"`
	// RouteByLatency enables routing read operations to the nearest replica based on latency monitoring.
	RouteByLatency bool `json:"route_by_latency,omitempty" yaml:"route_by_latency"`
	// RouteRandomly enables routing read operations to random replicas for load balancing.
	RouteRandomly bool `json:"route_randomly,omitempty" yaml:"route_randomly"`
	// ReadOnly enables read-only mode, preventing write operations.
	ReadOnly bool `json:"read_only,omitempty" yaml:"read_only"`
}

Redis represents the configuration for redis cluster.

func (*Redis) Bind

func (r *Redis) Bind() *Redis

Bind binds the actual data from the Redis receiver fields.

func (*Redis) Opts added in v0.0.51

func (r *Redis) Opts() (opts []redis.Option, err error)

Opts creates the functional option list from the Redis. If the error occurs, it will return no functional options and the error.

type RemoveConfig added in v1.7.11

type RemoveConfig struct {
	// Timestamp represents the timestamp.
	Timestamp string `json:"timestamp,omitempty"`
	// SkipStrictExistCheck enables skipping strict existence check.
	SkipStrictExistCheck bool `json:"skip_strict_exist_check,omitempty"`
}

RemoveConfig defines the desired state of remove config.

func (*RemoveConfig) Bind added in v1.7.11

func (cfg *RemoveConfig) Bind() *RemoveConfig

type RetryPolicy

type RetryPolicy struct {
	// MinDuration represents the minimum duration.
	MinDuration string `json:"min_duration" yaml:"min_duration"`
	// MaxDuration represents the maximum duration.
	MaxDuration string `json:"max_duration" yaml:"max_duration"`
	// NumRetries represents the number of retries.
	NumRetries int `json:"num_retries" yaml:"num_retries"`
}

RetryPolicy represents the configuration for the retry policy.

func (*RetryPolicy) Bind added in v1.7.17

func (rp *RetryPolicy) Bind() *RetryPolicy

Bind binds the actual data from the RetryPolicy receiver fields.

type RoundTripper

type RoundTripper struct {
	// TLSHandshakeTimeout represents the TLS handshake timeout.
	TLSHandshakeTimeout string `json:"tls_handshake_timeout" yaml:"tls_handshake_timeout"`
	// IdleConnTimeout represents the idle connection timeout.
	IdleConnTimeout string `json:"idle_conn_timeout" yaml:"idle_conn_timeout"`
	// ResponseHeaderTimeout represents the response header timeout.
	ResponseHeaderTimeout string `json:"response_header_timeout" yaml:"response_header_timeout"`
	// ExpectContinueTimeout represents the expect continue timeout.
	ExpectContinueTimeout string `json:"expect_continue_timeout" yaml:"expect_continue_timeout"`
	// MaxIdleConns represents the maximum idle connections.
	MaxIdleConns int `json:"max_idle_conns" yaml:"max_idle_conns"`
	// MaxIdleConnsPerHost represents the maximum idle connections per host.
	MaxIdleConnsPerHost int `json:"max_idle_conns_per_host" yaml:"max_idle_conns_per_host"`
	// MaxConnsPerHost represents the maximum connections per host.
	MaxConnsPerHost int `json:"max_conns_per_host" yaml:"max_conns_per_host"`
	// MaxResponseHeaderSize represents the maximum response header size.
	MaxResponseHeaderSize int64 `json:"max_response_header_size" yaml:"max_response_header_size"`
	// WriteBufferSize represents the write buffer size.
	WriteBufferSize int64 `json:"write_buffer_size" yaml:"write_buffer_size"`
	// ReadBufferSize represents the read buffer size.
	ReadBufferSize int64 `json:"read_buffer_size" yaml:"read_buffer_size"`
	// ForceAttemptHTTP2 enables force attempt HTTP2.
	ForceAttemptHTTP2 bool `json:"force_attempt_http_2" yaml:"force_attempt_http_2"`
}

RoundTripper represents the round trip configuration for transport.

func (*RoundTripper) Bind

func (r *RoundTripper) Bind() *RoundTripper

Bind binds the actual data from the RoundTripper receiver fields.

type S3Config added in v0.0.38

type S3Config struct {
	// Endpoint represents the S3 endpoint.
	Endpoint string `json:"endpoint" yaml:"endpoint"`
	// Region represents the S3 region.
	Region string `json:"region" yaml:"region"`
	// AccessKey represents the access key.
	AccessKey string `json:"access_key" yaml:"access_key"`
	// SecretAccessKey represents the secret access key.
	SecretAccessKey string `json:"secret_access_key" yaml:"secret_access_key"`
	// Token represents the session token.
	Token string `json:"token" yaml:"token"`
	// MaxChunkSize represents the maximum chunk size.
	MaxChunkSize string `json:"max_chunk_size" yaml:"max_chunk_size"`
	// MaxPartSize represents the maximum part size.
	MaxPartSize string `json:"max_part_size" yaml:"max_part_size"`
	// MaxRetries represents the maximum retry count.
	MaxRetries int `json:"max_retries" yaml:"max_retries"`
	// UseARNRegion enables using ARN region.
	UseARNRegion bool `json:"use_arn_region" yaml:"use_arn_region"`
	// UseDualStack enables using dual stack.
	UseDualStack bool `json:"use_dual_stack" yaml:"use_dual_stack"`
	// EnableSSL enables SSL.
	EnableSSL bool `json:"enable_ssl" yaml:"enable_ssl"`
	// EnableParamValidation enables parameter validation.
	EnableParamValidation bool `json:"enable_param_validation" yaml:"enable_param_validation"`
	// Enable100Continue enables 100-continue.
	Enable100Continue bool `json:"enable_100_continue" yaml:"enable_100_continue"`
	// EnableContentMD5Validation enables content MD5 validation.
	EnableContentMD5Validation bool `json:"enable_content_md5_validation" yaml:"enable_content_md5_validation"`
	// EnableEndpointDiscovery enables endpoint discovery.
	EnableEndpointDiscovery bool `json:"enable_endpoint_discovery" yaml:"enable_endpoint_discovery"`
	// EnableEndpointHostPrefix enables endpoint host prefix.
	EnableEndpointHostPrefix bool `json:"enable_endpoint_host_prefix" yaml:"enable_endpoint_host_prefix"`
	// UseAccelerate enables using accelerate.
	UseAccelerate bool `json:"use_accelerate" yaml:"use_accelerate"`
	// ForcePathStyle enables forcing path style.
	ForcePathStyle bool `json:"force_path_style" yaml:"force_path_style"`
}

S3Config represents S3Config configuration.

func (*S3Config) Bind added in v0.0.38

func (s *S3Config) Bind() *S3Config

Bind binds the actual data from the S3Config receiver field.

type SearchConfig added in v1.7.11

type SearchConfig struct {
	// Timeout represents the timeout.
	Timeout string `json:"timeout,omitempty"`
	// AggregationAlgorithm represents the aggregation algorithm.
	AggregationAlgorithm string `json:"aggregation_algorithm,omitempty"`
	// Epsilon represents the epsilon.
	Epsilon float32 `json:"epsilon,omitempty"`
	// Radius represents the radius.
	Radius float32 `json:"radius,omitempty"`
	// Num represents the number of results.
	Num int32 `json:"num,omitempty"`
	// MinNum represents the minimum number of results.
	MinNum int32 `json:"min_num,omitempty"`
	// EnableLinearSearch enables linear search.
	EnableLinearSearch bool `json:"enable_linear_search,omitempty"`
}

SearchConfig defines the desired state of search config.

func (*SearchConfig) Bind added in v1.7.11

func (cfg *SearchConfig) Bind() *SearchConfig

type Selector added in v1.3.0

type Selector struct {
	// Labels represents the labels.
	Labels map[string]string `json:"labels,omitempty" yaml:"labels"`
	// Fields represents the fields.
	Fields map[string]string `json:"fields,omitempty" yaml:"fields"`
}

Selector represents the selector configuration.

func (*Selector) Bind added in v1.3.0

func (s *Selector) Bind() *Selector

Bind binds the actual data from the Selector receiver field.

func (*Selector) GetFields added in v1.6.0

func (s *Selector) GetFields() map[string]string

func (*Selector) GetLabels added in v1.6.0

func (s *Selector) GetLabels() map[string]string

type Selectors added in v1.3.0

type Selectors struct {
	// Pod represents the pod selector.
	Pod *Selector `json:"pod,omitempty" yaml:"pod"`
	// Node represents the node selector.
	Node *Selector `json:"node,omitempty" yaml:"node"`
	// NodeMetrics represents the node metrics selector.
	NodeMetrics *Selector `json:"node_metrics,omitempty" yaml:"node_metrics"`
	// PodMetrics represents the pod metrics selector.
	PodMetrics *Selector `json:"pod_metrics,omitempty" yaml:"pod_metrics"`
	// Service represents the service selector.
	Service *Selector `json:"service,omitempty" yaml:"service"`
}

Selectors represents the selector configuration.

func (*Selectors) Bind added in v1.3.0

func (s *Selectors) Bind() *Selectors

Bind binds the actual data from the Selectors receiver field.

func (*Selectors) GetNodeFields added in v1.6.0

func (s *Selectors) GetNodeFields() map[string]string

func (*Selectors) GetNodeLabels added in v1.6.0

func (s *Selectors) GetNodeLabels() map[string]string

func (*Selectors) GetNodeMetricsFields added in v1.6.0

func (s *Selectors) GetNodeMetricsFields() map[string]string

func (*Selectors) GetNodeMetricsLabels added in v1.6.0

func (s *Selectors) GetNodeMetricsLabels() map[string]string

func (*Selectors) GetPodFields added in v1.6.0

func (s *Selectors) GetPodFields() map[string]string

func (*Selectors) GetPodLabels added in v1.6.0

func (s *Selectors) GetPodLabels() map[string]string

func (*Selectors) GetPodMetricsFields added in v1.6.0

func (s *Selectors) GetPodMetricsFields() map[string]string

func (*Selectors) GetPodMetricsLabels added in v1.6.0

func (s *Selectors) GetPodMetricsLabels() map[string]string

func (*Selectors) GetServiceFields added in v1.7.10

func (s *Selectors) GetServiceFields() map[string]string

func (*Selectors) GetServiceLabels added in v1.7.10

func (s *Selectors) GetServiceLabels() map[string]string

type Server

type Server struct {
	// GRPC represents the gRPC configuration.
	GRPC *GRPC `json:"grpc,omitempty" yaml:"grpc"`
	// SocketOption represents the socket option configuration.
	SocketOption *SocketOption `json:"socket_option,omitempty" yaml:"socket_option"`
	// HTTP represents the HTTP configuration.
	HTTP *HTTP `json:"http,omitempty" yaml:"http"`
	// Name represents the server name.
	Name string `json:"name,omitempty" yaml:"name"`
	// Network represents the network type (tcp, unix, etc.).
	Network string `json:"network,omitempty" yaml:"network"`
	// Host represents the server host.
	Host string `json:"host,omitempty" yaml:"host"`
	// SocketPath represents the socket path.
	SocketPath string `json:"socket_path,omitempty" yaml:"socket_path"`
	// Mode represents the server mode (gRPC, REST, GraphQL).
	Mode string `json:"mode,omitempty" yaml:"mode"` // gRPC, REST, GraphQL
	// ProbeWaitTime represents the probe wait time.
	ProbeWaitTime string `json:"probe_wait_time,omitempty" yaml:"probe_wait_time"`
	// Restart enables server restart on failure.
	Restart bool `json:"restart,omitempty" yaml:"restart"`
	// Port represents the server port.
	Port uint16 `json:"port,omitempty" yaml:"port"`
}

Server represents the server configuration.

func (*Server) Bind

func (s *Server) Bind() *Server

Bind binds the actual value from the Server struct field.

func (*Server) Opts

func (s *Server) Opts() []server.Option

Opts sets the functional options into the []server.Option slice using the Server struct fields' value.

type Servers

type Servers struct {
	// TLS represent server tls configuration.
	TLS *TLS `json:"tls" yaml:"tls"`

	// FullShutdownDuration represent summary duration of shutdown time
	FullShutdownDuration string `json:"full_shutdown_duration" yaml:"full_shutdown_duration"`

	// Server represent server configuration.
	Servers []*Server `json:"servers" yaml:"servers"`

	// HealthCheckServers represent health check server configuration
	HealthCheckServers []*Server `json:"health_check_servers" yaml:"health_check_servers"`

	// MetricsServers represent metrics exporter server such as golang's pprof server
	MetricsServers []*Server `json:"metrics_servers" yaml:"metrics_servers"`

	// StartUpStrategy represent starting order of server name
	StartUpStrategy []string `json:"startup_strategy" yaml:"startup_strategy"`

	// ShutdownStrategy represent shutdown order of server name
	ShutdownStrategy []string `json:"shutdown_strategy" yaml:"shutdown_strategy"`
}

Servers represents the configuration of server list.

func (*Servers) Bind

func (s *Servers) Bind() *Servers

Bind binds the actual value from the Servers struct field.

func (*Servers) GetGRPCStreamConcurrency added in v0.0.5

func (s *Servers) GetGRPCStreamConcurrency() (c int)

GetGRPCStreamConcurrency returns the gRPC stream concurrency.

type SocketOption added in v1.0.3

type SocketOption struct {
	// ReusePort enables SO_REUSEPORT.
	ReusePort bool `json:"reuse_port,omitempty" yaml:"reuse_port"`
	// ReuseAddr enables SO_REUSEADDR.
	ReuseAddr bool `json:"reuse_addr,omitempty" yaml:"reuse_addr"`
	// TCPFastOpen enables TCP_FASTOPEN.
	TCPFastOpen bool `json:"tcp_fast_open,omitempty" yaml:"tcp_fast_open"`
	// TCPNoDelay enables TCP_NODELAY.
	TCPNoDelay bool `json:"tcp_no_delay,omitempty" yaml:"tcp_no_delay"`
	// TCPCork enables TCP_CORK.
	TCPCork bool `json:"tcp_cork,omitempty" yaml:"tcp_cork"`
	// TCPQuickAck enables TCP_QUICKACK.
	TCPQuickAck bool `json:"tcp_quick_ack,omitempty" yaml:"tcp_quick_ack"`
	// TCPDeferAccept enables TCP_DEFER_ACCEPT.
	TCPDeferAccept bool `json:"tcp_defer_accept,omitempty" yaml:"tcp_defer_accept"`
	// IPTransparent enables IP_TRANSPARENT.
	IPTransparent bool `json:"ip_transparent,omitempty" yaml:"ip_transparent"`
	// IPRecoverDestinationAddr enables IP_RECVORIGDSTADDR.
	IPRecoverDestinationAddr bool `json:"ip_recover_destination_addr,omitempty" yaml:"ip_recover_destination_addr"`
}

SocketOption represents the socket configurations.

func (*SocketOption) Bind added in v1.0.3

func (s *SocketOption) Bind() *SocketOption

Bind binds the actual data from the SocketOption fields.

func (*SocketOption) ToSocketFlag added in v1.0.3

func (s *SocketOption) ToSocketFlag() control.SocketFlag

ToSocketFlag returns the control.SocketFlag defined as uint along with the SocketOption's fields.

type TLS

type TLS struct {
	// Cert represents the certificate file path.
	Cert string `json:"cert" yaml:"cert"`
	// Key represents the key file path.
	Key string `json:"key" yaml:"key"`
	// CA represents the CA certificate file path.
	CA string `json:"ca" yaml:"ca"`
	// CRL represents the CRL file path.
	CRL string `json:"crl" yaml:"crl"`
	// ServerName represents the server name.
	ServerName string `json:"server_name" yaml:"server_name"`
	// ClientAuth represents the client authentication type (NoClientCert, RequestClientCert, RequireAnyClientCert, VerifyClientCertIfGiven, RequireAndVerifyClientCert).
	ClientAuth string `json:"client_auth" yaml:"client_auth"`
	// Enabled enables TLS.
	Enabled bool `json:"enabled" yaml:"enabled"`
	// InsecureSkipVerify enables skipping verification.
	InsecureSkipVerify bool `json:"insecure_skip_verify" yaml:"insecure_skip_verify"`
	// HotReload enables hot reload of certificates.
	HotReload bool `json:"hot_reload" yaml:"hot_reload"`
}

TLS represent the TLS configuration for server.

func (*TLS) Bind

func (t *TLS) Bind() *TLS

Bind returns TLS object whose every value except Enabled is field value of environment value.

func (*TLS) Opts

func (t *TLS) Opts() []tls.Option

Opts returns []tls.Option object whose every value is field value.

type Trace added in v0.0.19

type Trace struct {
	// Enabled enables trace.
	Enabled bool `json:"enabled" yaml:"enabled"`
}

Trace represents the configuration for the trace.

func (*Trace) Bind added in v1.7.17

func (t *Trace) Bind() *Trace

Bind binds the actual data from the Trace receiver fields.

type Transport

type Transport struct {
	// RoundTripper represents the round tripper configuration.
	RoundTripper *RoundTripper `json:"round_tripper" yaml:"round_tripper"`
	// Backoff represents the backoff configuration.
	Backoff *Backoff `json:"backoff" yaml:"backoff"`
}

TCP represents the TCP configuration for server.

func (*Transport) Bind

func (t *Transport) Bind() *Transport

Bind binds the actual data from the Transport receiver fields.

type UpdateConfig added in v1.7.11

type UpdateConfig struct {
	// Timestamp represents the timestamp.
	Timestamp string `json:"timestamp,omitempty"`
	// SkipStrictExistCheck enables skipping strict existence check.
	SkipStrictExistCheck bool `json:"skip_strict_exist_check,omitempty"`
	// DisableBalancedUpdate disables balanced update.
	DisableBalancedUpdate bool `json:"disable_balanced_update,omitempty"`
}

UpdateConfig defines the desired state of update config.

func (*UpdateConfig) Bind added in v1.7.11

func (cfg *UpdateConfig) Bind() *UpdateConfig

type UpsertConfig added in v1.7.11

type UpsertConfig struct {
	// Timestamp represents the timestamp.
	Timestamp string `json:"timestamp,omitempty"`
	// SkipStrictExistCheck enables skipping strict existence check.
	SkipStrictExistCheck bool `json:"skip_strict_exist_check,omitempty"`
	// DisableBalancedUpdate disables balanced update.
	DisableBalancedUpdate bool `json:"disable_balanced_update,omitempty"`
}

UpsertConfig defines the desired state of upsert config.

func (*UpsertConfig) Bind added in v1.7.11

func (cfg *UpsertConfig) Bind() *UpsertConfig

type VQueue added in v1.0.4

type VQueue struct {
	// InsertBufferPoolSize represents insert time ordered slice buffer size
	InsertBufferPoolSize int `json:"insert_buffer_pool_size,omitempty" yaml:"insert_buffer_pool_size"`

	// DeleteBufferPoolSize represents delete time ordered slice buffer size
	DeleteBufferPoolSize int `json:"delete_buffer_pool_size,omitempty" yaml:"delete_buffer_pool_size"`
}

VQueue represent the ngt vector queue buffer size.

func (*VQueue) Bind added in v1.7.17

func (vq *VQueue) Bind() *VQueue

Bind binds the actual data from the VQueue receiver fields.

Jump to

Keyboard shortcuts

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