Direct
A DIRECT entrypoint will receive log records sent to the pipeline
directly:
- via the FlowG API (using structured format, OpenTelemetry format, or Textual format)
- via a Pipeline Node in another pipeline
Structured format
POST /api/v1/pipelines/default/logs/struct
Content-Type: application/json
{
"records": [
{
"foo": "bar"
}
]
}
⇒
{
"timestamp": "...",
"fields": {
"foo": "bar"
}
}
Textual format
POST /api/v1/pipelines/default/logs/text
Content-Type: text/plain
hello
world
⇒
{
"timestamp": "...",
"fields": {
"content": "hello"
}
}
{
"timestamp": "...",
"fields": {
"content": "world"
}
}
OpenTelemetry JSON format
POST /api/v1/pipelines/default/logs/otlp
Content-Type: application/json
{
"resource_logs": [
{
"resource": {
"attributes": [
{
"key": "service.name",
"value": {"stringValue": "myapp"}
}
]
},
"scope_logs": [
{
"log_records": [
{
"time_unix_nano": "...",
"severity_number": 9,
"severity_text": "INFO",
"body": {"stringValue": "hello world"},
"attributes": [
{
"key": "foo",
"value": {"stringValue": "bar"}
}
]
}
]
}
]
}
]
}
⇒
{
"timestamp": "...",
"fields": {
"severity_number": "9",
"severity_text": "INFO",
"body": "hello world",
"dropped_attribute_count": "0",
"flags": "0",
"trace_id": "...",
"span_id": "...",
"event_name": "...",
"observed_time_unix_nano": "...",
"time_unix_nano": "...",
"attr.service.name": "myapp",
"attr.foo": "bar"
}
}
OpenTelemetry Protobuf format
POST /api/v1/pipelines/default/logs/otlp
Content-Type: application/x-protobuf
...
⇒
{
"timestamp": "...",
"fields": {
"severity_number": "9",
"severity_text": "INFO",
"body": "hello world",
"dropped_attribute_count": "0",
"flags": "0",
"trace_id": "...",
"span_id": "...",
"event_name": "...",
"observed_time_unix_nano": "...",
"time_unix_nano": "...",
"attr.service.name": "myapp",
"attr.foo": "bar"
}
}