我正在使用splunk-client从splunk中提取结果。这是代码:
query = "sourcetype=collection #{order_id}"
search = @splunk_client.search(query)
search.wait
搜索发生得很好,似乎我根据示例(https://github.com/cbrito/splunk-client)做了所有事情,但我在'search.wait'上收到此错误行:
Undefined namespace prefix: //s:key[@name='isDone']
任何想法可能会出错?在irb中运行这些命令可以正常工作。是否存在某种阻塞问题?
答案 0 :(得分:1)
目前在gem本身内发生的错误检查非常少。出错的原因是wait
查找要更改为true的isDone
键的状态。
由于您的凭据首先未正确设置,因此gem会创建一个具有无效会话的搜索对象。搜索最初没有失败,因为Splunk得到了足够的响应,Nokogiri将其处理成没有Splunk搜索sid的对象。
将来如果没有返回适当的sid以避免混淆,我可能会提出异常。
来源:我写了宝石。
答案 1 :(得分:0)
我发现了问题 - splunk客户端没有正确进行身份验证,因此search
实际上是一个损坏的SplunkJob对象(使用nil用户名和身份验证密钥)。奇怪的是,在wait
命令之前没有出现错误,但在检查search
对象时,其中一个字段表明对象格式错误。