我正在尝试使用 metricbeat http 模块来监控 F5 池。
我向 f5 api 发出请求并带回保存到 kibana 的 json。但是 json 包含一组池成员,我想计算增加的数量。
建议似乎是这可以通过脚本字段来完成。但是,我无法获取脚本来检索数组。例如
doc['http.f5pools.items.monitor'].value.length()
在预览结果中返回添加了相同的“附加字段”以进行比较:
[
{
"_id": "rT7wdGsBXQSGm_pQoH6Y",
"http": {
"f5pools": {
"items": [
{
"monitor": "default"
},
{
"monitor": "default"
}
]
}
},
"pool.MemberCount": [
7
]
},
如果我尝试
doc['http.f5pools.items']
或类似的我只是得到一个错误:
"reason": "No field found for [http.f5pools.items] in mapping with types []"
谷歌搜索表明 doc 构造不包含数组?
- 是否可以创建一个可以访问一组值的脚本字段?即是我的代码或我索引数据的方式错误。
- 如果没有,metricbeats 中是否有替代方法?我不想制作一个全新的 api 来进行计算并添加一个单独的字段
- 更新。
奇怪的是,数组中的数值似乎确实返回了预期的结果。IE。
doc['http.f5pools.items.ratio']
返回
{
"_id": "BT6WdWsBXQSGm_pQBbCa",
"pool.MemberCount": [
1,
1
]
},
-- 更新 2
好的,所以如果字段中的字符串具有不同的值,那么您将获得所有值。如果它们是相同的,你就得到一个。什么?