luci: go.chromium.org/luci/logdog/api/config/svcconfig Index | Files

package svcconfig

import "go.chromium.org/luci/logdog/api/config/svcconfig"

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

Package Files

archival.pb.go config.pb.go doc.go gen.go project.pb.go storage.pb.go transport.pb.go

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 Uses

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 Uses

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

Deprecated: Use ArchiveIndexConfig.ProtoReflect.Descriptor instead.

func (*ArchiveIndexConfig) GetByteRange Uses

func (x *ArchiveIndexConfig) GetByteRange() int32

func (*ArchiveIndexConfig) GetPrefixRange Uses

func (x *ArchiveIndexConfig) GetPrefixRange() int32

func (*ArchiveIndexConfig) GetStreamRange Uses

func (x *ArchiveIndexConfig) GetStreamRange() int32

func (*ArchiveIndexConfig) ProtoMessage Uses

func (*ArchiveIndexConfig) ProtoMessage()

func (*ArchiveIndexConfig) ProtoReflect Uses

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

func (*ArchiveIndexConfig) Reset Uses

func (x *ArchiveIndexConfig) Reset()

func (*ArchiveIndexConfig) String Uses

func (x *ArchiveIndexConfig) String() string

type Archivist Uses

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 Uses

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

Deprecated: Use Archivist.ProtoReflect.Descriptor instead.

func (*Archivist) GetArchiveIndexConfig Uses

func (x *Archivist) GetArchiveIndexConfig() *ArchiveIndexConfig

func (*Archivist) GetGsStagingBucket Uses

func (x *Archivist) GetGsStagingBucket() string

func (*Archivist) GetSubscription Uses

func (x *Archivist) GetSubscription() string

func (*Archivist) GetTasks Uses

func (x *Archivist) GetTasks() int32

func (*Archivist) ProtoMessage Uses

func (*Archivist) ProtoMessage()

func (*Archivist) ProtoReflect Uses

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

func (*Archivist) Reset Uses

func (x *Archivist) Reset()

func (*Archivist) String Uses

func (x *Archivist) String() string

type Collector Uses

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,proto3" 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,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 *duration.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 Uses

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

Deprecated: Use Collector.ProtoReflect.Descriptor instead.

func (*Collector) GetMaxConcurrentMessages Uses

func (x *Collector) GetMaxConcurrentMessages() int32

func (*Collector) GetMaxMessageWorkers Uses

func (x *Collector) GetMaxMessageWorkers() int32

func (*Collector) GetStateCacheExpiration Uses

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

func (*Collector) GetStateCacheSize Uses

func (x *Collector) GetStateCacheSize() int32

func (*Collector) ProtoMessage Uses

func (*Collector) ProtoMessage()

func (*Collector) ProtoReflect Uses

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

func (*Collector) Reset Uses

func (x *Collector) Reset()

func (*Collector) String Uses

func (x *Collector) String() string

type Config Uses

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 Uses

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

Deprecated: Use Config.ProtoReflect.Descriptor instead.

func (*Config) GetArchivist Uses

func (x *Config) GetArchivist() *Archivist

func (*Config) GetCollector Uses

func (x *Config) GetCollector() *Collector

func (*Config) GetCoordinator Uses

func (x *Config) GetCoordinator() *Coordinator

func (*Config) GetStorage Uses

func (x *Config) GetStorage() *Storage

func (*Config) GetTransport Uses

func (x *Config) GetTransport() *Transport

func (*Config) ProtoMessage Uses

func (*Config) ProtoMessage()

func (*Config) ProtoReflect Uses

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

func (*Config) Reset Uses

func (x *Config) Reset()

func (*Config) String Uses

func (x *Config) String() string

type Coordinator Uses

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 Uses

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

Deprecated: Use Coordinator.ProtoReflect.Descriptor instead.

func (*Coordinator) GetAdminAuthGroup Uses

func (x *Coordinator) GetAdminAuthGroup() string

func (*Coordinator) GetArchiveDelayMax Uses

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

func (*Coordinator) GetArchiveSettleDelay Uses

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

func (*Coordinator) GetArchiveTopic Uses

func (x *Coordinator) GetArchiveTopic() string

func (*Coordinator) GetPrefixExpiration Uses

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

func (*Coordinator) GetRpcAllowOrigins Uses

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

func (*Coordinator) GetServiceAuthGroup Uses

