Dash0 Acquires Lumigo to Expand Agentic Observability Across AWS and Serverless

Last updated: March 3, 2026

How Dash0 Processes NGINX Logs

The Dash0 Nginx Processor is a specialized component designed to parse and extract valuable information from Nginx log lines. It enriches your logs with semantic attributes that follow OpenTelemetry conventions, making it easier to analyze and monitor your Nginx-based applications.

Overview

Dash0 handles multiple Nginx log formats commonly used in production environments, including standard configurations, combined formats, and Kubernetes ingress controller patterns. We automatically extract structured data from these logs without requiring custom regex development or log pipeline modifications.

This offers practical advantages:

  • Format compatibility: Works with various Nginx deployments without configuration changes
  • Standardized attributes: Maps log fields to OpenTelemetry semantic conventions, enabling consistent querying across services
  • Reduced MTTR: Simplifies troubleshooting by correlating Nginx logs with other telemetry data
  • Operational insights: Provides immediate visibility into HTTP status codes, response times, and upstream server performance

Supported Log Formats

Dash0 automatically detects and parses the following Nginx log formats:

Minimal Format

The basic Nginx access log format with essential information.

nginx
1
log_format minimal '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent';

Standard Combined Format

The most common Nginx log format used in standard deployments. Extends the minimal format with HTTP referer and user agent information.

nginx
1
log_format combined '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';

See also: Nginx documentation

Nginx Ingress Controller Format

Commonly used in Nginx Ingress Controller deployments. Extends the standard combined format with X-Forwarded-For header information.

nginx
1
log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"';

See also: Nginx ingress implementation

Kubernetes Nginx Ingress with Upstream Info

Comprehensive format used in Kubernetes Nginx Ingress controllers. Includes detailed upstream service information, request timing, and request IDs.

nginx
12345
log_format upstreaminfo
'$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer" "$http_user_agent" '
'$request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr '
'$upstream_response_length $upstream_response_time $upstream_status $req_id';

See also: Nginx Kubernetes ingress documentation

Extracted Semantic Attributes

In addition to extracting structured attributes, Dash0 also validates the following Nginx variables and converts them to semantic attributes:

IP Address Attributes

Nginx VariableDescriptionOpenTelemetry Mapping
remote_addrClient IP addressclient.address
upstream_addrAddress of the upstream server
http_x_forwarded_forX-Forwarded-For header with client IP addresses

HTTP Request Attributes

Nginx VariableDescriptionOpenTelemetry Mapping
request_methodHTTP method (GET, POST, etc.)http.request.method
request_uriRequest URI pathurl.path
server_protocolHTTP protocol versionnetwork.protocol.name and network.protocol.version
http_refererHTTP referer header
http_user_agentUser agent stringuser_agent.original

Response Attributes

Nginx VariableDescriptionOpenTelemetry Mapping
statusHTTP response status codehttp.response.status_code
body_bytes_sentSize of the response in bytes
upstream_statusHTTP status code returned by the upstream server

Performance Metrics

Nginx VariableDescription
request_lengthRequest length including request line, headers, and body
request_timeRequest processing time in seconds
upstream_response_lengthLength of the response obtained from the upstream server
upstream_response_timeTime spent on receiving the response from the upstream server

Kubernetes-specific Attributes

Nginx VariableDescription
proxy_upstream_nameName of the upstream service in Kubernetes
proxy_alternative_upstream_nameAlternative upstream name in Kubernetes

Request Identification

Nginx VariableDescription
req_idUnique request identifier
remote_userUsername for authenticated requests

Log Severity Inference

In order to automatically infer the log severity levels, Dash0 uses the following HTTP status codes:

  • INFO level: 1xx status codes (Informational), 2xx status codes (Success), 3xx status codes (Redirection)
  • WARN level: 4xx status codes (Client Errors)
  • ERROR level: 5xx status codes (Server Errors)