Documentation

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

    Constants

    This section is empty.

    Variables

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

    Functions

    This section is empty.

    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,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 {
            
            	// The maximum number of concurrent transport messages to process. If <= 0,
            	// a default will be chosen based on the transport.
            	MaxConcurrentMessages int32 `` /* 127-byte string literal not displayed */
            	// 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,proto3" 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,proto3" json:"state_cache_size,omitempty"`
            	// The maximum amount of time that cached stream state is valid. If <= 0, a
            	// default will be used.
            	StateCacheExpiration *durationpb.Duration `protobuf:"bytes,4,opt,name=state_cache_expiration,json=stateCacheExpiration,proto3" json:"state_cache_expiration,omitempty"`
            	// contains filtered or unexported fields
            }

              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() *durationpb.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 *durationpb.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 *durationpb.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 *durationpb.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() *durationpb.Duration

                        func (*Coordinator) GetArchiveSettleDelay

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

                        func (*Coordinator) GetArchiveTopic

                        func (x *Coordinator) GetArchiveTopic() string

                        func (*Coordinator) GetPrefixExpiration

                        func (x *Coordinator) GetPrefixExpiration() *durationpb.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 *durationpb.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 *durationpb.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() *durationpb.Duration

                            func (*ProjectConfig) GetPrefixExpiration

                            func (x *ProjectConfig) GetPrefixExpiration() *durationpb.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"`
                                            }