open-nomad/nomad/stream/sink.go
Drew Bailey 86080e25a9
Send events to EventSinks (#9171)
* Process to send events to configured sinks

This PR adds a SinkManager to a server which is responsible for managing
managed sinks. Managed sinks subscribe to the event broker and send
events to a sink writer (webhook). When changes to the eventstore are
made the sinkmanager and managed sink are responsible for reloading or
starting a new managed sink.

* periodically check in sink progress to raft

Save progress on the last successfully sent index to raft. This allows a
managed sink to resume close to where it left off in the event of a lost
server or leadership change

dereference eventsink so we can accurately use the watchch

When using a pointer to eventsink struct it was updated immediately and our reload logic would not trigger
2020-10-26 17:27:54 -04:00

13 lines
238 B
Go

package stream
import (
"context"
"github.com/hashicorp/nomad/nomad/structs"
)
// SinkWriter is the interface used by a ManagedSink to send events to.
type SinkWriter interface {
Send(ctx context.Context, e *structs.Events) error
}