svcconfig

package
v0.0.0-...-678bb0e Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2017 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package svcconfig is a generated protocol buffer package.

It is generated from these files:

github.com/luci/luci-go/logdog/api/config/svcconfig/archival.proto
github.com/luci/luci-go/logdog/api/config/svcconfig/config.proto
github.com/luci/luci-go/logdog/api/config/svcconfig/project.proto
github.com/luci/luci-go/logdog/api/config/svcconfig/storage.proto
github.com/luci/luci-go/logdog/api/config/svcconfig/transport.proto

It has these top-level messages:

ArchiveIndexConfig
Config
Coordinator
Collector
Archivist
ProjectConfig
Storage
Transport

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

Constants

View Source
const (
	// ServiceConfigPath is the config service path of the Config protobuf.
	ServiceConfigPath = "services.cfg"
)

Variables

This section is empty.

Functions

func ProjectConfigPath

func ProjectConfigPath(serviceName string) string

ProjectConfigPath returns the path of a LogDog project config given the LogDog service's name.

Types

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" 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" 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" json:"byte_range,omitempty"`
}

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)

func (*ArchiveIndexConfig) GetByteRange

func (m *ArchiveIndexConfig) GetByteRange() int32

func (*ArchiveIndexConfig) GetPrefixRange

func (m *ArchiveIndexConfig) GetPrefixRange() int32

func (*ArchiveIndexConfig) GetStreamRange

func (m *ArchiveIndexConfig) GetStreamRange() int32

func (*ArchiveIndexConfig) ProtoMessage

func (*ArchiveIndexConfig) ProtoMessage()

func (*ArchiveIndexConfig) Reset

func (m *ArchiveIndexConfig) Reset()

func (*ArchiveIndexConfig) String

func (m *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" 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" 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" 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" json:"archive_index_config,omitempty"`
	// If true, always render the log entries as a binary file during archival,
	// regardless of whether a specific stream has a binary file extension.
	//
	// By default, a stream will only be rendered as a binary if its descriptor
	// includes a non-empty binary file extension field.
	//
	// The binary stream consists of each log entry's data rendered back-to-back.
	//   - For text streams, this produces a text document similar to the source
	//     text.
	//   - For binary streams and datagram streams, this reproduces the source
	//     contiguous binary file.
	//   - For datagram streams, the size-prefixed datagrams are written back-to-
	//     back.
	//
	// Enabling this option will consume roughly twice the archival space, as each
	// stream's data will be archived once as a series of log entries and once as
	// a binary file.
	//
	// Streams without an explicit binary file extension will default to ".bin" if
	// this is enabled.
	RenderAllStreams bool `protobuf:"varint,13,opt,name=render_all_streams,json=renderAllStreams" json:"render_all_streams,omitempty"`
}

Configuration for the Archivist microservice.

func (*Archivist) Descriptor

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

func (*Archivist) GetArchiveIndexConfig

func (m *Archivist) GetArchiveIndexConfig() *ArchiveIndexConfig

func (*Archivist) GetGsStagingBucket

func (m *Archivist) GetGsStagingBucket() string

func (*Archivist) GetRenderAllStreams

func (m *Archivist) GetRenderAllStreams() bool

func (*Archivist) GetSubscription

func (m *Archivist) GetSubscription() string

func (*Archivist) GetTasks

func (m *Archivist) GetTasks() int32

func (*Archivist) ProtoMessage

func (*Archivist) ProtoMessage()

func (*Archivist) Reset

func (m *Archivist) Reset()

func (*Archivist) String

func (m *Archivist) String() string

type Collector

type Collector struct {
	// The maximum number of concurrent transport messages to process. If <= 0,
	// a default will be chosen based on the transport.
	MaxConcurrentMessages int32 `protobuf:"varint,1,opt,name=max_concurrent_messages,json=maxConcurrentMessages" json:"max_concurrent_messages,omitempty"`
	// The maximum number of concurrent workers to process each ingested message.
	// If <= 0, collector.DefaultMaxMessageWorkers will be used.
	MaxMessageWorkers int32 `protobuf:"varint,2,opt,name=max_message_workers,json=maxMessageWorkers" json:"max_message_workers,omitempty"`
	// The maximum number of log stream states to cache locally. If <= 0, a
	// default will be used.
	StateCacheSize int32 `protobuf:"varint,3,opt,name=state_cache_size,json=stateCacheSize" json:"state_cache_size,omitempty"`
	// The maximum amount of time that cached stream state is valid. If <= 0, a
	// default will be used.
	StateCacheExpiration *google_protobuf.Duration `protobuf:"bytes,4,opt,name=state_cache_expiration,json=stateCacheExpiration" json:"state_cache_expiration,omitempty"`
}

Collector is the set of configuration parameters for Collector instances.

func (*Collector) Descriptor

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

func (*Collector) GetMaxConcurrentMessages

func (m *Collector) GetMaxConcurrentMessages() int32

func (*Collector) GetMaxMessageWorkers

func (m *Collector) GetMaxMessageWorkers() int32

func (*Collector) GetStateCacheExpiration

func (m *Collector) GetStateCacheExpiration() *google_protobuf.Duration

func (*Collector) GetStateCacheSize

func (m *Collector) GetStateCacheSize() int32

func (*Collector) ProtoMessage

func (*Collector) ProtoMessage()

func (*Collector) Reset

func (m *Collector) Reset()

func (*Collector) String

func (m *Collector) String() string

type Config

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

Config is the overall instance configuration.

func (*Config) Descriptor

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

func (*Config) GetArchivist

func (m *Config) GetArchivist() *Archivist

func (*Config) GetCollector

func (m *Config) GetCollector() *Collector

func (*Config) GetCoordinator

func (m *Config) GetCoordinator() *Coordinator

func (*Config) GetStorage

func (m *Config) GetStorage() *Storage

func (*Config) GetTransport

func (m *Config) GetTransport() *Transport

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (m *Config) Reset()

func (*Config) String

func (m *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" 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" 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" 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 *google_protobuf.Duration `protobuf:"bytes,21,opt,name=prefix_expiration,json=prefixExpiration" 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" 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 *google_protobuf.Duration `protobuf:"bytes,31,opt,name=archive_settle_delay,json=archiveSettleDelay" 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 *google_protobuf.Duration `protobuf:"bytes,32,opt,name=archive_delay_max,json=archiveDelayMax" json:"archive_delay_max,omitempty"`
}

