(log, logTransport *zerolog.Logger)
| 31 | } |
| 32 | |
| 33 | func NewObserver(log, logTransport *zerolog.Logger) *Observer { |
| 34 | o := &Observer{ |
| 35 | log: log, |
| 36 | logTransport: logTransport, |
| 37 | metrics: newTunnelMetrics(), |
| 38 | tunnelEventChan: make(chan Event, observerChannelBufferSize), |
| 39 | addSinkChan: make(chan EventSink, observerChannelBufferSize), |
| 40 | } |
| 41 | go o.dispatchEvents() |
| 42 | return o |
| 43 | } |
| 44 | |
| 45 | func (o *Observer) RegisterSink(sink EventSink) { |
| 46 | o.addSinkChan <- sink |