Back to godoc.org

Package svcconfig

v0.0.0-...-1557bcf
Latest Go to latest

The latest major version is .

Published: Aug 13, 2020 | License: Apache-2.0 | Module: github.com/luci/luci-go

Overview

Package svcconfig stores service configuration for a LogDog instance.

Each LogDog instantiation will have a single Config protobuf. It will be located under config set "services/<app-id>", path "services.cfg". The path is exposed via ServiceConfigFilename.

Each LogDog project will have its own project-specific configuration. It will be located under config set "projects/<project-name>", path "<app-id>.cfg".

Package svcconfig contains LogDog service configuration protobufs.

The package name here must match the protobuf package name, as the generated files will reside in the same directory.

Index

Variables

var File_go_chromium_org_luci_logdog_api_config_svcconfig_archival_proto protoreflect.FileDescriptor
var File_go_chromium_org_luci_logdog_api_config_svcconfig_config_proto protoreflect.FileDescriptor
var File_go_chromium_org_luci_logdog_api_config_svcconfig_project_proto protoreflect.FileDescriptor
var File_go_chromium_org_luci_logdog_api_config_svcconfig_storage_proto protoreflect.FileDescriptor
var File_go_chromium_org_luci_logdog_api_config_svcconfig_transport_proto protoreflect.FileDescriptor

type ArchiveIndexConfig

type ArchiveIndexConfig struct {

	// If not zero, the maximum number of stream indices between index entries.
	StreamRange int32 `protobuf:"varint,1,opt,name=stream_range,json=streamRange,proto3" json:"stream_range,omitempty"`
	// If not zero, the maximum number of prefix indices between index entries.
	PrefixRange int32 `protobuf:"varint,2,opt,name=prefix_range,json=prefixRange,proto3" json:"prefix_range,omitempty"`
	// If not zero, the maximum number of log data bytes between index entries.
	ByteRange int32 `protobuf:"varint,3,opt,name=byte_range,json=byteRange,proto3" json:"byte_range,omitempty"`
	// contains filtered or unexported fields
}

ArchiveIndexConfig specifies how archive indexes should be generated.

By default, each log entry will be present in the index. This is generally overkill; instead, the index can be more sparse at the expense of a slightly higher data load.

func (*ArchiveIndexConfig) Descriptor

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

Deprecated: Use ArchiveIndexConfig.ProtoReflect.Descriptor instead.

func (*ArchiveIndexConfig) GetByteRange

func (x *ArchiveIndexConfig) GetByteRange() int32

func (*ArchiveIndexConfig) GetPrefixRange

func (x *ArchiveIndexConfig) GetPrefixRange() int32

func (*ArchiveIndexConfig) GetStreamRange

func (x *ArchiveIndexConfig) GetStreamRange() int32

func (*ArchiveIndexConfig) ProtoMessage

func (*ArchiveIndexConfig) ProtoMessage()

func (*ArchiveIndexConfig) ProtoReflect

func (x *ArchiveIndexConfig) ProtoReflect() protoreflect.Message

func (*ArchiveIndexConfig) Reset

func (x *ArchiveIndexConfig) Reset()

func (*ArchiveIndexConfig) String

func (x *ArchiveIndexConfig) String() string

type Archivist

type Archivist struct {

	// The name of the archival Pub/Sub subscription.
	//
	// This should be connected to "archive_topic", and the Archivist must have
	// permission to consume from this subscription.
	Subscription string `protobuf:"bytes,1,opt,name=subscription,proto3" json:"subscription,omitempty"`
	// The number of tasks to run at a time. If blank, the archivist will choose a
	// default value.
	Tasks int32 `protobuf:"varint,2,opt,name=tasks,proto3" json:"tasks,omitempty"`
	// The name of the staging storage bucket. All projects will share the same
	// staging bucket. Logs for a project will be staged under:
	//
	// gs://<gs_staging_bucket>/<app-id>/<project-name>/...
	GsStagingBucket string `protobuf:"bytes,3,opt,name=gs_staging_bucket,json=gsStagingBucket,proto3" json:"gs_staging_bucket,omitempty"`
	// Service-wide index configuration. This is used if per-project configuration
	// is not specified.
	ArchiveIndexConfig *ArchiveIndexConfig `protobuf:"bytes,10,opt,name=archive_index_config,json=archiveIndexConfig,proto3" json:"archive_index_config,omitempty"`
	// contains filtered or unexported fields
}

