在 kibana 中可视化自定义查询
Visualizing a custom query in kibana
我有这个 Elasticsearch 的自定义查询:
{
"query": { "match_all": {} },
"size": 0,
"aggs": {
"hour": {
"histogram": {
"script": "doc['startTime'].date.hourOfDay",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"lang":"groovy"
}
}
}
}
其中,当运行通过邮递员时,给出以下结果(不完整):
"aggregations": {
"hour": {
"buckets": [
{
"key": 0,
"doc_count": 18359
},
{
"key": 1,
"doc_count": 18361
},
{
"key": 2,
"doc_count": 18183
},
{
"key": 3,
"doc_count": 19729
},
事实是,现在我想在 Kibana 中可视化这些桶。
目标是显示 24 个条形图,每个条形图都有各自的 doc_count.
如果我将查询放入搜索栏,但我收到错误消息:
Visualize: [filtered] query does not support [query]
.
进入可视化选项卡并添加聚合类型 "Date histogram" 的 x 轴、字段 "startTime"(这是我的日期字段)、间隔自动和以下 json:
{
"histogram": {
"script": "doc['startTime'].date.hourOfDay",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"lang":"groovy"
}
}
也会产生错误:
Visualize: Unknown key for a START_OBJECT in [2]: [histogram].
过去 3 小时一直在阅读不同的解决方案,没有偶然发现任何可行的解决方案。
更多信息:
"version": {
"number": "2.3.3",
"build_hash": "218bdf10790eef486ff2c41a3df5cfa32dadcfde",
"build_timestamp": "2016-05-17T15:40:04Z",
"build_snapshot": false,
"lucene_version": "5.5.0"
}
- Kibana 版本:4.5.0
- Kibana 版本:9889
有没有人可以帮助我 :)?
您可以使用 Kibana 中的 'JSON Input' 选项执行此操作:
- 创建新的垂直条可视化
- 在 XAxis 下,select 'Histogram' 可视化和 select 列表中的任何字段
- Select任意区间
- 单击 'Advanced' 插入符号并在文本框中输入以下内容
{
"script": "doc['startTime'].date.hourOfDay",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"lang": "groovy"
}
另一种选择是创建一个新的脚本字段并使用它:
- 转到设置 -> 单击左侧的索引模式
- Select 'Scripted fields' 选项卡(在 'Fields' 选项卡旁边)
- 点击'Add Scripted Field'
- 将字段命名为
startTime_hourofday
- 在脚本输入下,设置:
doc['startTime'].getHourOfDay()
- 现在您可以创建一个新的可视化效果,正如您尝试在没有任何特殊或自定义 JSON 输入的情况下所做的那样,只需从字段列表中 select 输入
startTime_hourofday
。
的方法对我有用,但我必须稍微更改 JSON 输入以使其适用于我的 Kibana 版本。最初我看到这个错误消息:
[1:169] [histogram] unknown field [lang]
Kibana 版本: 7.16.1
ElasticSearch 版本:8.2
{
"script": "doc['startTime'].value.getHour()",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
}
}
我有这个 Elasticsearch 的自定义查询:
{
"query": { "match_all": {} },
"size": 0,
"aggs": {
"hour": {
"histogram": {
"script": "doc['startTime'].date.hourOfDay",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"lang":"groovy"
}
}
}
}
其中,当运行通过邮递员时,给出以下结果(不完整):
"aggregations": {
"hour": {
"buckets": [
{
"key": 0,
"doc_count": 18359
},
{
"key": 1,
"doc_count": 18361
},
{
"key": 2,
"doc_count": 18183
},
{
"key": 3,
"doc_count": 19729
},
事实是,现在我想在 Kibana 中可视化这些桶。 目标是显示 24 个条形图,每个条形图都有各自的 doc_count.
如果我将查询放入搜索栏,但我收到错误消息:
Visualize: [filtered] query does not support [query]
.
进入可视化选项卡并添加聚合类型 "Date histogram" 的 x 轴、字段 "startTime"(这是我的日期字段)、间隔自动和以下 json:
{
"histogram": {
"script": "doc['startTime'].date.hourOfDay",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"lang":"groovy"
}
}
也会产生错误:
Visualize: Unknown key for a START_OBJECT in [2]: [histogram].
过去 3 小时一直在阅读不同的解决方案,没有偶然发现任何可行的解决方案。
更多信息:
"version": {
"number": "2.3.3",
"build_hash": "218bdf10790eef486ff2c41a3df5cfa32dadcfde",
"build_timestamp": "2016-05-17T15:40:04Z",
"build_snapshot": false,
"lucene_version": "5.5.0"
}
- Kibana 版本:4.5.0
- Kibana 版本:9889
有没有人可以帮助我 :)?
您可以使用 Kibana 中的 'JSON Input' 选项执行此操作:
- 创建新的垂直条可视化
- 在 XAxis 下,select 'Histogram' 可视化和 select 列表中的任何字段
- Select任意区间
- 单击 'Advanced' 插入符号并在文本框中输入以下内容
{
"script": "doc['startTime'].date.hourOfDay",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
},
"lang": "groovy"
}
另一种选择是创建一个新的脚本字段并使用它:
- 转到设置 -> 单击左侧的索引模式
- Select 'Scripted fields' 选项卡(在 'Fields' 选项卡旁边)
- 点击'Add Scripted Field'
- 将字段命名为
startTime_hourofday
- 在脚本输入下,设置:
doc['startTime'].getHourOfDay()
- 现在您可以创建一个新的可视化效果,正如您尝试在没有任何特殊或自定义 JSON 输入的情况下所做的那样,只需从字段列表中 select 输入
startTime_hourofday
。
[1:169] [histogram] unknown field [lang]
Kibana 版本: 7.16.1
ElasticSearch 版本:8.2
{
"script": "doc['startTime'].value.getHour()",
"interval": 1,
"min_doc_count": 0,
"extended_bounds": {
"min": 0,
"max": 23
}
}