Documentation
¶
Overview ¶
Package logdog implements output to a Logdog server via PubSub.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Auth ¶
type Auth interface { // Project is the current project taken from LUCI_CONTEXT (or ""). Project() string // Realm is the current realm taken from LUCI_CONTEXT (or ""). Realm() string // RPC returns an authenticator to use for RegisterPrefix RPC call. RPC() *auth.Authenticator // PubSub returns an authenticator to use for PubSub calls. PubSub() *auth.Authenticator }
Auth incapsulates an authentication scheme to use.
Construct it using either LegacyAuth() or RealmsAwareAuth().
func LegacyAuth ¶
func LegacyAuth(a *auth.Authenticator) Auth
LegacyAuth returns an authentication scheme with pre-realms logic.
Will be eventually removed once all call sites are aware of realms.
func RealmsAwareAuth ¶
RealmsAwareAuth returns an authentication scheme with realms-aware logic.
The given context will be used to:
- Grab the current realm name from LUCI_CONTEXT.
- Construct a transport that uses the default account for auth (thus the context should have the default task account selected in it).
- Switch into "system" local account and construct a transport that uses this account for PubSub calls.
If there's no realm in the context, degrades to LegacyAuth using the "system" local account for all calls, as was the way before the realms mode.
type Config ¶
type Config struct { // Auth incapsulates an authentication scheme to use. // // Construct it using either LegacyAuth() or RealmsAwareAuth(). Auth Auth // Host is the name of the LogDog Host to connect to. Host string // Project is the project that this stream belongs to. Project string // Prefix is the stream prefix to register. Prefix types.StreamName // PrefixExpiration is the prefix expiration to use when registering. // If zero, no expiration will be expressed to the Coordinator, and it will // choose based on its configuration. PrefixExpiration time.Duration // SourceInfo, if not empty, is auxiliary source information to register // alongside the stream. SourceInfo []string // PublishContext is the special Context to use for publishing messages. If // nil, the Context supplied to Register will be used. // // This is useful when the Context supplied to Register responds to // cancellation (e.g., user sends SIGTERM), but we might not want to // immediately cancel pending publishes due to flushing. PublishContext context.Context // RPCTimeout, if > 0, is the timeout to apply to an individual RPC. RPCTimeout time.Duration }
Config is the set of configuration parameters for this Output instance.
Click to show internal directories.
Click to hide internal directories.