Configuration for the Archivist microservice.

func (*Archivist) Descriptor

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

Deprecated: Use Archivist.ProtoReflect.Descriptor instead.

func (*Archivist) GetArchiveIndexConfig

func (x *Archivist) GetArchiveIndexConfig() *ArchiveIndexConfig

func (*Archivist) GetGsStagingBucket

func (x *Archivist) GetGsStagingBucket() string

func (*Archivist) GetSubscription

func (x *Archivist) GetSubscription() string

func (*Archivist) GetTasks

func (x *Archivist) GetTasks() int32

func (*Archivist) ProtoMessage

func (*Archivist) ProtoMessage()

func (*Archivist) ProtoReflect

func (x *Archivist) ProtoReflect() protoreflect.Message

func (*Archivist) Reset

func (x *Archivist) Reset()

func (*Archivist) String

func (x *Archivist) String() string

type Collector

type Collector struct {
	MaxConcurrentMessages int32 "" /* 127 byte string literal not displayed */

	MaxMessageWorkers int32 `protobuf:"varint,2,opt,name=max_message_workers,json=maxMessageWorkers,proto3" json:"max_message_workers,omitempty"`

	StateCacheSize int32 `protobuf:"varint,3,opt,name=state_cache_size,json=stateCacheSize,proto3" json:"state_cache_size,omitempty"`

	StateCacheExpiration *duration.Duration `protobuf:"bytes,4,opt,name=state_cache_expiration,json=stateCacheExpiration,proto3" json:"state_cache_expiration,omitempty"`

}

Collector is the set of configuration parameters for Collector instances.

func (*Collector) Descriptor

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

Deprecated: Use Collector.ProtoReflect.Descriptor instead.

func (*Collector) GetMaxConcurrentMessages

func (x *Collector) GetMaxConcurrentMessages() int32

func (*Collector) GetMaxMessageWorkers

func (x *Collector) GetMaxMessageWorkers() int32

func (*Collector) GetStateCacheExpiration

func (x *Collector) GetStateCacheExpiration() *duration.Duration

func (*Collector) GetStateCacheSize

func (x *Collector) GetStateCacheSize() int32

func (*Collector) ProtoMessage

func (*Collector) ProtoMessage()

func (*Collector) ProtoReflect

func (x *Collector) ProtoReflect() protoreflect.Message

func (*Collector) Reset

func (x *Collector) Reset()

func (*Collector) String

func (x *Collector) String() string

type Config

type Config struct {

	// Configuration for the Butler's log transport.
	Transport *Transport `protobuf:"bytes,10,opt,name=transport,proto3" json:"transport,omitempty"`
	// Configuration for intermediate Storage.
	Storage *Storage `protobuf:"bytes,11,opt,name=storage,proto3" json:"storage,omitempty"`
	// Coordinator is the coordinator service configuration.
	Coordinator *Coordinator `protobuf:"bytes,20,opt,name=coordinator,proto3" json:"coordinator,omitempty"`
	// Collector is the collector fleet configuration.
	Collector *Collector `protobuf:"bytes,21,opt,name=collector,proto3" json:"collector,omitempty"`
	// Archivist microservice configuration.
	Archivist *Archivist `protobuf:"bytes,22,opt,name=archivist,proto3" json:"archivist,omitempty"`
	// contains filtered or unexported fields
}

Config is the overall instance configuration.

func (*Config) Descriptor

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

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) GetArchivist

func (x *Config) GetArchivist() *Archivist

func (*Config) GetCollector

func (x *Config) GetCollector() *Collector

func (*Config) GetCoordinator

func (x *Config) GetCoordinator() *Coordinator

func (*Config) GetStorage

func (x *Config) GetStorage() *Storage

func (*Config) GetTransport

func (x *Config) GetTransport() *Transport

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) ProtoReflect

func (x *Config) ProtoReflect() protoreflect.Message

func (*Config) Reset

func (x *Config) Reset()

func (*Config) String

func (x *Config) String() string

type Coordinator