Coordinator is the Coordinator service configuration.

func (*Coordinator) Descriptor

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

func (*Coordinator) GetAdminAuthGroup

func (m *Coordinator) GetAdminAuthGroup() string

func (*Coordinator) GetArchiveDelayMax

func (m *Coordinator) GetArchiveDelayMax() *google_protobuf.Duration

func (*Coordinator) GetArchiveSettleDelay

func (m *Coordinator) GetArchiveSettleDelay() *google_protobuf.Duration

func (*Coordinator) GetArchiveTopic

func (m *Coordinator) GetArchiveTopic() string

func (*Coordinator) GetPrefixExpiration

func (m *Coordinator) GetPrefixExpiration() *google_protobuf.Duration

func (*Coordinator) GetRpcAllowOrigins

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

func (*Coordinator) GetServiceAuthGroup

func (m *Coordinator) GetServiceAuthGroup() string

func (*Coordinator) ProtoMessage

func (*Coordinator) ProtoMessage()

func (*Coordinator) Reset

func (m *Coordinator) Reset()

func (*Coordinator) String

func (m *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" 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" 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 *google_protobuf.Duration `protobuf:"bytes,4,opt,name=max_stream_age,json=maxStreamAge" 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 *google_protobuf.Duration `protobuf:"bytes,5,opt,name=prefix_expiration,json=prefixExpiration" 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" json:"archive_gs_bucket,omitempty"`
	// If true, always create an additional data file that is the rendered content
	// of the stream data. By default, only streams that explicitly register a
	// binary file extension must be rendered.
	//
	// See Config's "always_create_binary" for more information.
	RenderAllStreams bool `protobuf:"varint,11,opt,name=render_all_streams,json=renderAllStreams" json:"render_all_streams,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" json:"archive_index_config,omitempty"`
}

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)

func (*ProjectConfig) GetArchiveGsBucket

func (m *ProjectConfig) GetArchiveGsBucket() string

func (*ProjectConfig) GetArchiveIndexConfig

func (m *ProjectConfig) GetArchiveIndexConfig() *ArchiveIndexConfig

func (*ProjectConfig) GetMaxStreamAge

func (m *ProjectConfig) GetMaxStreamAge() *google_protobuf.Duration

func (*ProjectConfig) GetPrefixExpiration

func (m *ProjectConfig) GetPrefixExpiration() *google_protobuf.Duration

func (*ProjectConfig) GetReaderAuthGroups

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

func (*ProjectConfig) GetRenderAllStreams

func (m *ProjectConfig) GetRenderAllStreams() bool

func (*ProjectConfig) GetWriterAuthGroups

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

func (*ProjectConfig) ProtoMessage

func (*ProjectConfig) ProtoMessage()

func (*ProjectConfig) Reset

func (m *ProjectConfig) Reset()

func (*ProjectConfig) String

func (m *ProjectConfig) String() string

type Storage

