elastic / elastic/apm-server

Incorrect otlp/http http.response.status_code in request log

Open
#12,635 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Go
Stars
1.3k
Forks
543
Avg merge
1d 18h
Merged PRs (30d)
109

Description

**APM Server version** (`apm-server version`): confirmed on main (8.13)

**Description of the problem including expected versus actual behavior**: request log `http.response.status_code` is not returning the correct status code under otlp/http

**Steps to reproduce**:

- Send malformed otlp/http request
- otlp client should receive 400
- apm-server logs 200
```
{"log.level":"info","@timestamp":"2024-02-12T19:20:08.420Z","log.logger":"request","log.origin":{"function":"github.com/elastic/apm-server/internal/beater/middleware.LogMiddleware.func1.1","file.name":"middleware/log_middleware.go","file.line":62},"message":"handled request","service.name":"apm-server","url.original":"/v1/metrics","http.request.method":"POST","user_agent.original":"Go-http-client/1.1","source.address":"127.0.0.1","http.request.id":"69abd34d-c901-48aa-96fc-5a0e89f8311b","event.duration":36046382336,"http.request.body.bytes":486,"http.response.status_code":200,"ecs.version":"1.6.0"}
```

Root cause:
- Only request.Context.ResponseWriter is passed down to otlp handler level. otlp writes error to response writer directly without setting request.Context.Result.StatusCode.

**Provide logs (if relevant)**:

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.