插件 〉服务依赖关系图
服务依赖关系图
Novatec 服务依赖关系图面板
版本 4.0.0 仅兼容 7.1.0 及更高版本的 Grafana!
由 Novatec 提供的服务依赖关系图面板为您提供了许多功能,例如监控您所需服务的延迟、错误和请求。此 Grafana 的交互式面板将帮助您更好地可视化应用程序的流程。
更新服务依赖关系图面板
版本 4.0.0 更改了图标映射的文件结构。**图标现在位于路径“plugins/novatec-sdg-panel/assets/icons/”中。** 这也适用于自定义图标!
数据源配置
使用静态虚拟数据
如果您想在还没有自己的数据源的情况下对该面板有一个初步印象,则面板提供了一些虚拟数据供您试用。
虚拟数据基本上是表格格式中多个查询结果的快照。您可以在面板的 GitHub 存储库中找到其源代码 此处。
根据查询结果,数据提供以下标签
- service: 数据相关的服务(应用程序)。
- protocol: 通信类型(例如 HTTP、JMS 等)。
- origin_service: 在传入通信的情况下,这是源服务。
- target_service: 在传出通信的情况下,这是目标服务。
- origin_external: 传入通信的来源,无法与已知服务相关联(例如,第三方应用程序的 HTTP 请求)。
- target_external: 传出通信的目标,无法与已知服务相关联(例如,第三方 HTTP 端点)。
根据查询结果,数据提供以下字段
- in_timesum: 所有传入请求响应时间的总和。(Prometheus 样式)
- in_count: 传入请求的总数。
- error_in: 产生错误的传入请求数。
- out_timesum: 所有传出请求响应时间的总和。(Prometheus 样式)
- out_count: 传出请求的总数。
- error_out: 产生错误的传出请求数。
- threshold: 传入请求响应时间的临界阈值(毫秒)。
为了使用此数据,您只需激活可以在“常规设置”中找到的虚拟数据开关即可。所有必要的选项都将应用。激活虚拟数据后,您的数据映射应如下所示
键 | 值 |
---|---|
响应时间 | in_timesum |
请求速率 | in_count |
错误率 | error_in |
响应时间(传出) | out_timesum |
请求速率(传出) | out_count |
错误率(传出) | error_out |
响应时间基线(上限) | threshold |
请注意,您可能需要刷新仪表盘或重新加载页面才能使其生效。
实时虚拟数据示例
下载并启动inspectIT Ocelot 演示 #1 将为您提供实时虚拟数据,而不是静态数据。只需打开 Docker 镜像的 Grafana 并选择仪表盘Service Graph
即可查看功能完整的服务依赖关系图。
使用您自己的数据源
如果您现在想使用自己的数据源,您需要确保接收到的数据采用TABLE
格式,并且结构如下所示
该表格至少需要一列指定连接的源或目标。设置
Source Component Column
和Target Component Column
需要设置为相应字段的确切名称。数据可以包含多个值列。这些列必须使用面板的
Data Mappings
选项映射到特定属性。**示例**:假设数据表包含一列名为req_rate
,其值表示当前时间窗口内相关连接的请求速率。为了正确地将这些值可视化为请求速率,Request Rate Column
选项必须设置为req_rate
- 列名。
示例
示例 1
如果满足前面描述的要求,则最小表格可以如下所示
app | target_app | req_rate |
---|---|---|
service a | service b | 50 |
service a | service c | 75 |
service c | service d | 25 |
假设面板的设置如截图所示,则面板将如下可视化数据
注意:重要的是要知道,只有在定义了至少一个请求速率列(传入或传出)时,才能生成连接。
示例 2
在本例中,我们通过另一列扩展了示例 1 的数据表,该列表示特定连接的所有请求响应时间的总和(例如,所有 HTTP 请求响应时间的总和)。
app | target_app | req_rate | resp_time |
---|---|---|---|
service a | service b | 50 | 4000 |
service a | service c | 75 | 13650 |
service c | service d | 25 | 750 |
现在,面板的Data Mappings
选项Response Time Column
设置为resp_time
。这表示resp_time
列中的值应作为连接的响应时间处理。默认情况下,此列中的值将被视为所有响应时间的总和——类似于 Prometheus 风格的指标。可以通过使用Handle Timings as Sums
选项更改此行为。此表将产生以下可视化效果。
服务图标
服务依赖关系图插件允许您在绘制的节点中显示您自己的符号。为此,可以使用“服务图标映射”选项。在这里,您可以指定图标到某些名称模式的分配。与指定模式(正则表达式)匹配的所有节点都将获得该图标。
示例
默认情况下包含一个示例分配:Pattern: java // Icon: java
。这意味着所有名称中包含java
的节点都将获得java
图标。
自定义服务图标
您可以通过将自定义图标放入插件的/assets/icons/
目录中来添加自定义图标。文件类型**必须为PNG
**,图标本身**必须为正方形**。为了能够使用该图标,其名称(不包括结尾)必须放在位于/assets/icons/
目录中的icon_index.json
文件中包含的数组中。
示例
如果icon_index.json
具有以下内容
["java", "star_trek"]
则假定文件java.png
和star_trek.png
存在于/assets/icons/
目录中。
跟踪钻取
服务依赖关系图插件允许您为每个绘制的节点指定一个后端 URL。为此,可以使用“跟踪钻取”选项。在这里,您可以指定一个后端 URL。一个打开和关闭的花括号{}
是所选节点的占位符。每个节点的详细信息视图中都会有一个箭头图标。此图标是到您的后端(在选项中指定)的链接。花括号{}
将被替换为所选节点。
示例
http://{}/my/awesome/path
当您选择customers-service
时,最终将变为http://customers-service/my/awesome/path
。
创建发布版
要创建发布版包,请确保已安装release-it
npm install --global release-it
要构建发布版包
release-it [--no-git.requireCleanWorkingDir]
发现错误?有问题?想要贡献?
随时打开一个问题。我们会照顾您并提供尽可能多的帮助。任何建议/贡献都将受到高度重视。
在 Grafana Cloud 上安装服务依赖关系图
在 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 工具从命令行安装服务依赖关系图
grafana-cli plugins install
插件将安装到您的 grafana 插件目录中;默认值为 /var/lib/grafana/plugins。有关 cli 工具的更多信息。
2. 将面板添加到仪表盘
已安装的面板会在 Grafana 主菜单的仪表盘部分立即可用,并且可以像 Grafana 中的任何其他核心面板一样添加。
要查看已安装面板的列表,请单击主菜单中的**插件**项。核心面板和已安装的面板都将显示。
更改日志
此项目的所有重大更改都将在此文件中记录。
v4.0.2
修复了图标路径中的错误
v4.0.1
SumTimings 现在按预期工作 响应时间健康状况现在显示在节点统计信息中 外部图标现在使用正确的路径
v4.0.0
将项目移植到 React。aggregationType 不再需要作为模板变量。现在可以选择数据的单位类型。传入/传出统计信息的表格现在可以排序。激活虚拟数据时,现在会自动填写显示虚拟数据所需的设置。现在可以为内部和外部服务自定义服务图标。