type Storage struct {
	// Type is the transport configuration that is being used.
	//
	// Types that are valid to be assigned to Type:
	//	*Storage_Bigtable
	Type isStorage_Type `protobuf_oneof:"Type"`
	// The maximum lifetime of a log's intermediate storage entries. The Storage
	// instance is free to begin deleting log entries if they are older than this.
	//
	// It is recommended that this be set to 4*[terminal archival threshold],
	// where the terminal archival threshold is the amount of time that the
	// Coordinator will wait on a log stream that has not been terminated before
	// constructing an archive.
	//
	// Waiting at least the archival threshold ensures that the log entries are
	// available for streams that expire. Waiting longer than the threshold is
	// good because a user may be streaming logs from intermediate storage as they
	// become archived. Waiting a *lot* longer is useful to prevent data loss in
	// the event of issues with the archival process.
	MaxLogAge *google_protobuf.Duration `protobuf:"bytes,2,opt,name=max_log_age,json=maxLogAge" json:"max_log_age,omitempty"`
}

Storage is the in-transit storage configuration.

func (*Storage) Descriptor

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

func (*Storage) GetBigtable

func (m *Storage) GetBigtable() *Storage_BigTable

func (*Storage) GetMaxLogAge

func (m *Storage) GetMaxLogAge() *google_protobuf.Duration

func (*Storage) GetType

func (m *Storage) GetType() isStorage_Type

func (*Storage) ProtoMessage

func (*Storage) ProtoMessage()

func (*Storage) Reset

func (m *Storage) Reset()

func (*Storage) String

func (m *Storage) String() string

func (*Storage) XXX_OneofFuncs

func (*Storage) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type Storage_BigTable

type Storage_BigTable struct {
	// The name of the BigTable instance project.
	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
	// The name of the BigTable instance.
	Instance string `protobuf:"bytes,2,opt,name=instance" json:"instance,omitempty"`
	// The name of the BigTable instance's log table.
	LogTableName string `protobuf:"bytes,3,opt,name=log_table_name,json=logTableName" json:"log_table_name,omitempty"`
}

BigTable is the set of BigTable configuration parameters.

func (*Storage_BigTable) Descriptor

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

func (*Storage_BigTable) GetInstance

func (m *Storage_BigTable) GetInstance() string

func (*Storage_BigTable) GetLogTableName

func (m *Storage_BigTable) GetLogTableName() string

func (*Storage_BigTable) GetProject

func (m *Storage_BigTable) GetProject() string

func (*Storage_BigTable) ProtoMessage

func (*Storage_BigTable) ProtoMessage()

func (*Storage_BigTable) Reset

func (m *Storage_BigTable) Reset()

func (*Storage_BigTable) String

func (m *Storage_BigTable) String() string

type Storage_Bigtable

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

type Transport

type Transport struct {
	// Type is the transport configuration that is being used.
	//
	// Types that are valid to be assigned to Type:
	//	*Transport_Pubsub
	Type isTransport_Type `protobuf_oneof:"Type"`
}

Transport is the transport configuration.

func (*Transport) Descriptor

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

func (*Transport) GetPubsub

func (m *Transport) GetPubsub() *Transport_PubSub

func (*Transport) GetType

func (m *Transport) GetType() isTransport_Type

func (*Transport) ProtoMessage

func (*Transport) ProtoMessage()

func (*Transport) Reset

func (m *Transport) Reset()

func (*Transport) String

func (m *Transport) String() string

func (*Transport) XXX_OneofFuncs

func (*Transport) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{})

XXX_OneofFuncs is for the internal use of the proto package.

type Transport_PubSub

type Transport_PubSub struct {
	// The name of the authentication group for administrators.
	Project string `protobuf:"bytes,1,opt,name=project" json:"project,omitempty"`
	// The name of the authentication group for administrators.
	Topic string `protobuf:"bytes,2,opt,name=topic" json:"topic,omitempty"`
	// The name of the authentication group for administrators.
	Subscription string `protobuf:"bytes,3,opt,name=subscription" json:"subscription,omitempty"`
}

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

func (*Transport_PubSub) Descriptor

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

func (*Transport_PubSub) GetProject

func (m *Transport_PubSub) GetProject() string

func (*Transport_PubSub) GetSubscription

func (m *Transport_PubSub) GetSubscription() string

func (*Transport_PubSub) GetTopic

func (m *Transport_PubSub) GetTopic() string

func (*Transport_PubSub) ProtoMessage

func (*Transport_PubSub) ProtoMessage()

func (*Transport_PubSub) Reset

func (m *Transport_PubSub) Reset()

func (*Transport_PubSub) String

func (m *Transport_PubSub) String() string

type Transport_Pubsub

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

Directories

Path Synopsis
Package main implements the LogDog Coordinator validation binary.
Package main implements the LogDog Coordinator validation binary.

Jump to

Keyboard shortcuts

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