Incorrect otlp/http http.response.status_code in request log
- 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
Assessment
This issue has not been assessed yet.