type Coordinator struct {

	// The name of the authentication group for administrators.
	AdminAuthGroup string `protobuf:"bytes,10,opt,name=admin_auth_group,json=adminAuthGroup,proto3" json:"admin_auth_group,omitempty"`
	// The name of the authentication group for backend services.
	ServiceAuthGroup string `protobuf:"bytes,11,opt,name=service_auth_group,json=serviceAuthGroup,proto3" json:"service_auth_group,omitempty"`
	// A list of origin URLs that are allowed to perform CORS RPC calls.
	RpcAllowOrigins []string `protobuf:"bytes,20,rep,name=rpc_allow_origins,json=rpcAllowOrigins,proto3" json:"rpc_allow_origins,omitempty"`
	// The maximum amount of time after a prefix has been registered when log
	// streams may also be registered under that prefix.
	//
	// After the expiration period has passed, new log stream registration will
	// fail.
	//
	// Project configurations or stream prefix regitrations may override this by
	// providing >= 0 values for prefix expiration. The smallest configured
	// expiration will be applied.
	PrefixExpiration *duration.Duration `protobuf:"bytes,21,opt,name=prefix_expiration,json=prefixExpiration,proto3" json:"prefix_expiration,omitempty"`
	// The full path of the archival Pub/Sub topic.
	//
	// The Coordinator must have permission to publish to this topic.
	ArchiveTopic string `protobuf:"bytes,30,opt,name=archive_topic,json=archiveTopic,proto3" json:"archive_topic,omitempty"`
	// The amount of time after an archive request has been dispatched before it
	// should be executed.
	//
	// Since terminal messages can arrive out of order, the archival request may
	// be kicked off before all of the log stream data has been loaded into
	// intermediate storage. If this happens, the Archivist will retry archival
	// later autometically.
	//
	// This parameter is an optimization to stop the archivist from wasting its
	// time until the log stream has a reasonable expectation of being available.
	ArchiveSettleDelay *duration.Duration `protobuf:"bytes,31,opt,name=archive_settle_delay,json=archiveSettleDelay,proto3" json:"archive_settle_delay,omitempty"`
	// The amount of time before a log stream is candidate for archival regardless
	// of whether or not it's been terminated or complete.
	//
	// This is a failsafe designed to ensure that log streams with missing records
	// or no terminal record (e.g., Butler crashed) are eventually archived.
	//
	// This should be fairly large (days) to avoid prematurely archiving
	// long-running streams, but should be considerably smaller than the
	// intermediate storage data retention period.
	//
	// If a project's "max_stream_age" is smaller than this value, it will be used
	// on that project's streams.
	ArchiveDelayMax *duration.Duration `protobuf:"bytes,32,opt,name=archive_delay_max,json=archiveDelayMax,proto3" json:"archive_delay_max,omitempty"`
	// contains filtered or unexported fields
}

Coordinator is the Coordinator service configuration.

func (*Coordinator) Descriptor

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

Deprecated: Use Coordinator.ProtoReflect.Descriptor instead.

func (*Coordinator) GetAdminAuthGroup

func (x *Coordinator) GetAdminAuthGroup() string

func (*Coordinator) GetArchiveDelayMax

func (x *Coordinator) GetArchiveDelayMax() *duration.Duration

func (*Coordinator) GetArchiveSettleDelay

func (x *Coordinator) GetArchiveSettleDelay() *duration.Duration

func (*Coordinator) GetArchiveTopic

func (x *Coordinator) GetArchiveTopic() string

func (*Coordinator) GetPrefixExpiration

func (x *Coordinator) GetPrefixExpiration() *duration.Duration

func (*Coordinator) GetRpcAllowOrigins

func (x *Coordinator) GetRpcAllowOrigins() []string

func (*Coordinator) GetServiceAuthGroup

func (x *Coordinator) GetServiceAuthGroup() string

func (*Coordinator) ProtoMessage

func (*Coordinator) ProtoMessage()

func (*Coordinator) ProtoReflect

func (x *Coordinator) ProtoReflect() protoreflect.Message

func (*Coordinator) Reset

func (x *Coordinator) Reset()

func (*Coordinator) String

func (x *Coordinator) String() string

type ProjectConfig

