Http Server
HTTP Server Source
Receive logs, metrics, and traces over HTTP using a built-in HTTP server.
This source allows worker to expose an HTTP endpoint and ingest telemetry data pushed by external systems. It is commonly used for custom integrations, webhooks, and systems that do not support native streaming protocols.
Ingestion Model
- worker runs an embedded HTTP server
- External producers send telemetry data via HTTP requests
- Requests are decoded based on the configured codec
- Successfully processed requests receive an HTTP success response
- Failed decoding or processing returns an error response
This model enables push-based telemetry ingestion and decouples producers from backend pipelines.
Source Configuration Parameters
sources.<id>.type
required string
Specifies the source type.
- Must be set to http_server
sources.<id>.address
required string
Network address the HTTP server listens on.
- Format: <ip>:<port>
- Use 0.0.0.0 to listen on all network interfaces
- Port must be available on the host
sources.<id>.path
optional string
HTTP path used to receive incoming requests.
- Only requests matching this path are accepted
- Path matching is exact
Default
sources.<id>.method
optional string
HTTP method accepted by the server.
- Common values: POST, PUT
- Requests using other methods are rejected
Default
sources.<id>.encoding
optional object
Defines how incoming HTTP request bodies are decoded into events.
sources.<id>.encoding.codec
required string
Codec used to decode the HTTP request body.
Supported codecs include:
- json
- text
- syslog
- gelf
- avro
- protobuf
- influxdb
- otlp
- native
- bytes
The selected codec determines:
- Event structure
- Signal type (logs, metrics, traces)
- Parsing behavior
Framing Configuration
Controls how multiple events are extracted from a single HTTP request body.
sources.<id>.framing
optional object
Framing strategy applied before decoding.
sources.<id>.framing.method
optional string
Framing strategy used to split the request body into individual frames.
Supported methods:
- bytes
- newline_delimited
- character_delimited
- length_delimited
- octet_counting
- chunked_gelf
Each frame is decoded as a separate event.
sources.<id>.framing.delimiter
optional string
Delimiter character used with character_delimited framing.
sources.<id>.framing.max_frame_length
optional unsigned integer
Maximum allowed frame size in bytes.
- Prevents memory exhaustion from malformed payloads
- Frames exceeding this size are dropped
sources.<id>.response_code
optional unsigned integer
HTTP status code returned on successful ingestion.
- Allows compatibility with systems expecting non-default success codes
Default
TLS Configuration
Enables HTTPS for secure ingestion.
sources.<id>.tls
optional object
TLS configuration block.
sources.<id>.tls.enabled
optional boolean
Enables or disables TLS.
sources.<id>.tls.crt_file
optional string
Path to the TLS certificate file.
sources.<id>.tls.key_file
optional string
Path to the TLS private key file.
sources.<id>.tls.ca_file
optional string
Path to the certificate authority file.
- Used for client certificate validation
Authentication
sources.<id>.auth
optional object
Authentication configuration for incoming HTTP requests.
sources.<id>.auth.strategy
optional string
Authentication strategy.
Supported strategies:
- basic
- bearer
- custom
sources.<id>.auth.username
optional string
Username for Basic authentication.
sources.<id>.auth.password
optional string
Password for Basic authentication.
sources.<id>.auth.token
optional string
Bearer token required in the Authorization header.
Request Limits and Protection
sources.<id>.max_request_bytes
optional unsigned integer
Maximum allowed size of an HTTP request body.
- Requests exceeding this limit are rejected
sources.<id>.request_timeout_secs
optional unsigned integer
Maximum time allowed to receive and process a request.
- Protects against slow or stalled clients
Metadata Enrichment
Each event can be enriched with HTTP-specific metadata, including:
- Client IP address
- HTTP headers
- Request path
- HTTP method
These fields enable:
- Source attribution
- Routing decisions
- Auditing
- Security analysis
Multi-Signal Support
The HTTP Server source supports:
- Logs
- Metrics
- Traces
Signal type determination depends on:
- Selected codec
- Payload structure
- Framing configuration
Common Use Cases
- Custom application log ingestion
- Webhook-based integrations
- OTLP ingestion over HTTP
- Lightweight telemetry gateways
- Push-based observability pipelines