I am not understand how to apply this for content-type.

Le mar. 25 sept. 2018 à 15:18, Sandeep Moré <moresand...@gmail.com> a
écrit :

> This is an example in Webhdfs service def.
> https://github.com/apache/knox/blob/6e7266ad3649e1804ee869afed04f79a71e48b7d/gateway-service-definitions/src/main/resources/services/webhdfs/2.4.0/rewrite.xml#L64
>
>
>
> On Tue, Sep 25, 2018 at 5:37 AM rabii lamriq <lam...@gmail.com> wrote:
>
>> Hi Sandeep,
>>
>> Yes, I know that is possible, but I don't know how to rewrite the rule to
>> access to the header and change the Content-type, I can't find any thing
>> related to this customization.
>>
>> Regards
>> Rabii
>>
>> Le lun. 24 sept. 2018 à 17:19, Sandeep Moré <moresand...@gmail.com> a
>> écrit :
>>
>>> Yes, you can use the rewrite rules to update Headers, I don't remember
>>> exactly which service uses it but there should be few services that rewrite
>>> headers.
>>>
>>> Best,
>>> Sandeep
>>>
>>> On Mon, Sep 24, 2018 at 10:45 AM rabii lamriq <lam...@gmail.com> wrote:
>>>
>>>>
>>>> Rewrite rules for knox (link
>>>> <https://cwiki.apache.org/confluence/display/KNOX/2017/08/14/Understanding+Rewrite+Rules+for+Apache+Knox#UnderstandingRewriteRulesforApacheKnox-JSONURLRewriteFIlter>)
>>>> can help me to change header? is it possible?
>>>>
>>>> Le lun. 24 sept. 2018 à 16:43, rabii lamriq <lam...@gmail.com> a
>>>> écrit :
>>>>
>>>>> Hello
>>>>>
>>>>> Any help please??
>>>>>
>>>>> Le lun. 24 sept. 2018 à 09:31, rabii lamriq <lam...@gmail.com> a
>>>>> écrit :
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> thanks every One, for your feedbacks,
>>>>>>
>>>>>> Yes, ES accept both application/json and application/x-ndjson, there
>>>>>> is no problem in ES ni in Grafana, when i test my query with curl to send
>>>>>> POST to ES, it work well ether json or x-ndjson.
>>>>>>
>>>>>> However, through Knox Gateway, it work only for x-ndjson, I don't
>>>>>> know why. so, since Grafana send their POST with only json and not
>>>>>> x-ndjson, the scenario of Grafana -> Knox -> ES with multi search doesn't
>>>>>> work.
>>>>>>
>>>>>> I think we have two solution:
>>>>>>
>>>>>> 1- make some thing to force Grafana change header of POST and put
>>>>>> x-ndjson instead of json, or
>>>>>> 2- rewrite Header by Knox to forwarded with x-ndjson to ES.
>>>>>>
>>>>>> If some one have any idea of how to make this or other solution.
>>>>>>
>>>>>>
>>>>>> Regards
>>>>>> Rabii
>>>>>>
>>>>>> Le ven. 21 sept. 2018 à 19:21, Kevin Risden <kris...@apache.org> a
>>>>>> écrit :
>>>>>>
>>>>>>> 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