import "github.com/grailbio/base/eventlog"
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.
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 struct{}
Nop is a no-op Eventer.
Event implements Eventer.
Path | Synopsis |
---|---|
cloudwatch | |
internal/marshal |
Package eventlog imports 1 packages (graph) and is imported by 2 packages. Updated 2020-12-31. Refresh now. Tools for package owners.