func (x *Coordinator) GetServiceAuthGroup() string

func (*Coordinator) ProtoMessage Uses

func (*Coordinator) ProtoMessage()

func (*Coordinator) ProtoReflect Uses

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

func (*Coordinator) Reset Uses

func (x *Coordinator) Reset()

func (*Coordinator) String Uses

func (x *Coordinator) String() string

type ProjectConfig Uses

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 Uses

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

Deprecated: Use ProjectConfig.ProtoReflect.Descriptor instead.

func (*ProjectConfig) GetArchiveGsBucket Uses

func (x *ProjectConfig) GetArchiveGsBucket() string

func (*ProjectConfig) GetArchiveIndexConfig Uses

func (x *ProjectConfig) GetArchiveIndexConfig() *ArchiveIndexConfig

func (*ProjectConfig) GetMaxStreamAge Uses

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

func (*ProjectConfig) GetPrefixExpiration Uses

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

func (*ProjectConfig) GetReaderAuthGroups Uses

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

func (*ProjectConfig) GetWriterAuthGroups Uses

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

func (*ProjectConfig) ProtoMessage Uses

func (*ProjectConfig) ProtoMessage()

func (*ProjectConfig) ProtoReflect Uses

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

func (*ProjectConfig) Reset Uses

func (x *ProjectConfig) Reset()

func (*ProjectConfig) String Uses

func (x *ProjectConfig) String() string

type Storage Uses

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 Uses

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

Deprecated: Use Storage.ProtoReflect.Descriptor instead.

func (*Storage) GetBigtable Uses

func (x *Storage) GetBigtable() *Storage_BigTable

func (*Storage) GetType Uses

func (m *Storage) GetType() isStorage_Type

func (*Storage) ProtoMessage Uses

func (*Storage) ProtoMessage()

func (*Storage) ProtoReflect Uses

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

func (*Storage) Reset Uses

func (x *Storage) Reset()

func (*Storage) String Uses

func (x *Storage) String() string

type Storage_BigTable Uses

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 Uses

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

Deprecated: Use Storage_BigTable.ProtoReflect.Descriptor instead.

func (*Storage_BigTable) GetInstance Uses

func (x *Storage_BigTable) GetInstance() string

func (*Storage_BigTable) GetLogTableName Uses

func (x *Storage_BigTable) GetLogTableName() string

func (*Storage_BigTable) GetProject Uses

func (x *Storage_BigTable) GetProject() string

func (*Storage_BigTable) ProtoMessage Uses

func (*Storage_BigTable) ProtoMessage()

func (*Storage_BigTable) ProtoReflect Uses

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

func (*Storage_BigTable) Reset Uses

func (x *Storage_BigTable) Reset()

func (*Storage_BigTable) String Uses

func (x *Storage_BigTable) String() string

type Storage_Bigtable Uses

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

type Transport Uses

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 Uses

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

Deprecated: Use Transport.ProtoReflect.Descriptor instead.

func (*Transport) GetPubsub Uses

func (x *Transport) GetPubsub() *Transport_PubSub

func (*Transport) GetType Uses

func (m *Transport) GetType() isTransport_Type

func (*Transport) ProtoMessage Uses

func (*Transport) ProtoMessage()

func (*Transport) ProtoReflect Uses

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

func (*Transport) Reset Uses

func (x *Transport) Reset()

func (*Transport) String Uses

func (x *Transport) String() string

type Transport_PubSub Uses

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 Uses

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

Deprecated: Use Transport_PubSub.ProtoReflect.Descriptor instead.

func (*Transport_PubSub) GetProject Uses

func (x *Transport_PubSub) GetProject() string

func (*Transport_PubSub) GetSubscription Uses

func (x *Transport_PubSub) GetSubscription() string

func (*Transport_PubSub) GetTopic Uses

func (x *Transport_PubSub) GetTopic() string

func (*Transport_PubSub) ProtoMessage Uses

func (*Transport_PubSub) ProtoMessage()

func (*Transport_PubSub) ProtoReflect Uses

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

func (*Transport_PubSub) Reset Uses

func (x *Transport_PubSub) Reset()

func (*Transport_PubSub) String Uses

func (x *Transport_PubSub) String() string

type Transport_Pubsub Uses

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

Package svcconfig imports 7 packages (graph) and is imported by 18 packages. Updated 2020-12-06. Refresh now. Tools for package owners.