R的Splunk查询语言

Mir*_*ert 0 r splunk

我大量使用SPLUNK和SPLUK Rest API.大部分时间这都很好.SPUNK查询语言也非常容易用于非开发人员.我使用SP旁边的R来开发高级分析包来测试软件的稳健性.我想混合两者.

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

met*_*syn 5

更新2018年:

  • 源代码已从github中删除
  • 该应用已从splunkbase中删除

我不知道在使用其余api之外在R中使用Splunk的好方法.


原帖:

是的!有一个Splunk应用程序用于这个目的.

它被称为R Project.

使用它真的很容易.

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

...或者只是上传到应用程序的R脚本文件的名称:

| r myscript.r
Run Code Online (Sandbox Code Playgroud)

输入输入input,您需要将结果output导入到Splunk中.

  1. 下载应用程序
  2. $SPLUNK_HOME/etc/apps/r/default/r.conf例如,将路径添加到R bin中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)"
Run Code Online (Sandbox Code Playgroud)

提供

x
132.902175678696
34188.4285350717
Run Code Online (Sandbox Code Playgroud)