base: Index | Files | Directories

package eventlog

import ""

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", "", "duration", 3600.0, "startTime": 1584140534)

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


Package Files


type Eventer Uses

type Eventer interface {
    // Event logs an event of typ with (key string, value interface{}) fields given in fieldPairs
    // as k0, v0, k1, v1,, vn. For example:
    //  s.Event("machineStart", "addr", "", "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 Uses

type Nop struct{}

Nop is a no-op Eventer.

func (Nop) Event Uses

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

Event implements Eventer.



Package eventlog imports 1 packages (graph) and is imported by 2 packages. Updated 2020-12-31. Refresh now. Tools for package owners.