type ProjectConfig struct {

	// The set of auth service groups that are permitted READ access to this
	// project's log streams.
	ReaderAuthGroups []string `protobuf:"bytes,2,rep,name=reader_auth_groups,json=readerAuthGroups,proto3" json:"reader_auth_groups,omitempty"`
	// The set of chrome-infra-auth groups that are permitted WRITE access to this
	// project's log streams.
	WriterAuthGroups []string `protobuf:"bytes,3,rep,name=writer_auth_groups,json=writerAuthGroups,proto3" json:"writer_auth_groups,omitempty"`
	// The maximum lifetime of a log stream.
	//
	// If a stream has not terminated after this period of time, it will be
	// forcefully archived, and additional stream data will be discarded.
	//
	// This is upper-bounded by the global "archive_delay_max" parameter.
	MaxStreamAge *duration.Duration `protobuf:"bytes,4,opt,name=max_stream_age,json=maxStreamAge,proto3" json:"max_stream_age,omitempty"`
	// The maximum amount of time after a prefix has been registered when log
	// streams may also be registered under that prefix.
	//
	// See Config's "prefix_expiration" for more information.
	PrefixExpiration *duration.Duration `protobuf:"bytes,5,opt,name=prefix_expiration,json=prefixExpiration,proto3" json:"prefix_expiration,omitempty"`
	// The archival Google Storage bucket name.
	//
	// Log streams artifacts will be stored in a subdirectory of this bucket:
	// gs://<archive_gs_bucket>/<app-id>/<project-name>/<log-path>/artifact...
	//
	// Note that the Archivist microservice must have WRITE access to this
	// bucket, and the Coordinator must have READ access.
	//
	// If this is not set, the logs will be archived in a project-named
	// subdirectory in the global "archive_gs_base" location.
	ArchiveGsBucket string `protobuf:"bytes,10,opt,name=archive_gs_bucket,json=archiveGsBucket,proto3" json:"archive_gs_bucket,omitempty"`
	// Project-specific archive index configuration.
	//
	// Any unspecified index configuration will default to the service archival
	// config.
	ArchiveIndexConfig *ArchiveIndexConfig `protobuf:"bytes,12,opt,name=archive_index_config,json=archiveIndexConfig,proto3" json:"archive_index_config,omitempty"`
	// contains filtered or unexported fields
}

ProjectConfig is a set of per-project configuration parameters. Each luci-config project must include one of these configs in order to register or view log streams in that project's log stream space.

A project's configuration should reside in the "projects/<project>" config set and be named "<app-id>.cfg".

Many of the parameters here can be bounded by GlobalConfig parameters.

func (*ProjectConfig) Descriptor

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

Deprecated: Use ProjectConfig.ProtoReflect.Descriptor instead.

func (*ProjectConfig) GetArchiveGsBucket

func (x *ProjectConfig) GetArchiveGsBucket() string

func (*ProjectConfig) GetArchiveIndexConfig

func (x *ProjectConfig) GetArchiveIndexConfig() *ArchiveIndexConfig

func (*ProjectConfig) GetMaxStreamAge

func (x *ProjectConfig) GetMaxStreamAge() *duration.Duration

func (*ProjectConfig) GetPrefixExpiration

func (x *ProjectConfig) GetPrefixExpiration() *duration.Duration

func (*ProjectConfig) GetReaderAuthGroups

func (x *ProjectConfig) GetReaderAuthGroups() []string

func (*ProjectConfig) GetWriterAuthGroups

func (x *ProjectConfig) GetWriterAuthGroups() []string

func (*ProjectConfig) ProtoMessage

func (*ProjectConfig) ProtoMessage()

func (*ProjectConfig) ProtoReflect

func (x *ProjectConfig) ProtoReflect() protoreflect.Message

func (*ProjectConfig) Reset

func (x *ProjectConfig) Reset()

func (*ProjectConfig) String

func (x *ProjectConfig) String() string

type Storage

type Storage struct {

	// Type is the transport configuration that is being used.
	//
	// Types that are assignable to Type:
	//	*Storage_Bigtable
	Type isStorage_Type `protobuf_oneof:"Type"`
	// contains filtered or unexported fields
}

Storage is the in-transit storage configuration.

func (*Storage) Descriptor

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

Deprecated: Use Storage.ProtoReflect.Descriptor instead.

func (*Storage) GetBigtable

func (x *Storage) GetBigtable() *Storage_BigTable

