59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package telegraf
|
|
|
|
import (
|
|
"time"
|
|
|
|
// TODO remove
|
|
"github.com/influxdata/influxdb/client/v2"
|
|
)
|
|
|
|
// ValueType is an enumeration of metric types that represent a simple value.
|
|
type ValueType int
|
|
|
|
// Possible values for the ValueType enum.
|
|
const (
|
|
_ ValueType = iota
|
|
Counter
|
|
Gauge
|
|
Untyped
|
|
)
|
|
|
|
type Metric interface {
|
|
Serialize() []byte
|
|
String() string // convenience function for string(Serialize())
|
|
Copy() Metric
|
|
|
|
// Tag functions
|
|
HasTag(key string) bool
|
|
AddTag(key, value string)
|
|
RemoveTag(key string)
|
|
|
|
// Field functions
|
|
HasField(key string) bool
|
|
AddField(key string, value interface{})
|
|
RemoveField(key string) error
|
|
|
|
// Name functions
|
|
SetName(name string)
|
|
SetPrefix(prefix string)
|
|
SetSuffix(suffix string)
|
|
|
|
// Getting data structure functions
|
|
Name() string
|
|
Tags() map[string]string
|
|
Fields() map[string]interface{}
|
|
Time() time.Time
|
|
UnixNano() int64
|
|
Type() ValueType
|
|
Len() int // returns the length of the serialized metric, including newline
|
|
HashID() uint64
|
|
|
|
// aggregator things:
|
|
SetAggregate(bool)
|
|
IsAggregate() bool
|
|
|
|
// Point returns a influxdb client.Point object
|
|
// TODO remove this function
|
|
Point() *client.Point
|
|
}
|