Kibana URL 构建器
这个库允许建立 Kibana URL, 例如在发送通知时 .
:警告:已生成的基巴纳URL目前只在基巴纳 6.x上进行了测试.
使用量
# Using npm
npm install @clickandmortar/kibana-url-builder
# Using Yarn
yarn add @clickandmortar/kibana-url-builder
const kub = require('@clickandmortar/kibana-url-builder')
const url = kub.buildDiscoverUrl({
host: 'http://kibana:5601',
columns: ['_source'],
filters: [],
query: 'my query'
})
// url = http://kibana:5601/app/kibana#/discover?_g=(time:(from:now-15m,mode:quick,to:now))&_a=(columns:!(_source),filters:!(),interval:auto,query:(language:lucene,query:'my query'),sort:!('@timestamp',desc))
方法
buildDiscoverUrl ({ host, refreshInterval, period, columns, filters, index, interval, query, sort }: KibanaDiscoverUrlBuildParameters): string
这种方法返回一个无国籍的Kibana"发现"URL,任何访问Kibana实例的人都可以共享和使用.
| 参数 | 类型 | 默认 | 需求 | 示例 |
|---|---|---|---|---|
host | string | ✅ | http://kibana:5601 | |
columns | string[] | ['_source'] | ['_source', 'log'] | |
filters | KibanaQueryFilter[] | [] | 见下文 | |
query | string | foo AND bar (卢斯语法) | ||
period | KibanaQueryPeriod | { "from": "now-15m", "mode": "quick", "to": "now" } | 见下文 | |
index | string | 使用过滤器时 | my-index-pattern | |
interval | string | auto | 15m | |
refreshInterval | KibanaQueryRefreshInterval | { "pause": true, "value": 300000 } | ||
sort | KibanaQuerySort | { "field": "@timestamp", "direction": "desc" } |
过滤器
当使用过滤器时,您必须使用 index 属性.
支持的过滤器类型 :
- 存在 / 不存在(类型 =
exists(中文(简体) ) - 是/不是(类型=)
query(中文(简体) ) - 其中一个/ 不是其中一个(类型 =
phrases(中文(简体) ) - 介于/ 不介于( 类型 =)
range(中文(简体) )
“ 不” 过滤器可用于设置 negate 过滤器属性 true。 。 。 .
所有过滤器都是类型 KibanaQueryFilter 并共享以下属性:
| 财产 | 类型 | 默认 | 需求 | 说明 |
|---|---|---|---|---|
type | string | - 说吧 | ✅ | 见下文实例 |
field | string | - 说吧 | ✅ | ES 字段名称 |
value | string|boolean|number|string[] | - 说吧 | ✅ | 见下文实例 |
negate | boolean | false | - 说吧 | 取消过滤器 |
alias | string | 无 | 过滤器别名 | |
disabled | boolean | false | 将过滤器标为已禁用 |
已存在 / 不存在
{
type: 'exists',
field: 'statusCode'
}
是/是没有
{
type: 'query',
field: 'namespace',
value: 'kube-system'
}
其中一个/ 不是一个
{
type: 'phrases',
field: 'namespace',
value: ['kube-system', 'default']
}
在/ 不在两者之间
{
type: 'range',
field: 'statusCode',
value: [400, 499]
}
期间
有三个时期的预设:
quick财务报告和审定财务报表relative: 使用日期 弹性搜索日期数学, ie. 说吧.now, (中文(简体) ),now-7d等 (中文(简体) ).absolute: 绝对日期
快速相对周期( N)
{
from: 'now-7d',
to: 'now',
mode: 'quick'
}
绝对期间
{
from: '2021-03-31T22:00:00.000Z',
to: '2021-04-02T21:59:59.999Z',
mode: 'absolute'
}
测试
npm run test
增强
- 添加过滤器支持
- 添加测试: QQ WIP
- 添加缺失的过滤器: 是其中之一, 是介于
- 添加过滤器文档
- 增加前期文件
- 添加可视化查询的支持