https://github.com/elastic/elasticsearch/issues/25718

Elasticsearch endpoints should take both application/json and
application/x-ndjson. There might be something else going on here. That is
why I asked for the Elasticsearch logs.

It might not be necessary to rewrite the content type.

Kevin Risden


On Fri, Sep 21, 2018 at 1:17 PM rabii lamriq <lam...@gmail.com> wrote:

> Hi all,
>
> My problem is how to change the content-type=application/json to
> application/x-ndjson by rewriting the header in the knox.
>
> Because grafana send their query with content-type=application/json and
> knox return status 400,
>
> Hower when i reproduce the problem by curl comande, I noticed that if i
> replace json by x-ndjson through knox it wirk well.
>
> Sence i can't change the content-type in grafana, is this possible by
> rewriting the header in knox to replace json by x-ndjson.
>
> Regards
> Rabii
>
> Le ven. 21 sept. 2018 à 18:05,
> Kevin Risden
> <kris...@apache.org> a écrit :
>
>> Do you have the error from Elasticsearch logs? It might explain if Knox
>> or Grafana is sending a bad request.
>>
>> Kevin Risden
>>
>>
>> On Fri, Sep 21, 2018 at 12:03 PM Sandeep Moré <moresand...@gmail.com>
>> wrote:
>>
>>> I don't see any issues from Knox side, what error do you see in Grafana
>>> ?  I think this could be because Grafana is expecting certain content-type.
>>>
>>> On Fri, Sep 21, 2018 at 11:37 AM rabii lamriq <lam...@gmail.com> wrote:
>>>
>>>> Hi Sandeep
>>>>
>>>> thanks for your feedback, below is the deboug log for this curl
>>>>
>>>> 2018-09-18 17:23:23,154 DEBUG hadoop.gateway
>>>> (UrlRewriteProcessor.java:rewrite(166)) - Rewrote URL: 
>>>> https://<host-knox>:8443/gateway/default/es5/<index_name>/_msearch,
>>>> direction: IN via explicit rule: ES5/inbound/query to URL: http://
>>>> <host-elast>:9200/<index_name>/_msearch
>>>> 2018-09-18 17:23:23,156 DEBUG hadoop.gateway
>>>> (ElasticsearchDispatch.java:executeOutboundRequest(79)) - Dispatch request:
>>>> POST http://<host-elast>:9200/<index_name>/_msearch?doAs=<u_user>
>>>> 2018-09-18 17:23:23,193 DEBUG hadoop.gateway
>>>> (ElasticsearchDispatch.java:executeOutboundRequest(95)) - Dispatch response
>>>> status: 400
>>>> 2018-09-18 17:23:23,194 DEBUG hadoop.gateway
>>>> (DefaultDispatch.java:getInboundResponseContentType(202)) - Using explicit
>>>> character set UTF-8 for entity of type application/json
>>>> 2018-09-18 17:23:23,195 DEBUG hadoop.gateway
>>>> (DefaultDispatch.java:getInboundResponseContentType(210)) - Inbound
>>>> response entity content type: application/json; charset=UTF-8
>>>> 2018-09-18 17:23:54,519 DEBUG hadoop.gateway
>>>> (GatewayFilter.java:doFilter(116)) - Received request: POST
>>>> /es5/<index_name>/_msearch
>>>> 2018-09-18 17:23:54,521 INFO  hadoop.gateway
>>>> (AclsAuthorizationFilter.java:doFilter(85)) - Access Granted: true
>>>>
>>>> Regards
>>>> Rabii
>>>>
>>>> Le ven. 21 sept. 2018 à 17:17, Sandeep Moré <moresand...@gmail.com> a
>>>> écrit :
>>>>
>>>>> Hello Rab,
>>>>>
>>>>> Interesting, do you have the debug logs for this ? they will tell us
>>>>> exactly what is happening.
>>>>>
>>>>> Best,
>>>>> Sandeep
>>>>>
>>>>> On Fri, Sep 21, 2018 at 9:56 AM rabii lamriq <lam...@gmail.com> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> From Grafana, I Post multisearch query to Elasticsearch using the
>>>>>> bulk API with the newline delimited JSON (NDJSON) format.
>>>>>> https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html
>>>>>> like this:
>>>>>>
>>>>>> curl -u myuser -i -H “Content-Type: application/json” -XPOST "
>>>>>> http://host_ES:900/index/_msearch"; --data-binary ’
>>>>>> { first json doc}
>>>>>>  {second json doc}
>>>>>> ’
>>>>>> when bypassing Knox, The query work well either we made json or
>>>>>> x-ndjson,
>>>>>> However, through Knox gateway, if the content-type=application/json,
>>>>>> the query retun this error of 400:
>>>>>>
>>>>>>  HTTP/1.1 400 Bad Request
>>>>>>  content-type: application/json
>>>>>>
>>>>>> But when we replace json by x-ndjson like mentioned in the bulk API,
>>>>>> it work well.
>>>>>>
>>>>>> My problem is that Grafana send their query with the
>>>>>> content-type=application/json and not x-ndjson, for this, it is possible 
>>>>>> to
>>>>>> make any thing on Knox to solve this problem?
>>>>>>
>>>>>> Regards
>>>>>>  Rab
>>>>>>
>>>>>

Reply via email to