Back to godoc.org

Package eventlog

v0.0.9
Latest Go to latest
Published: Jun 24, 2020 | License: Apache-2.0 | Module: github.com/grailbio/base

Overview

Package eventlog provides logging of semi-structured events, particularly in service of downstream analysis, e.g. when machines are started, when a user issues a command, when failures happen.

For example, you can log events to CloudWatch Logs:

sess := session.NewSession()
cw := cloudwatchlogs.New(sess)
e := NewCloudWatchEventer(cw, "myLogGroup", "myLogStream")
e.Event("rpcRetry", "org", "GRAIL", "retry", 0, "maxRetry", 10)
e.Event("machineStopped", "addr", "192.168.1.1", "duration", 3600.0, "startTime": 1584140534)

These events can now be analyzed and monitored using CloudWatch Logs tooling.

Index

Package Files

type Eventer

type Eventer interface {
	// Event logs an event of typ with (key string, value interface{}) fields given in fieldPairs
	// as k0, v0, k1, v1, ...kn, vn. For example:
	//
	//  s.Event("machineStart", "addr", "192.168.1.2", "time", time.Now().Unix())
	//
	// The value will be serialized as JSON.
	//
	// The key "eventType" is reserved. Field keys must be unique. Any violation will result
	// in the event being dropped and logged.
	//
	// Implementations must be safe for concurrent use.
	Event(typ string, fieldPairs ...interface{})
}

Eventer is called to log events.

type Nop

type Nop struct{}

Nop is a no-op Eventer.

func (Nop) Event

func (Nop) Event(_ string, _ ...interface{})

Event implements Eventer.

Documentation was rendered with GOOS=linux and GOARCH=amd64.

Jump to identifier

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to identifier