目录
- 监控
- 工具
- 仪表板
- shell
- RESTful API
- Java 客户端
监控
数据流监控架构有助于提供对服务器基础架构以及部署的流和任务管道的运行状况和性能至关重要的应用程序指标。
围绕 Micrometer 库设计的 Data Flow 监控支持一些最流行的监控系统,例如Prometheus、Wavefront和InfluxDB。
Wavefront是一个高性能流分析平台,支持 3D 可观察性(指标、直方图、轨迹和跨度)。它可以扩展到非常高的数据摄取率和查询负载,同时还可以从整个应用程序堆栈中的许多服务和源收集数据。
Prometheus是一个流行的基于拉取的时间序列数据库,它通过预先配置的端点从目标应用程序中提取指标,并提供一种查询语言来实时选择和聚合时间序列数据。
数据流架构使用Prometheus RSocket 代理long-lived来提供对(流)和short-lived(任务)应用程序的统一支持。
InfluxDB是一个流行的基于推送的开源时间序列数据库。它支持下采样,自动过期和删除不需要的数据,以及备份和恢复。数据分析是通过类似 SQL 的查询语言完成的。
数据流允许您以声明方式选择和配置要使用的监控系统。为此,您可以应用 Spring Boot指标配置来启用和配置数据流监控支持。通常,您将以下配置添加到数据流和 Skipper 服务器配置中:
management.metrics.export.<your-meter-registry>.enabled=true
management.metrics.export.<your-meter-registry>.<meter-specific-properties>=...
- 将 替换<your-meter-registry>为influx、wavefront或prometheus。(注意:如果您使用 Prometheus,请同时启用 Prometheus Rsocket 代理:)management.metrics.export.prometheus.rsocket.enabled=true。
- 使用为Wavefront、InfluxDB和Prometheus和RSocket Proxy提供的 Spring Boot 和 Micrometer 特定配置。
默认情况下,Micrometer 配置被重复用于服务器基础设施和数据管道监控。
为了帮助您入门,Data Flow 提供了您可以自定义的Grafana和Wavefront仪表板。
您还可以选择Wavefront 数据流 SaaS 磁贴。
有关如何设置监控基础架构的详细信息,请参阅以下功能指南:
- 服务器监控功能指南
- 流监控功能指南
- 任务监控功能指南
下图显示了启用了监控和 Grafana 按钮的数据流:
下图显示了 Grafana 仪表板中的 Stream applications 视图:
下图显示了 Grafana 仪表板中的 Tasks & Batch 应用程序视图:
下图显示了 Wavefront Stream 应用程序仪表板:
接下来,请访问服务器监控功能指南、流监控功能指南和任务监控功能指南,以获取有关如何设置数据流监控基础架构的更多信息。
工具
仪表板和Shell是与 Spring Cloud Data Flow 交互的主要方式。您还可以通过使用 curl 或编写使用 Java 客户端库的应用程序来使用 RESTful API,这反过来又会调用 RESTful API。本节介绍仪表板和外壳的功能。
仪表板
Spring Cloud Data Flow 提供了一个基于浏览器的 GUI,称为仪表板,它将 Data Flow 中的功能组织在左侧的几个选项卡中:
- 应用程序:列出所有已注册的应用程序并提供注册新应用程序或取消注册现有应用程序的控件。
- 运行时:提供所有正在运行的应用程序的列表。
- Streams:允许您列出、设计、创建、部署和销毁流定义。
- 任务:允许您列出、创建、启动、安排和销毁任务定义。
- Jobs:让您查看详细的 Spring Batch 作业历史记录并重新启动作业。
- 审计记录:允许您访问记录的审计事件。
- 关于:提供用于支持电话的版本信息以及文档链接和 Data Flow Shell 下载。
下图显示了“关于”选项卡(以及仪表板 UI 的一般结构);
shell
您可以使用 shell 作为仪表板的替代品来与数据流交互。shell 具有执行前面在仪表板部分中列出的大多数相同任务的命令,审计记录列表是一个例外。
它支持命令的 tab 补全,也支持 Stream 和 Batch DSL 定义。有用于将 shell 连接到数据流服务器的命令行选项。
您可以通过键入来获取命令列表,help然后通过键入为每个单独的命令提供帮助help <command> 。下图显示了部分命令列表:
RESTful API
Data Flow 的 RESTful API 尝试在使用 HTTP 动词时尽可能地遵守标准 HTTP 和 REST 约定。例如,GET用于检索资源并POST用于创建新资源。 仪表板和 UI 都是此 API 的使用者。
数据流使用超媒体,资源在其响应中包含指向其他资源的链接。响应在资源到资源语言的超文本应用程序中 - HAL。_links您可以在键下方找到链接。API 的用户不应自己创建 URI。相反,他们应该使用链接进行导航。
Java 客户端
Java 客户端的功能指南包含有关如何以编程方式与数据流交互的更多信息。