2014-10-28 75 views
0

我大量使用SPLUNK和SPLUK Rest API。大多数时候这工作正常。 SPUNK查询语言也易于用于非开发人员。我在SPLUNK旁边使用R来开发高级分析包来测试软件的稳健性。我想混合两者。Splunk查询语言R

是否有任何R软件包或R软件接受并处理SPLUNK查询?如果不是,在R中也需要有人使用这个功能?

+0

这可能是更好地将R添加到[Splunk搜索管道](h ttps://apps.splunk.com/app/1735/),但是您可以轻松使用'httr'软件包来处理Splunk的[REST API](http://dev.splunk.com/view/SP-CAAADQT )。 – hrbrmstr 2014-10-28 11:55:26

回答

4

是的!有一个Splunk应用程序的确切目的。

它被称为R Project.

使用它是很容易。

| r "output = data.frame(Name=c('A','B','C'),Value=c(1,2,3))" 

...或上传到应用程序A R脚本文件只是名字:

| r myscript.r 

输入进来为input,你需要你直接的结果output让他们回到Splunk。

  1. 下载的应用程序
  2. 添加路径到您的[R斌$SPLUNK_HOME/etc/apps/r/default/r.conf例如r=/usr/bin/R
  3. 管至R在您的搜索命令是这样的:

| r "exp(mean(log(data.matrix(input)))) -> output"

这里有一个稍微复杂的例子:

sourcetype=ps earliest=-4m 
| multikv fields RSZ_KB 
| search RSZ_KB > 0 AND VSZ_KB > 0 
| table RSZ_KB VSZ_KB 
| r " 
gm_mean = function(x, na.rm=TRUE){ 
    exp(sum(log(x[x > 0]), na.rm=na.rm)/length(x)) 
} 
data <- data.matrix(input); 
output <- apply(data, 2, gm_mean)" 

提供

x 
132.902175678696 
34188.4285350717