我刚刚开始使用JMeter在我们的生产环境中执行一些简单的synticntic事务,并且我添加了许多侦听器来捕获测试运行的摘要到XML文件。我现在正在考虑将这些数据导入Splunk,以便为团队的其他成员提供报告,并且正在寻找最佳方法。
我最初是通过索引由Splunk中的JMeter生成的XML文件来完成的,这很有效并且允许我们生成所需的报告。但是,鉴于此测试计划最终将每分钟执行两次,达到20多个盒子,我希望理想情况下跳过XML文件(并且它的潜在大小!)并直接将数据导入Splunk。
有什么替代方案吗?
答案 0 :(得分:1)
本地,您可以使用CSV而不是XML,请参阅:
另一个选择是使用splunk理解的协议编写自定义侦听器,请参阅:
答案 1 :(得分:1)
只是添加已经提出的建议......
我希望你能以某种方式使用log4j或logback,因为那时你可以使用SplunkJavaLogging,但看起来JMeter不允许你使用日志框架作为你的监听器输出。
因此,如果您希望通过原始TCP或HTTP REST将结果直接传输到Splunk,则必须创建自定义JMeter侦听器。
幸运的是,we already have a Splunk Java SDK会照顾你的运输工具。大量代码示例可供使用。
您只需将其包装在JMeter侦听器实现中。
答案 2 :(得分:0)
在“PMD UBIK-INGENIERIE”的答案的基础上,您如何实际将日志提交给Splunk?
你最好绝对是使用Splunk方面的脚本输入,这个脚本取决于你的操作系统可以包括python,Bash,Batch等。请参阅Splunk文档中的以下章节:
http://docs.splunk.com/Documentation/Splunk/latest/Developer/ScriptedInputsIntro
不知道JMeter工具,我想说,一个解决方案就是让Splunk运行一个“包装器”脚本,它调用你选择的API查询脚本。然后,您可以让Splunk监视该脚本的STDOUT,或者以一种很好的格式将其写入文件,以便Splunk进行监视。
就部署而言,最好(如果可能)在远程主机上安装Splunk转发器(注意:Universals不包含python),并让转发器通过安全将数据传递给Indexer TCP连接,这有助于防止数据丢失,因为Splunk会在连接丢失的情况下对数据进行排队。
此外,访问Splunk的官方论坛@ SplunkBase可能会有所帮助。虽然没有任何直接匹配的问题,但那里有许多经验丰富且有帮助的Splunkers(包括员工,合作伙伴/经销商和客户)。甚至可能有另一个用户已按照您的方案索引JMeter数据。