数据不是来自Splunk Javascript sdk

时间:2016-10-05 04:52:55

标签: javascript json search sdk splunk

我使用javascript SDK查询Splunk。在searchParams中,我将输出模式指定为“json_rows”。

var searchParams = {
    exec_mode: "normal",
    output_mode: "json_rows"
};

但是当我得到输出时,我不会以JSON格式得到它。输出以数组形式出现。

知道出了什么问题吗?我试过“json_cols”,只尝试了“json”。结果相同。

提前致谢。

编辑:2

更多代码

var service = new splunkjs.Service({
    username:"xxx",
    password:"xxxx",
    scheme:"https",
    host:"xxxxxx.com",
    port:"5500",
    version:"5.0"
  });

var searchQuery = 'search index=sn impact=1 OR impact=2 | eval time = round( strptime(impact_start,"%Y-%m-%d %H:%M:%S"), 0 )| where time >= ' + 14334627 + ' AND time<=' + 14568862 + '| bucket time span=1d | stats values(number) as incident_name by time';
var searchParams = {
    exec_mode: "normal",
    output_mode: "JSON"
};
service.oneshotSearch(
    searchQuery,
    searchParams,
    function(err, results) {
        if ( results ) {
            var incidentResp = {};
            incidentResp["data"] = results.rows;
            incidentResp["error"] = null;
            callback(null, incidentResp);
            return;
        }
        else {
            var errResp = {};
            errResp["data"] = null;
            errResp["error"] =err;
            callback(null, errResp);
            return;
        }

    }
);

1 个答案:

答案 0 :(得分:0)

我不是100%肯定你在问什么,但让我试着帮忙。

output_mode告诉REST API如何序列化并返回结果,通常是JSON,XML或CSV

鉴于您使用JavaScript SDK将数据提取到您的应用程序中并且实际上没有将结果写入文件,我会保留原样(JSON默认值)

您可以在&#39;结果&#39;中找到实际数据。回应。

例如

service.oneshotSearch( query, params,
    function(err, response) {
        if (err) throw new Error ( err );
        console.log( response.results );
});

尝试更改此行:

incidentResp["data"] = results.rows;:

对此:

incidentResp["data"] = results.results;

...但是,这将是一系列结果。

希望这有帮助