Documentation
¶
Index ¶
- Variables
- func AddTraceContext(span trace.Span) func(e *zerolog.Event)
- func BoolPointer(b bool) *bool
- func Debug(service Service, title string, data interface{})
- func DumpObject(d interface{})
- func DumpObjectDebug(d interface{})
- func DumpObjectInfo(d interface{})
- func EnsureDataDir(path string) (string, error)
- func Error(service Service, title string, err error)
- func ExpandTarBuffer(buf *bytes.Buffer, localPath string) error
- func GetDataDir(path string) string
- func GetGPUInfo() []string
- func GetLogger(service Service) *zerolog.Logger
- func GetOTelServiceName(service Service) string
- func GetServiceBadge(service Service) string
- func GetServiceString(service Service, st string) string
- func GetTarBuffer(localPath string) (*bytes.Buffer, error)
- func Info(service Service, title string, data interface{})
- func NewDetachedContext(parent context.Context) context.Context
- func NewMetrics(meter metric.Meter) (func() error, error)
- func RunCommand(name string, args []string, workingDir string) error
- func SetupGlobalLogger(service Service, provider *sdklog.LoggerProvider)
- func Trace(service Service, title string, data interface{})
- func WriteFile(path string, data []byte) error
- type CleanupManager
- type CommandContext
- type ControlLoop
- type LogsConfig
- type LogsOptions
- type MetricsConfig
- type MetricsOptions
- type OTelBridge
- type Service
- type ServiceLogger
- type Telemetry
- type TelemetryConfig
- type TelemetryOptions
- type VersionConfig
Constants ¶
This section is empty.
Variables ¶
var CommitSHA string
var Version string
Functions ¶
func AddTraceContext ¶
Add trace context to a log event
func BoolPointer ¶
func DumpObject ¶
func DumpObject(d interface{})
func DumpObjectDebug ¶
func DumpObjectDebug(d interface{})
func DumpObjectInfo ¶
func DumpObjectInfo(d interface{})
func EnsureDataDir ¶
func GetDataDir ¶
func GetGPUInfo ¶
func GetGPUInfo() []string
func GetOTelServiceName ¶
Convert service names to use standardized OTel underscores
func GetServiceBadge ¶
func GetServiceString ¶
func NewDetachedContext ¶
NewDetachedContext produces a new context that has a separate cancellation mechanism from its parent. This should be used when having to continue using a context after it has been canceled, such as cleaning up Docker resources after the context has been canceled but want to keep work associated with the same trace.
func NewMetrics ¶
Use the official OTel semantic conventions where it makes sense to: - System: https://opentelemetry.io/docs/specs/semconv/system/system-metrics/ - Process: https://opentelemetry.io/docs/specs/semconv/system/process-metrics/ - Network: https://opentelemetry.io/docs/specs/semconv/system/system-metrics/#network-metrics
func SetupGlobalLogger ¶
func SetupGlobalLogger(service Service, provider *sdklog.LoggerProvider)
Configure the default global logger
Types ¶
type CleanupManager ¶
type CleanupManager struct {
// contains filtered or unexported fields
}
CleanupManager provides utilities for ensuring that sub-goroutines can clean up their resources before the main goroutine exits. Can be used to register callbacks for long-running system processes.
func NewCleanupManager ¶
func NewCleanupManager() *CleanupManager
NewCleanupManager returns a new CleanupManager instance.
func (*CleanupManager) Cleanup ¶
func (cm *CleanupManager) Cleanup(ctx context.Context)
Cleanup runs all registered clean-up functions in sub-goroutines and waits for them all to complete before exiting.
func (*CleanupManager) RegisterCallback ¶
func (cm *CleanupManager) RegisterCallback(fn cleanUpWithoutContext)
RegisterCallback registers a clean-up function.
func (*CleanupManager) RegisterCallbackWithContext ¶
func (cm *CleanupManager) RegisterCallbackWithContext(fn cleanUpWithContext)
RegisterCallbackWithContext registers a clean-up function. The context passed is guaranteed not to be already canceled.
type CommandContext ¶
type CommandContext struct { Ctx context.Context Cm *CleanupManager CancelFunc context.CancelFunc }
func NewCommandContext ¶
func NewCommandContext(cmd *cobra.Command) *CommandContext
func NewSystemContext ¶
func NewSystemContext(ctx context.Context) *CommandContext
func NewTestingContext ¶
func NewTestingContext() *CommandContext
func (*CommandContext) Cleanup ¶
func (cmdContext *CommandContext) Cleanup()
type ControlLoop ¶
type ControlLoop struct {
// contains filtered or unexported fields
}
func NewControlLoop ¶
func (*ControlLoop) Start ¶
func (loop *ControlLoop) Start(runInitially bool) error
func (*ControlLoop) Trigger ¶
func (loop *ControlLoop) Trigger()
type LogsConfig ¶
type LogsOptions ¶
type MetricsConfig ¶
type MetricsOptions ¶
type OTelBridge ¶
type OTelBridge struct {
// contains filtered or unexported fields
}
OTelBridge bridges zerolog to OpenTelemetry
func NewOTelBridge ¶
func NewOTelBridge(provider *sdklog.LoggerProvider, service string, consoleWriter zerolog.ConsoleWriter) *OTelBridge
Create a bridge that forwards zerolog logs to OpenTelemetry and writes to a console writer
type ServiceLogger ¶
type ServiceLogger struct {
// contains filtered or unexported fields
}
func NewServiceLogger ¶
func NewServiceLogger(service Service) *ServiceLogger
Get a service logger (deprecated, prefer the GetLogger in new implementations)
func (*ServiceLogger) Debug ¶
func (s *ServiceLogger) Debug(title string, data interface{})
func (*ServiceLogger) Error ¶
func (s *ServiceLogger) Error(title string, err error)
func (*ServiceLogger) Info ¶
func (s *ServiceLogger) Info(title string, data interface{})
func (*ServiceLogger) Trace ¶
func (s *ServiceLogger) Trace(title string, data interface{})
type Telemetry ¶
type Telemetry struct { TracerProvider *trace.TracerProvider MeterProvider *metric.MeterProvider LoggerProvider *sdklog.LoggerProvider Shutdown func(context.Context) error }
func SetupOTelSDK ¶
func SetupOTelSDK(ctx context.Context, config TelemetryConfig, metricsConfig MetricsConfig, logsConfig LogsConfig) (telemetry Telemetry, err error)
type TelemetryConfig ¶
type TelemetryOptions ¶
type VersionConfig ¶
type VersionConfig struct {
// contains filtered or unexported fields
}
func NewVersionConfig ¶
func NewVersionConfig(minimumVersion string) (*VersionConfig, error)
func (*VersionConfig) IsSupported ¶
func (vc *VersionConfig) IsSupported(version string) (string, bool)