Closed
Description
Symfony version(s) affected
6.0.*
Description
While using ElasticsearchLogstashHandler
I get 400 error in my browser/window terminal depending on the order of the handlers in monolog.yml.
Expected behaviour:
The handler should send the log with no error to elastic search.
How to reproduce
While using this log handler with elasticsearch:8.2.2
I get HTTP/1.1 400 Bad Request returned for "http://127.0.0.1:4307/_bulk".
in the browser. The following is the full stack trace:
Symfony\Component\HttpClient\Exception\ClientException:
HTTP/1.1 400 Bad Request returned for "http://127.0.0.1:4307/_bulk".
at /home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-client/Response/CommonResponseTrait.php:174
at Symfony\Component\HttpClient\Response\CurlResponse->checkStatusCode()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-client/Response/TransportResponseTrait.php:69)
at Symfony\Component\HttpClient\Response\CurlResponse->getHeaders()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-client/Response/TransportResponseTrait.php:270)
at Symfony\Component\HttpClient\Response\CurlResponse::stream()
at Generator->next()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-client/Response/ResponseStream.php:42)
at Symfony\Component\HttpClient\Response\ResponseStream->next()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/monolog-bridge/Handler/ElasticsearchLogstashHandler.php:151)
at Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler->wait()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/monolog-bridge/Handler/ElasticsearchLogstashHandler.php:131)
at Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler->sendToElasticsearch()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/monolog-bridge/Handler/ElasticsearchLogstashHandler.php:76)
at Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler->handle()
(/home/musa/codes/modeer/modeer-web-app/vendor/monolog/monolog/src/Monolog/Logger.php:328)
at Monolog\Logger->addRecord()
(/home/musa/codes/modeer/modeer-web-app/vendor/monolog/monolog/src/Monolog/Logger.php:514)
at Monolog\Logger->debug()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:312)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->postProcess()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:163)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-kernel/HttpKernel.php:213)
at Symfony\Component\HttpKernel\HttpKernel->handleThrowable()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-kernel/HttpKernel.php:106)
at Symfony\Component\HttpKernel\HttpKernel->terminateWithException()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/http-kernel/EventListener/DebugHandlersListener.php:125)
at Symfony\Component\HttpKernel\EventListener\DebugHandlersListener::Symfony\Component\HttpKernel\EventListener\{closure}()
(/home/musa/codes/modeer/modeer-web-app/vendor/symfony/error-handler/ErrorHandler.php:541)
at Symfony\Component\ErrorHandler\ErrorHandler->handleException()
Possible Solution
When sending the same data via CURL I get a better error message:
$ curl -XPOST http://127.0.0.1:4307/_bulk -H "Content-Type: application/json" -d '{"index":{"_index":"monolog", "_type":"_doc"}}
> {"@timestamp":"2022-06-13T10:50:31.726357+04:30","@version":1,"host":"musa-XPS-13-9380","message":"Matched route \"{route}\".","type":"application","channel":"request","level":"INFO","monolog_level":200,"context":{"route":"home","route_parameters":{"_route":"home","_controller":"App\\Controller\\HomeController::index"},"request_uri":"http://127.0.0.1:4300/","method":"GET"}}
> '
{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"}],"type":"illegal_argument_exception","reason":"Action/metadata line [1] contains an unknown parameter [_type]"},"status":400}
This says we are sending an argument which is (no longer) supported, that being _type
, if I remove that from the CURL payload everything works fine. Within the code, that is the line vendor/symfony/monolog-bridge/Handler/ElasticsearchLogstashHandler.php:114
Additional Context
No response