You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@skywalking.apache.org by Daming <da...@apache.org> on 2021/07/16 10:35:06 UTC

[DISCUSS] Hi all, I am writing to you for a discussion about Log Receiver over HTTP. Currently, we have had an HTTP Receiver that required a strict message format. That is a ProtoBuff-like JSON format[1]. I am thinking that is too much strict so that I am trying to add a new HTTP Receiver to deal with the new protocol. IMO, this format is friendly with log tools as fluentd. But it is less friendly with other applications. Because it is hard to build the message as this format had. The protocol has two parts, header and content. header: service: ${service} serviceInstance: ${serviceInstance} endpoint: ${endpoint} Content-Type: text/plain content: raw log content [raw log content] [raw log content] [...] This sample is in text format. Surely, we also support json format like above: header: service: ${service} serviceInstance: ${serviceInstance} endpoint: ${endpoint} Content-Type: application/json content: [ { "content": "cont

Hi all,

I am writing to you for a discussion about Log Receiver over HTTP.
Currently, we have had an HTTP Receiver that required a strict message
format. That is a ProtoBuff-like JSON format[1].

I am thinking that is too much strict so that I am trying to add a new HTTP
Receiver to deal with the new protocol. IMO, this format is friendly with
log tools as fluentd. But it is less friendly with other applications.
Because it is hard to build the message as this format had.

The protocol has two parts, header and content.

header:
    service: ${service}
    serviceInstance: ${serviceInstance}
    endpoint: ${endpoint}
    Content-Type: text/plain

content:
    raw log content
    [raw log content]
    [raw log content]
    [...]

This sample is in text format. Surely, we also support json format like
above:
header:
    service: ${service}
    serviceInstance: ${serviceInstance}
    endpoint: ${endpoint}
    Content-Type: application/json

content:
    [ { "content": "content", ... }, ... ]

Finally, it would be converted to LogData by the new receiver.
Looking forward to your comments.
Thanks.

Haochao Zhuang
Apache SkyWalking