For reference: https://github.com/Graylog2/graylog2-server/issues/2751

We will tackle this issue in one of the next releases of Graylog.

Cheers,
Jochen

On Friday, 26 August 2016 13:32:03 UTC+2, Kostya Vasilyev wrote:
>
> Jochen,
>
> On Friday, August 26, 2016 at 1:49:04 PM UTC+3, Jochen Schalanda wrote:
>>
>> Hi Kostya,
>>
>> On Thursday, 25 August 2016 16:02:23 UTC+2, Kostya Vasilyev wrote:
>>>
>>> If you meant that there are no double quotes around key names -- that's 
>>> just how shows in the Graylog UI.
>>>
>>
>> No, that's the actual content of the "result" field.
>>
>
>
> This: {subs=57, devs=34} is not valid JSON, I agree.
>
> But this: {"subs": 57, "devs": 34} is valid JSON, this was in the data 
> returns by my HTTP API.
>
> Oh, right, it's not just the quotes, it's the "=" vs. ":" key / value 
> delimiters.
>
> Sorry I somehow missed it.
>
> But this "string representation of a dictionary" was produced by Graylog's 
> "HTTP JSON Input", presumably there is a reason why this format was picked.
>
> And so the issue really is, to take a step back -- how can I work with 
> this data (inside "result")?
>  
>
>>
>>
>> On Thursday, 25 August 2016 16:02:23 UTC+2, Kostya Vasilyev wrote:
>>>
>>> Or maybe I'm wrong about "that's just how shows in the Graylog UI", and 
>>> Graylog's "http JSON" input loses double quotes around nested keys? That 
>>> would be a bug, wouldn't it?
>>>
>>
>> The content of the "result" field isn't JSON at all but a string 
>> representation of the extracted map/dictionary. If you consider this a bug, 
>> please create an issue for this at 
>> https://github.com/Graylog2/graylog2-server/issues.
>>
>>
> Before I do that, let me try again, from a broader perspective.
>
> I've got an HTTP API that returns some values as a JSON object.
>
> Then I've configured a "HTTP JSON input" in Graylog, pointing to this HTTP 
> API.
>
> As we now know (thanks again), this records the "result" as a string 
> that's not JSON, rather it's a "Java toString" or similar, and can't be 
> processed with the JSON extractor.
>
> Now the question:
>
> How can extract data from "result" into individual values?
>
> One solution would be to have the input itself do that, using a more 
> "specific" JSON selector (path) of the actual (single!) value to extract.
>
> But then I'd need to create essentially same exact inputs for this API, 
> one for each value that I need. Not very convenient.
>
> Two possible solutions that I can think of would be:
>
> 1 - Being able to specify several, not one, JSON selectors in an HTTP JSON 
> input, and the name of a message property for each one.
>
> Something like this:
>
> _subs = $.objs.subs
> _devs = $.objs.devs
> _db_write_ops = $.db.stats.write.op_count
>
> I guess that's not possible right now?
>
> 2 - Maybe there is an extractor -- not the JSON extractor but some other 
> kind -- which already is able to work with what I've got in "result" right 
> now?
>
> That would be able to extract the values of "devs" and "subs" and store 
> them as message properties?
>
> I can't seem to find one like that, am I missing something?
>
> -- K
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Graylog Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/graylog2/e04a1f1f-686e-4850-a42c-3bd0fe2995ae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to