buildlogger

package
v0.0.0-...-3f00ddf Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2024 License: Apache-2.0 Imports: 25 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Get

func Get(ctx context.Context, opts GetOptions) (io.ReadCloser, error)

Get returns a paginated read closer with the logs or log metadata requested via HTTP to a Cedar service.

func MakeLogger

func MakeLogger(name string, opts *LoggerOptions) (send.Sender, error)

MakeLogger returns a grip Sender backed by cedar Buildlogger.

func MakeLoggerWithContext

func MakeLoggerWithContext(ctx context.Context, name string, opts *LoggerOptions) (send.Sender, error)

MakeLoggerWithContext returns a grip Sender backed by cedar Buildlogger using the passed in context.

func NewLogger

func NewLogger(name string, l send.LevelInfo, opts *LoggerOptions) (send.Sender, error)

NewLogger returns a grip Sender backed by cedar Buildlogger with level information set.

func NewLoggerWithContext

func NewLoggerWithContext(ctx context.Context, name string, l send.LevelInfo, opts *LoggerOptions) (send.Sender, error)

NewLoggerWithContext returns a grip Sender backed by cedar Buildlogger with level information set, using the passed in context.

Types

type GetOptions

type GetOptions struct {
	Cedar timber.GetOptions

	// Request information. See Cedar's REST documentation for more
	// information:
	// `https://github.com/evergreen-ci/cedar/wiki/Rest-V1-Usage`.
	ID       string
	TaskID   string
	TestName string
	GroupID  string
	Meta     bool

	// Query parameters.
	Execution     *int
	Start         time.Time
	End           time.Time
	ProcessName   string
	Tags          []string
	PrintTime     bool
	PrintPriority bool
	Tail          int
	Limit         int
}

GetOptions specify the required and optional information to create the buildlogger HTTP GET request to Cedar.

func (GetOptions) Validate

func (opts GetOptions) Validate() error

Validate ensures BuildloggerGetOptions is configured correctly.

type JasperLoggerOptions

type JasperLoggerOptions struct {
	Name          string         `json:"name" bson:"name"`
	Level         send.LevelInfo `json:"level" bson:"level"`
	BuildloggerV3 LoggerOptions  `json:"buildloggerv3" bson:"buildloggerv3"`
}

JasperLoggerOptions wraps LoggerOptions and implements a jasper options.LoggerProducer for BuildloggerV3.

func NewBuildloggerV3LoggerProducer

func NewBuildloggerV3LoggerProducer() *JasperLoggerOptions

NewBuildloggerV3LoggerProducer returns a jasper options.LoggerProducer backed by JasperLoggerOptions.

func (*JasperLoggerOptions) Configure

func (opts *JasperLoggerOptions) Configure() (send.Sender, error)

func (*JasperLoggerOptions) Type

func (opts *JasperLoggerOptions) Type() string

type LogFormat

type LogFormat int32

LogFormat describes the format of the log.

const (
	LogFormatUnknown LogFormat = 0
	LogFormatText    LogFormat = 1
	LogFormatJSON    LogFormat = 2
	LogFormatBSON    LogFormat = 3
)

Valid LogFormat values.

type LogStorage

type LogStorage int32

LogStorage describes the blob storage location type of the log.

const (
	LogStorageS3     LogStorage = 0
	LogStorageGridFS LogStorage = 1
	LogStorageLocal  LogStorage = 2
)

Valid LogStorage values.

type LoggerOptions

type LoggerOptions struct {
	// Unique information to identify the log.
	Project     string            `bson:"project" json:"project" yaml:"project"`
	Version     string            `bson:"version" json:"version" yaml:"version"`
	Variant     string            `bson:"variant" json:"variant" yaml:"variant"`
	TaskName    string            `bson:"task_name" json:"task_name" yaml:"task_name"`
	TaskID      string            `bson:"task_id" json:"task_id" yaml:"task_id"`
	Execution   int32             `bson:"execution" json:"execution" yaml:"execution"`
	TestName    string            `bson:"test_name" json:"test_name" yaml:"test_name"`
	Trial       int32             `bson:"trial" json:"trial" yaml:"trial"`
	ProcessName string            `bson:"proc_name" json:"proc_name" yaml:"proc_name"`
	Format      LogFormat         `bson:"format" json:"format" yaml:"format"`
	Tags        []string          `bson:"tags" json:"tags" yaml:"tags"`
	Arguments   map[string]string `bson:"args" json:"args" yaml:"args"`
	Mainline    bool              `bson:"mainline" json:"mainline" yaml:"mainline"`

	// Storage location type for this log.
	Storage LogStorage `bson:"storage" json:"storage" yaml:"storage"`

	// Prefix for log lines, if any.
	Prefix string `bson:"prefix" jason:"prefix" yaml:"prefix"`

	// Configure a local sender for "fallback" operations and to collect
	// the location of the buildlogger output.
	Local send.Sender `bson:"-" json:"-" yaml:"-"`

	// The number max number of bytes to buffer before sending log data
	// over rpc to cedar. Defaults to 10MB.
	MaxBufferSize int `bson:"max_buffer_size" json:"max_buffer_size" yaml:"max_buffer_size"`
	// The interval at which to flush log lines, regardless of whether the
	// max buffer size has been reached or not. Setting FlushInterval to a
	// duration less than 0 will disable timed flushes. Defaults to 1
	// minute.
	FlushInterval time.Duration `bson:"flush_interval" json:"flush_interval" yaml:"flush_interval"`

	// Disable checking for new lines in messages. If this is set to true,
	// make sure log messages do not contain new lines, otherwise the logs
	// will be stored incorrectly.
	DisableNewLineCheck bool `bson:"disable_new_line_check" json:"disable_new_line_check" yaml:"disable_new_line_check"`

	// The gRPC client connection. If nil, a new connection will be
	// established with the gRPC connection configuration.
	ClientConn *grpc.ClientConn `bson:"-" json:"-" yaml:"-"`

	// Configuration for gRPC client connection.
	HTTPClient  *http.Client `bson:"-" json:"-" yaml:"-"`
	BaseAddress string       `bson:"base_address" json:"base_address" yaml:"base_address"`
	RPCPort     string       `bson:"rpc_port" json:"rpc_port" yaml:"rpc_port"`
	Insecure    bool         `bson:"insecure" json:"insecure" yaml:"insecure"`
	Username    string       `bson:"username" json:"username" yaml:"username"`
	APIKey      string       `bson:"api_key" json:"api_key" yaml:"api_key"`
	// contains filtered or unexported fields
}

LoggerOptions support the use and creation of a Buildlogger log.

func LoadLoggerOptions

func LoadLoggerOptions(fn string) (*LoggerOptions, error)

LoadLoggerOptions reads the content of the specified file and attempts to create a LoggerOptions structure based on the content. The file can be in json or yaml, LoadLoggerOptions examines the file's extension to determine the data format.

func (*LoggerOptions) GetLogID

func (opts *LoggerOptions) GetLogID() string

GetLogID returns the unique buildlogger log ID set after NewLogger is called.

func (*LoggerOptions) SetExitCode

func (opts *LoggerOptions) SetExitCode(i int32)

SetExitCode sets the exit code variable.

Jump to

Keyboard shortcuts

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