Files
ziti/controller/event/usage.go
T
2023-08-10 17:10:17 -04:00

55 lines
1.8 KiB
Go

package event
import "fmt"
const (
UsageEventsNs = "fabric.usage"
UsageEventsVersion = 2
)
type UsageEvent struct {
Namespace string `json:"namespace"`
Version uint32 `json:"version"`
EventType string `json:"event_type"`
SourceId string `json:"source_id"`
CircuitId string `json:"circuit_id"`
Usage uint64 `json:"usage"`
IntervalStartUTC int64 `json:"interval_start_utc"`
IntervalLength uint64 `json:"interval_length"`
Tags map[string]string `json:"tags"`
}
func (event *UsageEvent) String() string {
return fmt.Sprintf("%v source=%v session=%v usage=%v intervalStart=%v intervalLength=%v",
event.EventType, event.SourceId, event.CircuitId, event.Usage, event.IntervalStartUTC, event.IntervalLength)
}
type UsageEventHandler interface {
AcceptUsageEvent(event *UsageEvent)
}
type UsageEventV3 struct {
Namespace string `json:"namespace"`
Version uint32 `json:"version"`
SourceId string `json:"source_id"`
CircuitId string `json:"circuit_id"`
Usage map[string]uint64 `json:"usage"`
IntervalStartUTC int64 `json:"interval_start_utc"`
IntervalLength uint64 `json:"interval_length"`
Tags map[string]string `json:"tags"`
}
func (event *UsageEventV3) String() string {
return fmt.Sprintf("source=%v session=%v usage=%v intervalStart=%v intervalLength=%v",
event.SourceId, event.CircuitId, event.Usage, event.IntervalStartUTC, event.IntervalLength)
}
type UsageEventV3Handler interface {
AcceptUsageEventV3(event *UsageEventV3)
}
type UsageEventV3HandlerWrapper interface {
UsageEventV3Handler
IsWrapping(value UsageEventV3Handler) bool
}