func (*Storage) GetType

func (m *Storage) GetType() isStorage_Type

func (*Storage) ProtoMessage

func (*Storage) ProtoMessage()

func (*Storage) ProtoReflect

func (x *Storage) ProtoReflect() protoreflect.Message

func (*Storage) Reset

func (x *Storage) Reset()

func (*Storage) String

func (x *Storage) String() string

type Storage_BigTable

type Storage_BigTable struct {

	// The name of the BigTable instance project.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// The name of the BigTable instance.
	Instance string `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"`
	// The name of the BigTable instance's log table.
	LogTableName string `protobuf:"bytes,3,opt,name=log_table_name,json=logTableName,proto3" json:"log_table_name,omitempty"`
	// contains filtered or unexported fields
}

BigTable is the set of BigTable configuration parameters.

func (*Storage_BigTable) Descriptor

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

Deprecated: Use Storage_BigTable.ProtoReflect.Descriptor instead.

func (*Storage_BigTable) GetInstance

func (x *Storage_BigTable) GetInstance() string

func (*Storage_BigTable) GetLogTableName

func (x *Storage_BigTable) GetLogTableName() string

func (*Storage_BigTable) GetProject

func (x *Storage_BigTable) GetProject() string

func (*Storage_BigTable) ProtoMessage

func (*Storage_BigTable) ProtoMessage()

func (*Storage_BigTable) ProtoReflect

func (x *Storage_BigTable) ProtoReflect() protoreflect.Message

func (*Storage_BigTable) Reset

func (x *Storage_BigTable) Reset()

func (*Storage_BigTable) String

func (x *Storage_BigTable) String() string

type Storage_Bigtable

type Storage_Bigtable struct {
	Bigtable *Storage_BigTable `protobuf:"bytes,1,opt,name=bigtable,proto3,oneof"`
}

type Transport

type Transport struct {

	// Type is the transport configuration that is being used.
	//
	// Types that are assignable to Type:
	//	*Transport_Pubsub
	Type isTransport_Type `protobuf_oneof:"Type"`
	// contains filtered or unexported fields
}

Transport is the transport configuration.

func (*Transport) Descriptor

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

Deprecated: Use Transport.ProtoReflect.Descriptor instead.

func (*Transport) GetPubsub

func (x *Transport) GetPubsub() *Transport_PubSub

func (*Transport) GetType

func (m *Transport) GetType() isTransport_Type

func (*Transport) ProtoMessage

func (*Transport) ProtoMessage()

func (*Transport) ProtoReflect

func (x *Transport) ProtoReflect() protoreflect.Message

func (*Transport) Reset

func (x *Transport) Reset()

func (*Transport) String

func (x *Transport) String() string

type Transport_PubSub

type Transport_PubSub struct {

	// The name of the authentication group for administrators.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// The name of the authentication group for administrators.
	Topic string `protobuf:"bytes,2,opt,name=topic,proto3" json:"topic,omitempty"`
	// The name of the authentication group for administrators.
	Subscription string `protobuf:"bytes,3,opt,name=subscription,proto3" json:"subscription,omitempty"`
	// contains filtered or unexported fields
}

PubSub is a transport configuration for Google Cloud Pub/Sub.

func (*Transport_PubSub) Descriptor

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

Deprecated: Use Transport_PubSub.ProtoReflect.Descriptor instead.

func (*Transport_PubSub) GetProject

func (x *Transport_PubSub) GetProject() string

func (*Transport_PubSub) GetSubscription

func (x *Transport_PubSub) GetSubscription() string

func (*Transport_PubSub) GetTopic

func (x *Transport_PubSub) GetTopic() string

func (*Transport_PubSub) ProtoMessage

func (*Transport_PubSub) ProtoMessage()

func (*Transport_PubSub) ProtoReflect

func (x *Transport_PubSub) ProtoReflect() protoreflect.Message

func (*Transport_PubSub) Reset

func (x *Transport_PubSub) Reset()

func (*Transport_PubSub) String

func (x *Transport_PubSub) String() string

type Transport_Pubsub

type Transport_Pubsub struct {
	Pubsub *Transport_PubSub `protobuf:"bytes,1,opt,name=pubsub,proto3,oneof"`
}

Package Files

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier