流利的消息包

时间:2018-11-01 22:22:13

标签: go fluent msgpack

我正在使用https://godoc.org/github.com/vmihailenco/msgpack(messagepack.org正式建议使用golang) 我正在尝试做的是以流畅的“转发”协议发送日志数据。

我使用上面的lib封送msgp。当我解组时,我确实看到它的正确(转发)格式。但是流利的位转发者在说-

[debug] [in_fw]解析器:需要一个数组(类型= 8),请跳过。

下面是未整理的数据-

[“ my.containerlog”,[[1441588984,{“ LogEntry”:“ ce5632054b603019bd39b7e42b64a617--u003eHello:84424454 @Thu,01 Nov 2018 21:50:16 GMT \ n”,“ LogEntrySource”:“ stderr”, “ LogEntryTimeStamp”:“ 2018-11-01T21:50:16.109831526Z”,“ Id”:“ e0a74c2b98d2fe3db0e3d37b135e475b9596258d8f08a361c531ee5fdcad210b”,“图像”:“ visert / hello:err100eps”,“-11b-e” -d-d-8b 4a33f2066f5b / visertcontainerhelloapp-1“,” SourceSystem“:”容器“,”计算机“:” aks-agentpool-12720733-0“}]]]

我正在使用封送给msgp的字节数组。

var payLoad []byte

payLoad = append(payLoad, ([]byte (fmt.Sprintf("[\"%s\",[", "my.containerlog")))...)

//getting data and populating dataItem
dataItem := DataItem{
            ID:                stringMap["Id"],
            LogEntry:          stringMap["LogEntry"],
            LogEntrySource:    stringMap["LogEntrySource"],
            LogEntryTimeStamp: stringMap["LogEntryTimeStamp"],
            SourceSystem:      stringMap["SourceSystem"],
            Computer:          Computer,
            Image:             stringMap["Image"],
            Name:              stringMap["Name"],
        }

m, err := json.Marshal(dataItem) //convert data to json
payLoad = append(payLoad, ([]byte (fmt.Sprintf("[%d,%s]", 1441588984, m)))...)
payLoad = append(payLoad,([]byte (fmt.Sprintf("]]")))...)

b, err := msgpack.Marshal(payLoad)

//when i unmarshal i get the correct forward payload

var f []byte
e := msgpack.Unmarshal(b, &f)

可能是什么问题?我不应该编组byte []吗?

0 个答案:

没有答案