tools

package
v3.0.0-...-16f56ce Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2024 License: Apache-2.0, BSD-3-Clause, MIT Imports: 15 Imported by: 0

Documentation

Overview

Package tools contains utilities for Beam bootloader containers, such as for obtaining runtime provision information -- such as pipeline options. or for logging to the log service.

For Beam Internal use.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func JSONToProto

func JSONToProto(data string) (*google_pb.Struct, error)

JSONToProto converts JSON-encoded pipeline options to a proto struct.

func OptionsToProto

func OptionsToProto(v any) (*google_pb.Struct, error)

OptionsToProto converts pipeline options to a proto struct via JSON.

func ProtoToJSON

func ProtoToJSON(opt *google_pb.Struct) (string, error)

ProtoToJSON converts pipeline options from a proto struct to JSON.

func ProtoToOptions

func ProtoToOptions(opt *google_pb.Struct, v any) error

ProtoToOptions converts pipeline options from a proto struct via JSON.

func ProvisionInfo

func ProvisionInfo(ctx context.Context, endpoint string) (*fnpb.ProvisionInfo, error)

ProvisionInfo returns the runtime provisioning info for the worker.

Types

type BufferedLogger

type BufferedLogger struct {
	// contains filtered or unexported fields
}

BufferedLogger is a wrapper around the FnAPI logging client meant to be used in place of stdout and stderr in bootloader subprocesses. Not intended for Beam end users.

func NewBufferedLogger

func NewBufferedLogger(logger *Logger) *BufferedLogger

NewBufferedLogger returns a new BufferedLogger type by reference.

func NewBufferedLoggerWithFlushInterval

func NewBufferedLoggerWithFlushInterval(ctx context.Context, logger *Logger, interval time.Duration) *BufferedLogger

NewBufferedLoggerWithFlushInterval returns a new BufferedLogger type by reference. This type will flush logs periodically on Write() calls as well as when Flush*() functions are called.

func (*BufferedLogger) FlushAtDebug

func (b *BufferedLogger) FlushAtDebug(ctx context.Context)

FlushAtDebug flushes the contents of the buffer to the logging service at Debug.

func (*BufferedLogger) FlushAtError

func (b *BufferedLogger) FlushAtError(ctx context.Context)

FlushAtError flushes the contents of the buffer to the logging service at Error.

func (*BufferedLogger) Printf

func (b *BufferedLogger) Printf(ctx context.Context, format string, args ...any)

Prints directly to the logging service. If the logger is nil, prints directly to the console. Used for the container pre-build workflow.

func (*BufferedLogger) Write

func (b *BufferedLogger) Write(p []byte) (int, error)

Write implements the io.Writer interface, converting input to a string and storing it in the BufferedLogger's buffer. If a logger is not provided, the output is sent directly to os.Stderr.

type Logger

type Logger struct {
	Endpoint string
	// contains filtered or unexported fields
}

Logger is a wrapper around the FnAPI Logging Client, intended for container boot loader use. Not intended for Beam end users.

func (*Logger) Close

func (l *Logger) Close()

Close closes the grpc logging client.

func (*Logger) Errorf

func (l *Logger) Errorf(ctx context.Context, format string, args ...any)

Errorf logs the message with Error severity.

func (*Logger) Fatalf

func (l *Logger) Fatalf(ctx context.Context, format string, args ...any)

Fatalf logs the message with Critical severity, and then calls os.Exit(1).

func (*Logger) Log

func (l *Logger) Log(ctx context.Context, sev fnpb.LogEntry_Severity_Enum, message string)

Log a message with the given severity.

func (*Logger) Printf

func (l *Logger) Printf(ctx context.Context, format string, args ...any)

Printf logs the message with Debug severity.

func (*Logger) Warnf

func (l *Logger) Warnf(ctx context.Context, format string, args ...any)

Warnf logs the message with Warning severity.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL