A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/fluent/fluentd/wiki/Forward-Protocol-Specification-v0 below:

Forward Protocol Specification v0 · fluent/fluentd Wiki · GitHub

Fluentd Forward Protocol Specification (v0)

This is a protocol specification for Fluentd forward input/output plugins. This protocol is also used by fluent-logger software, and many other software in ecosystem (e.g., Docker logging driver for Fluentd).

This protocol version is v0. This spec is supported by Fluentd v0.10 and v0.12, and will be changed at v0.14 (it will be versioned as protocol version v1).

This specification describes the fluentd forward protocol, which is used to transport events from hosts to hosts over network.

The keywords "MUST", "MUST NOT", "SHOULD", "SHOULD NOT" and "MAY" in this document are to be interpreted as described in RFC 2119. The following terms are also used:

UDP heartbeat message SHOULD be a byte of 0x00 in both of Client and Server.

It carries just a event.

name Ruby type msgpack fromat content tag String str tag name time Integer | EventTime int | ext Unix time (second) record Hash map pairs of keys(String) and values(Object) option Hash map option (optional)
[
  "tag.name",
  1441588984,
  {"message": "bar"},
  {"option": "optional"}
]

NOTE for v1 protocol: time MAY be a representation of EventTime, which has nanosecond precision of time with msgpack ext format of type 0 is used when time_as_integer is false. Server SHOULD accept both formats.

It carries a series of events as a msgpack array on a single request.

name Ruby type msgpack format content tag String str tag name entries MultiEventStream array list of Entry option Object map option (optional)
[
  "tag.name",
  [
    [1441588984, {"message": "foo"}],
    [1441588985, {"message": "bar"}],
    [1441588986, {"message": "baz"}]
  ],
  {"option": "optional"}
]

It carries a series of events as a msgpack binary on a single request.

name Ruby type msgpack format content tag String str tag name entries MessagePackEventStream str | bin msgpack stream of Entry option Object map option (optional)
[
  "tag.name",
  "<<MessagePackEventStream>>",
  {"option": "optional"}
]

Entry is an array representation of pairs of time and record, used in Forward and PackedForward mode.

name Ruby type msgpack fromat content time Integer | EventTime int | ext Unix time (second) record Hash map pairs of keys(String) and values(Object)

It carries an optional meta data for the request.

{"chunk": "p8n9gmxTQVC8/nh2wlKKeQ==", "size": 1023}
{"ack": "p8n9gmxTQVC8/nh2wlKKeQ=="}

EventTime uses msgpack extension format of type 0 to carry nanosecond precision of time.

+----+----+----+----+----+----+----+----+----+----+
|  1 |  2 |  3 |  4 |  5 |  6 |  7 |  8 |  9 | 10 |
+----+----+----+----+----+----+----+----+----+----+
| C7 | 00 | second from epoch |     nanosecond    |
+----+----+----+----+----+----+----+----+----+----+
|ext |type| 32bits integer BE | 32bits integer BE |
+----+----+----+----+----+----+----+----+----+----+
Connection ::= <<Request>>*

Request ::= Message | Forward | PackedForward | nil

Message ::= [ Tag, Time, Record, Option? ]

Forward ::= [ Tag, MultiEventStream, Option? ]

MultiEventStream ::= [ Event* ]

PackedForward ::= [ Tag, MessagePackEventStream, Option? ]

MessagePackEventStream ::= <<Event>>*

Event ::= [ Time, Record ]

Tag ::= string

Time ::= integer | EventTime

Record ::= object

Option ::= object

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4