插件 〉服务依赖关系图


开发者
Novatec Consulting GmbH


注册以接收偶尔的产品新闻和更新



面板
社区

服务依赖关系图

  • 概览
  • 安装
  • 变更日志
  • 相关内容

Novatec 服务依赖关系图面板

Downloads License

Service Dependency Graph In Action

版本 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 ColumnTarget Component Column需要设置为相应字段的确切名称。

  • 数据可以包含多个值列。这些列必须使用面板的Data Mappings选项映射到特定属性。**示例**:假设数据表包含一列名为req_rate,其值表示当前时间窗口内相关连接的请求速率。为了正确地将这些值可视化为请求速率,Request Rate Column选项必须设置为req_rate - 列名。

示例

示例 1

如果满足前面描述的要求,则最小表格可以如下所示

apptarget_appreq_rate
service aservice b50
service aservice c75
service cservice d25

假设面板的设置如截图所示,则面板将如下可视化数据

Visualization of the minimal data table.

注意:重要的是要知道,只有在定义了至少一个请求速率列(传入或传出)时,才能生成连接。

示例 2

在本例中,我们通过另一列扩展了示例 1 的数据表,该列表示特定连接的所有请求响应时间的总和(例如,所有 HTTP 请求响应时间的总和)。

apptarget_appreq_rateresp_time
service aservice b504000
service aservice c7513650
service cservice d25750

现在,面板的Data Mappings选项Response Time Column设置为resp_time。这表示resp_time列中的值应作为连接的响应时间处理。默认情况下,此列中的值将被视为所有响应时间的总和——类似于 Prometheus 风格的指标。可以通过使用Handle Timings as Sums选项更改此行为。此表将产生以下可视化效果。

Visualization of a data table including request rate and response times.


服务图标

服务依赖关系图插件允许您在绘制的节点中显示您自己的符号。为此,可以使用“服务图标映射”选项。在这里,您可以指定图标到某些名称模式的分配。与指定模式(正则表达式)匹配的所有节点都将获得该图标。

Custom service icons in the graph.

示例

默认情况下包含一个示例分配:Pattern: java // Icon: java。这意味着所有名称中包含java的节点都将获得java图标。

自定义服务图标

您可以通过将自定义图标放入插件的/assets/icons/目录中来添加自定义图标。文件类型**必须为PNG**,图标本身**必须为正方形**。为了能够使用该图标,其名称(不包括结尾)必须放在位于/assets/icons/目录中的icon_index.json文件中包含的数组中。

示例

如果icon_index.json具有以下内容

["java", "star_trek"]

则假定文件java.pngstar_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 上安装服务依赖关系图

有关更多信息,请访问有关插件安装的文档。

更改日志

此项目的所有重大更改都将在此文件中记录。

v4.0.2

修复了图标路径中的错误

v4.0.1

SumTimings 现在按预期工作 响应时间健康状况现在显示在节点统计信息中 外部图标现在使用正确的路径

v4.0.0

将项目移植到 React。aggregationType 不再需要作为模板变量。现在可以选择数据的单位类型。传入/传出统计信息的表格现在可以排序。激活虚拟数据时,现在会自动填写显示虚拟数据所需的设置。现在可以为内部和外部服务自定义服务图标。