Documentation
¶
Overview ¶
Package mapstriface contains utilities for transforming map[string]interface{} objects into metricbeat events. For example, given this input object:
input := map[string]interface{}{
"testString": "hello",
"testInt": 42,
"testIntFromFloat": 42.0,
"testIntFromInt64": int64(42),
"testBool": true,
"testObj": map[string]interface{}{
"testObjString": "hello, object",
},
"testNonNestedObj": "hello from top level",
}
And the requirement to transform it into this one:
common.MapStr{
"test_string": "hello",
"test_int": int64(42),
"test_int_from_float": int64(42),
"test_int_from_int64": int64(42),
"test_bool": true,
"test_time": common.Time(ts),
"test_obj_1": common.MapStr{
"test": "hello from top level",
},
"test_obj_2": common.MapStr{
"test": "hello, object",
},
}
It can be done with the following code:
schema := s.Schema{
"test_string": Str("testString"),
"test_int": Int("testInt"),
"test_int_from_float": Int("testIntFromFloat"),
"test_int_from_int64": Int("testIntFromInt64"),
"test_bool": Bool("testBool"),
"test_time": Time("testTime"),
"test_obj_1": s.Object{
"test": Str("testNonNestedObj"),
},
"test_obj_2": Dict("testObj", s.Schema{
"test": Str("testObjString"),
}),
}
output := schema.Apply(input)
Note that this allows for converting, renaming, and restructuring the data.
Index ¶
- func Bool(key string, opts ...schema.SchemaOption) schema.Conv
- func Int(key string, opts ...schema.SchemaOption) schema.Conv
- func Str(key string, opts ...schema.SchemaOption) schema.Conv
- func StrFromNum(key string, opts ...schema.SchemaOption) schema.Conv
- func Time(key string, opts ...schema.SchemaOption) schema.Conv
- type ConvMap
- type DictSchemaOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Bool ¶
func Bool(key string, opts ...schema.SchemaOption) schema.Conv
Bool creates a Conv object for converting booleans.
func Int ¶
func Int(key string, opts ...schema.SchemaOption) schema.Conv
Int creates a Conv object for converting integers. Acceptable input types are int64, int, and float64.
func Str ¶
func Str(key string, opts ...schema.SchemaOption) schema.Conv
Str creates a schema.Conv object for converting strings.
func StrFromNum ¶
func StrFromNum(key string, opts ...schema.SchemaOption) schema.Conv
StrFromNum creates a schema.Conv object that transforms numbers to strings.
Types ¶
type ConvMap ¶
type ConvMap struct {
Key string // The key in the data map
Schema schema.Schema // The schema describing how to convert the sub-map
Optional bool
}
func DictOptional ¶
The optional flag suppresses the error message in case the key doesn't exist or results in an error.
type DictSchemaOption ¶
SchemaOption is for adding optional parameters to the conversion functions