本文整理汇总了Golang中github.com/elastic/beats/libbeat/common.MapStr类的典型用法代码示例。如果您正苦于以下问题:Golang MapStr类的具体用法?Golang MapStr怎么用?Golang MapStr使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MapStr类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: Run
func (f decodeJSONFields) Run(event common.MapStr) (common.MapStr, error) {
var errs []string
for _, field := range f.fields {
data, err := event.GetValue(field)
if err != nil && errors.Cause(err) != common.ErrKeyNotFound {
debug("Error trying to GetValue for field : %s in event : %v", field, event)
errs = append(errs, err.Error())
continue
}
text, ok := data.(string)
if ok {
var output interface{}
err := unmarshal(f.maxDepth, []byte(text), &output, f.processArray)
if err != nil {
debug("Error trying to unmarshal %s", event[field])
errs = append(errs, err.Error())
continue
}
_, err = event.Put(field, output)
if err != nil {
debug("Error trying to Put value %v for field : %s", output, field)
errs = append(errs, err.Error())
continue
}
}
}
if len(errs) > 0 {
return event, fmt.Errorf(strings.Join(errs, ", "))
}
return event, nil
}
开发者ID:ruflin,项目名称:beats,代码行数:34,代码来源:decode_json_fields.go
示例2: TestValidJSONDepthTwo
func TestValidJSONDepthTwo(t *testing.T) {
input := common.MapStr{
"msg": "{\"log\":\"{\\\"level\\\":\\\"info\\\"}\",\"stream\":\"stderr\",\"count\":3}",
"pipeline": "us1",
}
testConfig, _ = common.NewConfigFrom(map[string]interface{}{
"fields": fields,
"processArray": false,
"maxDepth": 2,
})
actual := getActualValue(t, testConfig, input)
expected := common.MapStr{
"msg": map[string]interface{}{
"log": map[string]interface{}{
"level": "info",
},
"stream": "stderr",
"count": 3,
},
"pipeline": "us1",
}
assert.Equal(t, expected.String(), actual.String())
}
开发者ID:ruflin,项目名称:beats,代码行数:28,代码来源:decode_json_fields_test.go
示例3: checkEquals
func (c *Condition) checkEquals(event common.MapStr) bool {
for field, equalValue := range c.equals {
value, err := event.GetValue(field)
if err != nil {
return false
}
intValue, err := extractInt(value)
if err == nil {
if intValue != equalValue.Int {
return false
}
} else {
sValue, err := extractString(value)
if err != nil {
logp.Warn("unexpected type %T in equals condition as it accepts only integers and strings. ", value)
return false
}
if sValue != equalValue.Str {
return false
}
}
}
return true
}
开发者ID:cyrilleverrier,项目名称:beats,代码行数:29,代码来源:condition.go
示例4: CheckRegexp
func (c *Condition) CheckRegexp(event common.MapStr) bool {
for field, equalValue := range c.Regexp {
value, err := event.GetValue(field)
if err != nil {
logp.Debug("filter", "unavailable field %s: %v", field, err)
return false
}
switch value.(type) {
case string:
if !equalValue.MatchString(value.(string)) {
return false
}
default:
logp.Warn("unexpected type %T in regexp condition as it accepts only strings. ", value)
return false
}
}
return true
}
开发者ID:mrkschan,项目名称:beats,代码行数:25,代码来源:condition.go
示例5: checkContains
func (c *Condition) checkContains(event common.MapStr) bool {
outer:
for field, equalValue := range c.contains {
value, err := event.GetValue(field)
if err != nil {
return false
}
switch value.(type) {
case string:
if !strings.Contains(value.(string), equalValue) {
return false
}
case *string:
if !strings.Contains(*value.(*string), equalValue) {
return false
}
case []string:
for _, s := range value.([]string) {
if strings.Contains(s, equalValue) {
continue outer
}
}
return false
default:
logp.Warn("unexpected type %T in contains condition as it accepts only strings.", value)
return false
}
}
return true
}
开发者ID:cyrilleverrier,项目名称:beats,代码行数:32,代码来源:condition.go
示例6: MakePingAllIPPortFactory
func MakePingAllIPPortFactory(
fields common.MapStr,
ports []uint16,
f func(*net.IPAddr, uint16) (common.MapStr, error),
) func(*net.IPAddr) TaskRunner {
if len(ports) == 1 {
port := ports[0]
fields := fields.Clone()
fields["port"] = strconv.Itoa(int(port))
return MakePingIPFactory(fields, func(ip *net.IPAddr) (common.MapStr, error) {
return f(ip, port)
})
}
return MakePingAllIPFactory(fields, func(ip *net.IPAddr) []func() (common.MapStr, error) {
funcs := make([]func() (common.MapStr, error), len(ports))
for i := range ports {
port := ports[i]
funcs[i] = func() (common.MapStr, error) {
event, err := f(ip, port)
if event == nil {
event = common.MapStr{}
}
event["port"] = strconv.Itoa(int(port))
return event, err
}
}
return funcs
})
}
开发者ID:ruflin,项目名称:beats,代码行数:30,代码来源:util.go
示例7: CheckEquals
func (c *Condition) CheckEquals(event common.MapStr) bool {
for field, equalValue := range c.Equals {
value, err := event.GetValue(field)
if err != nil {
logp.Debug("filter", "unavailable field %s: %v", field, err)
return false
}
switch value.(type) {
case uint8, uint16, uint32, uint64, int8, int16, int32, int64, int, uint:
return value == equalValue.Int
case string:
return value == equalValue.Str
default:
logp.Warn("unexpected type %T in equals condition as it accepts only integers and strings. ", value)
return false
}
}
return true
}
开发者ID:mrkschan,项目名称:beats,代码行数:25,代码来源:condition.go
示例8: processGroups
func processGroups(groups []string, topic string, pids map[int32]int64) []common.MapStr {
var events []common.MapStr
for _, group := range groups {
pid_offsets, err := getConsumerOffsets(group, topic, pids)
if err == nil {
for pid, offset := range pid_offsets {
event := common.MapStr{
"@timestamp": common.Time(time.Now()),
"type": "consumer",
"partition": pid,
"topic": topic,
"group": group,
"offset": offset,
}
size, ok := pids[pid]
if ok {
event.Update(common.MapStr{"lag": size - offset})
}
events = append(events, event)
}
} else {
logp.Debug("kafkabeat", "No offsets for group %s on topic %s", group, topic)
}
}
return events
}
开发者ID:yarikc,项目名称:kafkabeat,代码行数:26,代码来源:kafkabeat.go
示例9: fieldString
// TODO: move to libbeat/common?
func fieldString(event common.MapStr, field string) (string, error) {
type stringer interface {
String() string
}
v, err := event.GetValue(field)
if err != nil {
return "", err
}
switch s := v.(type) {
case string:
return s, nil
case []byte:
return string(s), nil
case stringer:
return s.String(), nil
case int8, int16, int32, int64, int:
i := reflect.ValueOf(s).Int()
return strconv.FormatInt(i, 10), nil
case uint8, uint16, uint32, uint64, uint:
u := reflect.ValueOf(s).Uint()
return strconv.FormatUint(u, 10), nil
case float32:
return strconv.FormatFloat(float64(s), 'g', -1, 32), nil
case float64:
return strconv.FormatFloat(s, 'g', -1, 64), nil
default:
logp.Warn("Can not convert key '%v' value to string", v)
return "", errConvertString
}
}
开发者ID:ChongFeng,项目名称:beats,代码行数:33,代码来源:formatevents.go
示例10: newTCPMonitorHostJob
func newTCPMonitorHostJob(
scheme, host string, port uint16,
tls *transport.TLSConfig,
config *Config,
) (monitors.Job, error) {
typ := config.Name
timeout := config.Timeout
jobName := jobName(typ, jobType(scheme), host, []uint16{port})
validator := makeValidateConn(config)
pingAddr := net.JoinHostPort(host, strconv.Itoa(int(port)))
taskDialer, err := buildDialerChain(scheme, tls, config)
if err != nil {
return nil, err
}
return monitors.MakeSimpleJob(jobName, typ, func() (common.MapStr, error) {
event := common.MapStr{
"scheme": scheme,
"port": port,
"host": host,
}
dialer, err := taskDialer.BuildWithMeasures(event)
if err != nil {
return event, err
}
results, err := pingHost(dialer, pingAddr, timeout, validator)
event.Update(results)
return event, err
}), nil
}
开发者ID:andrewkroh,项目名称:beats,代码行数:32,代码来源:task.go
示例11: filterEvent
// filterEvent validates an event for common required fields with types.
// If event is to be filtered out the reason is returned as error.
func filterEvent(event common.MapStr) error {
ts, ok := event["@timestamp"]
if !ok {
return errors.New("Missing '@timestamp' field from event")
}
_, ok = ts.(common.Time)
if !ok {
return errors.New("Invalid '@timestamp' field from event.")
}
err := event.EnsureCountField()
if err != nil {
return err
}
t, ok := event["type"]
if !ok {
return errors.New("Missing 'type' field from event.")
}
_, ok = t.(string)
if !ok {
return errors.New("Invalid 'type' field from event.")
}
return nil
}
开发者ID:tsg,项目名称:beats,代码行数:30,代码来源:preprocess.go
示例12: Run
func (f dropFields) Run(event common.MapStr) (common.MapStr, error) {
for _, field := range f.Fields {
err := event.Delete(field)
if err != nil {
return event, fmt.Errorf("Fail to delete key %s: %s", field, err)
}
}
return event, nil
}
开发者ID:Zhoutall,项目名称:beats,代码行数:10,代码来源:drop_fields.go
示例13: Run
func (p addCloudMetadata) Run(event common.MapStr) (common.MapStr, error) {
if len(p.metadata) == 0 {
return event, nil
}
// This overwrites the meta.cloud if it exists. But the cloud key should be
// reserved for this processor so this should happen.
_, err := event.Put("meta.cloud", p.metadata)
return event, err
}
开发者ID:andrewkroh,项目名称:beats,代码行数:11,代码来源:add_cloud_metadata.go
示例14: DeDotLabels
// DeDotLabels returns a new common.MapStr containing a copy of the labels
// where the dots in each label name have been changed to an underscore.
func DeDotLabels(labels map[string]string) common.MapStr {
outputLabels := common.MapStr{}
for k, v := range labels {
// This is necessary so that ES does not interpret '.' fields as new
// nested JSON objects, and also makes this compatible with ES 2.x.
label := strings.Replace(k, ".", "_", -1)
outputLabels.Put(label, v)
}
return outputLabels
}
开发者ID:ruflin,项目名称:beats,代码行数:13,代码来源:helper.go
示例15: fieldString
// TODO: move to libbeat/common?
func fieldString(event common.MapStr, field string) (string, error) {
v, err := event.GetValue(field)
if err != nil {
return "", err
}
s, err := tryConvString(v)
if err != nil {
logp.Warn("Can not convert key '%v' value to string", v)
}
return s, err
}
开发者ID:YaSuenag,项目名称:hsbeat,代码行数:13,代码来源:formatevents.go
示例16: Run
func (f dropFields) Run(event common.MapStr) (common.MapStr, error) {
errors := []string{}
for _, field := range f.Fields {
err := event.Delete(field)
if err != nil {
errors = append(errors, err.Error())
}
}
return event, fmt.Errorf(strings.Join(errors, ", "))
}
开发者ID:YaSuenag,项目名称:hsbeat,代码行数:12,代码来源:drop_fields.go
示例17: equalEvent
func equalEvent(expectedEvent common.MapStr, event common.MapStr) bool {
// Remove labels to test
// expectedLabels := expectedEvent["containerLabels"]
// labels := event["containerLabels"]
expectedEvent["containerLabels"] = []common.MapStr{}
event["containerLabels"] = []common.MapStr{}
// test equality
return expectedEvent.String() == event.String()
// TODO test labels
}
开发者ID:Ingensi,项目名称:dockerbeat,代码行数:13,代码来源:generator_test.go
示例18: TestMissingKey
func TestMissingKey(t *testing.T) {
input := common.MapStr{
"pipeline": "us1",
}
actual := getActualValue(t, testConfig, input)
expected := common.MapStr{
"pipeline": "us1",
}
assert.Equal(t, expected.String(), actual.String())
}
开发者ID:ruflin,项目名称:beats,代码行数:13,代码来源:decode_json_fields_test.go
示例19: Run
func (f includeFields) Run(event common.MapStr) (common.MapStr, error) {
filtered := common.MapStr{}
errs := []string{}
for _, field := range f.Fields {
err := event.CopyFieldsTo(filtered, field)
// Ignore errors caused by a field not existing in the event.
if err != nil && errors.Cause(err) != common.ErrKeyNotFound {
errs = append(errs, err.Error())
}
}
return filtered, fmt.Errorf(strings.Join(errs, ", "))
}
开发者ID:andrewkroh,项目名称:beats,代码行数:14,代码来源:include_fields.go
示例20: Filter
func (f *DropFields) Filter(event common.MapStr) (common.MapStr, error) {
if f.Cond != nil && !f.Cond.Check(event) {
return event, nil
}
for _, field := range f.Fields {
err := event.Delete(field)
if err != nil {
return event, fmt.Errorf("Fail to delete key %s: %s", field, err)
}
}
return event, nil
}
开发者ID:mheese,项目名称:journalbeat,代码行数:15,代码来源:drop_fields.go
注:本文中的github.com/elastic/beats/libbeat/common.MapStr类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论