HTTP
Send logs to Oodle using HTTP POST requests: from any application or system that can make HTTP requests.
Configuration
To send logs to Oodle via HTTP, you'll need the following values:
OODLE_INSTANCE
: Your Oodle instance IDOODLE_API_KEY
: Your Oodle API key for authenticationOODLE_ENDPOINT
: The Oodle endpoint URL for log ingestion
Sending Logs
Oodle can receive logs directly via HTTP POST requests. Here are a few minimal examples:
- cURL
- JavaScript
- Python
curl -X POST "https://<OODLE_ENDPOINT>/ingest/v1/logs" \
-H "Content-Type: application/json" \
-H "X-OODLE-INSTANCE: <OODLE_INSTANCE>" \
-H "X-API-KEY: <OODLE_API_KEY>" \
-d '{
"level": "info",
"timestamp": "2025-09-30T21:07:31.412Z",
"message": "Sample log message"
}'
await fetch("https://<OODLE_ENDPOINT>/ingest/v1/logs", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-OODLE-INSTANCE": "<OODLE_INSTANCE>",
"X-API-KEY": "<OODLE_API_KEY>"
},
body: JSON.stringify({
level: "info",
timestamp: "2025-09-30T21:07:31.412Z",
message: "Sample log message"
})
})
import requests
import json
requests.post(
"https://<OODLE_ENDPOINT>/ingest/v1/logs",
headers={
"Content-Type": "application/json",
"X-OODLE-INSTANCE": "<OODLE_INSTANCE>",
"X-API-KEY": "<OODLE_API_KEY>"
},
json={
"level": "info",
"timestamp": "2025-09-30T21:07:31.412Z",
"message": "Sample log message"
}
)
Log Format
Logs should be sent as JSON objects, with a "message"
key.
{
"message": "Your log message here",
"<OPTIONAL_ADDITIONAL_FIELD>": "<VALUE>"
}
Required Fields
message
: The log message content
Supported Fields
The following table shows all fields Oodle supports. All of them are of type
string
. Any field not listed here, if sent, will be captured in the raw_log
field, visible in Oodle Logs UI.
Field Name | Description |
---|---|
message | Required. The log message content |
timestamp | Log timestamp |
level | Log level (debug, info, warn, error, etc.) |
environment | Environment name (prod, staging, dev, etc.) |
service | Name of the service generating the log |
cluster | Cluster identifier |
platform | Platform identifier |
namespace | Kubernetes namespace |
log_group | Log group identifier |
log_stream | Log stream identifier |
cloud_instance_id | Cloud instance identifier |
node | Node identifier |
container_id | Container ID |
container_image | Container image name |
container_name | Container name |
namespace_labels | Kubernetes namespace labels (JSON string) |
node_labels | Node labels (JSON string) |
pod_labels | Pod labels (JSON string) |
pod_annotations | Pod annotations (JSON string) |
pod_ip | Pod IP address |
pod_ips | Pod IP addresses |
pod_name | Pod name |
lambda_arn | AWS Lambda ARN |
function_name | Function name |
task_definition | ECS task definition |
task_id | Task identifier |
trace_id | Distributed tracing trace ID |
span_id | Distributed tracing span ID |
launch_type | Launch type (e.g., EC2, FARGATE) |
source_type | Source type identifier |
Timestamp and Time Formats
If the request doesn't contain timestamp
, the timestamp of when the request
was received is used.
The following formats are supported:
- RFC 3339:
2006-01-02T15:04:05Z07:00
- ISO 8601:
20060102T15:04:05.999999Z07:00
- Epoch seconds
- Epoch milliseconds
- Epoch microseconds
Support
If you need assistance or have any questions, please reach out to us through:
- The help chat widget in the bottom-right corner of this page
- Email at support@oodle.ai