文章
· 六月 11, 2022 阅读大约需 2 分钟

InterSystems 最佳实践系列文章--系统性能组件SystemPerformance (原 pButtons) API和UI示例

在检查我们的^pButtons(在IRIS中改名为^SystemPerformance)性能监控工具的文档时,一位客户告诉我。"我理解所有内容,但我希望它能更简单......更容易定义配置文件,管理它们等等"。

在这次会议之后,我认为尝试为其提供一些更简单的人机界面是一个不错的试验。

这方面的第一步是在现有的pButtons例程上包裹一个基于类的API。

我还能够添加一些更多的 "功能",比如显示当前正在运行的配置文件,它们剩余的运行时间,以前运行的进程等等。

下一步是在这个API的基础上添加一个REST API类。

有了这个工件(pButtons REST API),人们就可以在上面建立一个比较时髦的用户界面。

举个🌰: -

我在这里分享这个方法的几个步骤:

两个类是 "Basic "API 

以及REST API(包括一些单元测试类来测试这些)。

一个用于REST API的Swagger JSON。为了构建这个,我使用了当时(2017年)InterSystems IRIS中尚未发布的REST管理功能。在InterSystems IRIS提供的基本Swagger JSON的基础上,我添加了更多的信息。

以及一个更加简单的angular UI界面 (基于 http://websystique.com/angularjs/angularjs-crud-application-using-ngresource/)

几个重点提示:

  • 大多数的 "Basic "API方法都使用有文档的和官方支持的pButtons/SystemPerformance rountine的入口点。但有些方法是访问由pButtons工具管理的内部结构。这些方法没有被记录下来,也不被支持,这些方法在升级后可能会停止工作而不被通知。
  • 这段代码不应该作为使用InterSystems IRIS构建基于REST的Angular应用程序的 "最佳实践 "范例。UI部分只是作为一个例子/"预告 "和示例的起点,[例如,它并不完整--"常规部分"(例如,日志文件夹位置管理的占位符)没有实现;刷新内容并不完全工作,以及其他一些 "已知问题..."]
  • 这段代码最早是在很久之前写的--所以:
    • (a) 我重新检查/测试/修改确保能在IRIS上运行 (包括改些名字等等).
    • (b) REST API并没有使用需求/设计优先的方法--我最初确实玩过(当时)IRIS-beta对生成Swagger的支持,现在用它把这个变成了需求/设计优先的方法.
    • (c) 这个可能没有用到最新的特性.
    • (d) 我现在还增加了对在Docker容器中运行的支持(有相关的Docker文件等)。
    • (e)  我还增加了能作为ZPM包安装的支持。

 

应用和源代码:https://openexchange.intersystems.com/package/sys-perf-restapi

讨论 (0)1
登录或注册以继续