2012-07-17 59 views
1

我正在使用splunk-client从splunk中提取结果。下面的代码:Splunk客户端(与Nokogiri)提供未定义的名称空间前缀

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

什么版本的Splunk?你是否尝试联系作者? – 2012-07-18 22:03:57

回答

0

我发现问题 - splunk客户端没有正确认证,所以search实际上是一个破损的SplunkJob对象(带有零用户名和认证密钥)。奇怪的是,直到wait命令没有发生错误,但在检查search对象时,其中一个字段指出该对象格式不正确。

+0

它在irb中是如何工作的? – 2012-07-19 00:50:51

+0

在rails中的认证步骤中,用户名中存在拼写错误。 – maxko87 2012-07-19 01:54:30

1

目前,在宝石本身内发生的错误检查很少。错误的原因是wait查找isDone键的状态更改为true。

由于您的凭证没有正确设置,所以创建一个包含无效会话的搜索对象。搜索最初并不会失败,因为从Splunk返回的足够响应Nokogiri将其处理为没有Splunk搜索sid的对象。

在未来,如果没有返回正确的sid以避免混淆,我应该会引发异常。

来源:我写的宝石。