59 lines
1.8 KiB
Go
59 lines
1.8 KiB
Go
// Licensed to Elasticsearch B.V. under one or more contributor
|
|
// license agreements. See the NOTICE file distributed with
|
|
// this work for additional information regarding copyright
|
|
// ownership. Elasticsearch B.V. licenses this file to you under
|
|
// the Apache License, Version 2.0 (the "License"); you may
|
|
// not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing,
|
|
// software distributed under the License is distributed on an
|
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
// KIND, either express or implied. See the License for the
|
|
// specific language governing permissions and limitations
|
|
// under the License.
|
|
|
|
package publisher
|
|
|
|
import (
|
|
"github.com/elastic/beats/libbeat/beat"
|
|
)
|
|
|
|
// Batch is used to pass a batch of events to the outputs and asynchronously listening
|
|
// for signals from these outpts. After a batch is processed (completed or
|
|
// errors), one of the signal methods must be called.
|
|
type Batch interface {
|
|
Events() []Event
|
|
|
|
// signals
|
|
ACK()
|
|
Drop()
|
|
Retry()
|
|
RetryEvents(events []Event)
|
|
Cancelled()
|
|
CancelledEvents(events []Event)
|
|
}
|
|
|
|
// Event is used by the publisher pipeline and broker to pass additional
|
|
// meta-data to the consumers/outputs.
|
|
type Event struct {
|
|
Content beat.Event
|
|
Flags EventFlags
|
|
}
|
|
|
|
// EventFlags provides additional flags/option types for used with the outputs.
|
|
type EventFlags uint8
|
|
|
|
const (
|
|
// GuaranteedSend requires an output to not drop the event on failure, but
|
|
// retry until ACK.
|
|
GuaranteedSend EventFlags = 0x01
|
|
)
|
|
|
|
// Guaranteed checks if the event must not be dropped by the output or the
|
|
// publisher pipeline.
|
|
func (e *Event) Guaranteed() bool {
|
|
return (e.Flags & GuaranteedSend) == GuaranteedSend
|
|
}
|