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_cloud_logging_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_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 CloudLoggingConfig

        type CloudLoggingConfig struct {
        
        	// The name of the project, where Logdog logs are exported.
        	Destination string `protobuf:"bytes,1,opt,name=destination,proto3" json:"destination,omitempty"`
        	// If true, Logdog uses its default credential for log exports
        	// to the destination project. If false, it uses the project-scoped account.
        	//
        	// NOTE: Using the global logdog account is insecure from a client-isolation
        	// point of view, and means that any LUCI client could send their logs to
        	// your project. This likely wouldn't happen maliciously, but if someone
        	// copy-pasted your configuration into their own project, you may end up
        	// paying to index and store their logs.
        	UseGlobalLogdogAccount bool `` /* 132-byte string literal not displayed */
        	// contains filtered or unexported fields
        }

          CloudLoggingConfig specifies how Logdog should export log entries to Cloud Logging.

          func (*CloudLoggingConfig) Descriptor

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

            Deprecated: Use CloudLoggingConfig.ProtoReflect.Descriptor instead.

            func (*CloudLoggingConfig) GetDestination

            func (x *CloudLoggingConfig) GetDestination() string

            func (*CloudLoggingConfig) GetUseGlobalLogdogAccount

            func (x *CloudLoggingConfig) GetUseGlobalLogdogAccount() bool

            func (*CloudLoggingConfig) ProtoMessage

            func (*CloudLoggingConfig) ProtoMessage()

            func (*CloudLoggingConfig) ProtoReflect

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

            func (*CloudLoggingConfig) Reset

            func (x *CloudLoggingConfig) Reset()

            func (*CloudLoggingConfig) String

            func (x *CloudLoggingConfig) 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"`
            	// Coordinator is the coordinator service configuration.
            	Coordinator *Coordinator `protobuf:"bytes,20,opt,name=coordinator,proto3" json:"coordinator,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) GetCoordinator

                func (x *Config) GetCoordinator() *Coordinator

                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"`
                	// 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) 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 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"`
                    	// Project-specific CloudLogging configuration.
                    	//
                    	// If not specified, no Logdog logs will be exported to Cloud Logging.
                    	CloudLoggingConfig *CloudLoggingConfig `protobuf:"bytes,13,opt,name=cloud_logging_config,json=cloudLoggingConfig,proto3" json:"cloud_logging_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) GetCloudLoggingConfig

                        func (x *ProjectConfig) GetCloudLoggingConfig() *CloudLoggingConfig

                        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 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"`
                                }