插件 〉Riemann streams
Riemann streams
Grafana Riemann 流数据源
此 Grafana 插件实现了一个流式 Riemann 数据源。
目的
此数据源使用 websockets 连接到 riemann 服务器并订阅流。
安装
Grafana.com 上最新发布
grafana-cli plugins install ccin2p3-riemann-datasource
或者使用 github 上的 releases 链接下载 .zip
文件。然后将其 unzip
到您的 Grafana 插件文件夹,或者运行以下命令
version=0.1.5
grafana-cli --pluginUrl ./ccin2p3-riemann-datasource-${version}.zip plugins install ccin2p3-riemann-datasource
自行构建
您也可以使用 yarn build
命令自行构建,然后将 dist
文件夹移动到您的 grafana 插件目录中,并将其命名为 ccin2p3-riemann-datasource
。
配置您的 Riemann 后端
有关如何安装 riemann 服务器的说明,请参阅其 网站。
对于急于求成者
如果您想测试 grafana 插件,这里是一个最小化的 riemann 配置文件
; this will let you check riemann startup and websocket connections
(logging/init {:file "/var/log/riemann/riemann.log"})
; this will enable internal riemann instrumentation events at 1s interval, so you don't need to generate events yourself
(instrumentation {:interval 1 :enabled? true})
; this will enable the insecure ws server on localhost:5556
(ws-server {:host "127.0.0.1" :port 5556})
; this is to actually index events
(let [index (index)] (streams index))
详情
插件工作的唯一要求是有一个已准备好且启用了 websockets 的 riemann 实例。这意味着您需要像下面这样的一行
(ws-server {:host "0.0.0.0" :port 5556})
由于 Riemann 尚不支持安全 websockets,我们强烈建议您通过您喜欢的 Web 代理对其进行隧道传输。无论如何,如果 Grafana 是通过 https
提供页面的,由于浏览器安全限制,您将别无选择,只能这样做。传统的方法是让 riemann 绑定到本地主机且不安,并让代理监听服务器的公共接口。
(ws-server {:host "127.0.0.1" :port 5556})
为了方便您,这里是一个 HAProxy 1.5.18 的工作配置(请确保替换您的公共 IP 地址)
# defaults mode http log global option httplog option http-server-close option dontlognull option redispatch option contstats retries 3 backlog 10000 timeout client 25s timeout connect 5s timeout server 25s timeout tunnel 3600s timeout http-keep-alive 1s timeout http-request 15s timeout queue 30s timeout tarpit 60s default-server inter 3s rise 2 fall 3 option forwardfor
frontend ft_riemann bind <PUBLIC_IP_ADDRESS>:5556 name http ssl crt /etc/riemann/ssl.pem maxconn 10000 default_backend bk_riemann
backend bk_riemann balance roundrobin server websrv1 localhost:5556 maxconn 10000 weight 10 cookie websrv1 check
您还需要一个索引,否则数据源将永远看不到任何事件。
数据源配置
基本 URL
riemann 服务器的基本 URL。
示例
wss://my-haproxy-frontend:5556
ws://my-insecure-riemann:5556
查询配置
查询文本
这是将定义 websocket 订阅的查询文本。riemann 查询语言尚未有正式文档,但在其 网站 和 测试套件 上有很多示例。
如果使用变量插值并进行多重选择,请确保使用 regexp 匹配。
示例
tagged "collectd" and plugin = "load"
tagged "riemann"
metric and state = "ok"
metric = 42
service ~= "$service"
# When multiple services are selected, this will expand to
# service ~= "service1|service2|service3"
GroupBy
Riemann 可能会向您发送大量不相关的事件,除非您的查询足够具体。如果您不想让这些事件最终显示在同一个 Grafana 系列中,您必须决定哪些 riemann 字段或属性可以唯一标识您的 Grafana 系列。这就是 GroupBy
的作用。它将根据事件的属性为每个系列分配一个唯一的名称。例如,如果您使用 GroupBy=host
,所有共享相同 host
riemann 属性的事件将最终显示在同一个 Grafana 系列中。因此,您将获得与您拥有的主机数量一样多的系列。如果您使用 GroupBy=host,service
,您将获得 numHosts * numSeries
个系列。
但是,您将获得的系列数量受到参数 MaxSeries
的约束。
Max*
为了防止您的浏览器崩溃,riemann Grafana 插件的开发者体贴地实现了 MaxSeries
、MaxDataPoints
和 MaxFreq
参数。
MaxSeries
它将导致您的浏览器忽略与前 MaxSeries
个系列不匹配的事件。这并不意味着它不会处理这些事件:一旦您订阅了 riemann 事件流,您的浏览器将接收所有与查询匹配的事件。但只有那些其前 MaxSeries
个 GroupBy
子句与系列标识符匹配的事件才会在屏幕上绘制。其他的将被忽略。
MaxDataPoints
此参数限制每个系列保留在内存中的数据点数量。因此,如果您选择 MaxSeries=10
和 MaxDataPoints=1000
,浏览器中的 Grafana 面板最多将显示 10000
个点。较旧的点将以 FIFO 的方式被较新的事件替换。
MaxFreq
此参数限制每秒添加到您的系列中的数据点数量。如果您选择 MaxFreq=1
,并且在一秒内消耗了两个 riemann 事件,插件将忽略第二个事件。它仍然会处理 websocket 事件,但会立即将其丢弃。同样,这是按系列计算的,因此如果您设置 MaxSeries=10,MaxFreq=10
,屏幕上每秒最多绘制 100 个点。
StringFields
Riemann 事件可以包含许多不同的属性,以及 host
、service
、state
和 description
。此参数让您可以决定哪些属性将作为 Grafana 字段提供给面板。
NumericFields
Riemann 事件通常包含 metric
字段,用于存储时间序列的值。但它们也包含 ttl
字段,用于存储事件的过期时间。此参数允许您提供逗号分隔的列表,以指定应获取哪些字段并将其作为数字字段提供给 Grafana。默认为 metric
。
注意事项
Websocket 连接
此数据源通过为每个查询打开一个 websocket 来工作。当仪表盘重新加载或查询修改时,它会重用这些 socket。它通过跟踪查询的 QueryText
来实现这一点。这会带来以下后果
- 当创建两个使用相同查询的面板,或者一个面板中有两个相同查询时,可能会出错
- 当修改查询的参数(而非文本)时,您必须保存面板并重新加载才能使更改生效(仅点击 Grafana 的刷新按钮不足以实现)
此外,开发者尚未找到一种方法来正确关闭连接,以便在离开仪表盘时(或切换 Grafana 组织时)关闭连接。这意味着您的 websocket 将保持打开状态,直到您关闭浏览器选项卡。
因此请遵循以下指南
- 切勿在同一个仪表盘中多次使用同一个查询。如果您想以两种不同的方式表示相同的数据,请改用 Grafana 的“重用查询”功能
- 如果您修改了查询的参数(例如
MaxFreq
),请先保存,然后重新加载选项卡 - 如果您不需要实时仪表盘,请关闭选项卡,这对您的 riemann 服务器有好处
混合数据源
Grafana 提供了通过使用 --Mixed--
数据源将来自多个数据源的数据添加到面板的功能。不幸的是,此功能尚不支持流式数据源。如果您想使用此功能,请通过添加一个赞来帮助我们提升此 bug 的可见性
了解更多
- Riemann
- Grafana 文档
- Grafana 教程 - Grafana 教程是分步指南,可帮助您充分利用 Grafana
在 Grafana Cloud 上安装 Riemann streams
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
在 Grafana Cloud 实例上安装插件只需一键,更新也一样方便。很酷吧?
请注意,插件可能需要最多 1 分钟才能在您的 Grafana 中显示。
更多信息请访问关于插件安装的文档。
在本地 Grafana 上安装
对于本地实例,插件通过简单的 CLI 命令安装和更新。插件不会自动更新,但当有可用更新时,您将在 Grafana 中收到通知。
1. 安装数据源
使用 grafana-cli 工具从命令行安装 Riemann streams
grafana-cli plugins install
插件将安装到您的 grafana 插件目录中;默认路径为 /var/lib/grafana/plugins。更多关于 cli 工具的信息。
2. 配置数据源
通过 Grafana 主菜单访问,新安装的数据源可以立即在“数据源”部分添加。
接下来,点击右上角的“添加数据源”按钮。该数据源将在“类型”下拉框中可用。
要查看已安装数据源列表,请点击主菜单中的“插件”项。核心数据源和已安装数据源都将显示。