免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 1358|回复: 3
收起左侧

使用REST API监测FME Server作业活动

[复制链接]

665

主题

2万

铜板

34

好友

传奇会员

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
20649

精华勋章爱心勋章地信专家组贡献勋章冰雪节勋章

发表于 2021-5-18 17:14 | 显示全部楼层 |阅读模式

点击下方阅读原文,下载文内模板。

提取码:2021

在FMEServer 2021.0+中,可以统计工作任务信息以显示任务性能。

这些指标可通过FME Server管理页面在“Jobs/Completed”,“Workspaces”,“Automations”和“Schedules”页面上查看,也可以通过REST API访问。监视FME Server的活动使您能够做出更明智的决策,以了解如何响应不断增长的需求。

1、工作任务统计概述

1.1 每个Job可用的统计信息

统计内容

说明

经过的时间

FME工作区的总处理时间(结束时间-开始时间)

CPU时间

FME工作区的总CPU时间(用户时间+系统时间)

注意:CPU时间是在CPU上进行工作所花费的时间(而不是等待输入,磁盘,网络等)。

CPU时间可以进一步细分为用户(执行工作的FME)和系统(代表执行工作的OS)。

CPU百分比

记录为CPU时间(CPU时间/经过时间)的总处理时间的百分比。

峰值内存使用率

FME工作区在处理时所需的最大内存量。


带有统计信息列的工作任务页面

以上信息可以通过FME Server的REST API获取,其中获取所有已完成任务信息使用[GET]/fmerest/v3/transformations/jobs/completed,获取某个具体任务信息使用[GET]/fmerest/v3/transformations/jobs/id/< jobid >。

1.2 Workspaces,Schedule ,Automation的可用统计信息

统计内容

说明

总运行 次数

工作空间已运行的次数

平均经过时间

所有运行的平均经过时间

平均CPU时间

所有调用的平均CPU时间。

平均CPU百分比

所有调用中的平均CPU百分比

平均峰值内存使用率

FME工作区在处理时所需的平均内存量。这是以上“峰值内存使用量”的平均值。


带有统计信息列的Workspaces页面

带有统计信息列的计划页面

自动化“运行工作区”操作

以上内容可通过RESTAPI获取,其中:

获取所有存储区信息使用:[GET] /repositories/<repository >/items

获取指定工作空间:[GET] /fmeserver/v3/repositories/<repository>/items/<item/workspace>

获取所有计划任务:[GET] /schedules

获取指定计划任务:[GET] /schedules/< category >/< name >

注意:自动化模块当前无法实现通过REST API检索此信息。如果您想重置统计信息,只要您停止并重新启动自动化,统计信息就会自动重置。

2、应用场景

2.1 动态引擎

与为每个引擎支付固定许可费用不同,动态引擎以积分运行,使您可以选择以全新的方式购买额外的FME Server处理能力。一积分等于一小时的引擎CPU时间。为了了解何时将作业路由到动态引擎是合适的,管理员需要充分了解工作区使用的平均CPU时间。关于动态引擎请查看https://community.safe.com/s/art ... ith-dynamic-engines,以了解有关此功能的更多信息。

2.2 队列控制

FME服务器队列已在2021.0+中进行了修改,通过了解这些工作模板的执行情况,使用户能够配置高级作业列队规则,从而使工作区能够根据平均作业统计数据的执行情况直接定向到引擎。

2.3 日程安排

通过了解按计划配置的工作区平均需要运行多长时间,这可以帮助FME Server用户设置计划以帮助避免较长的队列等待时间。

2.4 管理硬件

您的FMEServer体系结构可能包括分布在具有不同硬件规格的主机上的引擎。通过了解不同工作空间的峰值内存使用情况,您可以相应地修改模板以提高性能,甚至可以研究新计算资源的自动扩展。

2.5 性能调优

通过了解您的引擎何时最忙或最不忙以及花了多少时间执行某些任务,此信息可能有助于创建和修改工作流以更有效地利用引擎。

2.6 自动缩放引擎

为自动扩展奠定基础,可以优化引擎的部署方式。

3、操作步骤说明

以下步骤中使用了一个已经完成的模板,将该模板发布到FME Server以生成仪表板。仪表板将使用第三方工具Plotly.js 生成统计图,以显示每个作业的峰值内存使用情况,相关信息是从Jobs/Completed中检索到的信息。如果您想自己搭建模板,请查看示例模板中的提示信息。

注意:提供的附件示例工作空间在“FMEServerAPI_JobStatistics_Dashboards_Workspaces.zip”压缩包中,需要FME 2021.0或更高版本才能成功运行。

3.1 打开启动工作区

在FMEWorkbench中,打开压缩包“FMEServerAPI_JobStatistics_Dashboards_Workspaces.zip”中解压后的模板PeakMemUsage_BoxPlot.fmw。

3.2 调试模板

浏览、调试模板,确保了解每个步骤在做什么。将AUTH_NAMED_CONNECTION发布的参数值设置为FME Server Web连接。注意:要在FME Desktop上运行工作区,还需要将FME服务器参数FME_SERVER_WEB_URL的值设置为需要运行模板的FME SERVER地址,例如将http(s):// <主机名>:<端口>;输出结果保存在FME_SHARED_RESOURCE_DASHBOARD中。

3.3 发布模板到FME Server

将工作空间发布到FMEServer中指定的资料库,如仪表板存储库(您可能需要请管理员更新您的用户以对此存储库具有写权限)。在发布模板的时候如果尚未在FME Server中上传FME Server Web连接,需要将FME Server Web连接一并上传。

将工作空间注册到作业提交者和数据流服务。这样,工作空间可以有选择地在运行中运行,并将仪表板直接流回请求信息的用户。

3.4 运行工作区

发布成功后,在FMEServer中运行模板,确保模板正常运行。

3.5 查看仪表板

模板运行成功后,转到Jobs>Dashboards,然后从名称中选择PeakMemoryUsage。这是“PeakMemUsage_BoxPlot.fmw”模板运行后输出的HTML文件的名称,可以在FME Workbench打开模板进行修改。

用于生成的统计图的第三方工具具有交互式界面功能。可以突出显示要放大的部分或悬停在一个框/点上,以获取有关作业统计信息的更多详细信息,以查看相关的统计结果。

3.6 配置计划任务

为了使仪表板保持最新状态并显示最新统计信息,工作空间必须重复运行。选择“Schedules”>“Bulid Schedules”。指定您要运行工作空间的时间间隔。

4、仪表板示例展示

本文中的附件是使用HTMLReportGenerator转换器的一系列简单的作业统计报告的模板。模板需要在FME Server上进行设置,请针对每个模板按照上述操作步骤说明进行操作。

4.1 每个工作空间的平均CPU时间、CPU%和峰值内存使用率

使用AverageStatistics_Basic.fmw模板获取Jobs / completed 中覆盖每个新统计信息生成条形图。指定要返回的工作空间数和日期范围(例如,最多7天前)。此外,为单个存储库过滤结果。

从AverageStatistics_Basic.fmw生成的报告

4.2 每个存储库(repositories)的作业统计信息概述

使用JobStatisticsPerRepository_Chart_Table.fmw模板获取/ repositories / <repositories >/ items显示所有新作业统计信息。为每个存储库(repositories)创建了一个报告,并用一个选项卡将其分开。每个报告均包含一个条形图,显示每个工作空间的平均CPU与经过时间,并且在表格下方列出了CPU百分比和峰值内存使用情况,以及基于此信息运行的作业数量。可以按存储库名称过滤。统计结果涵盖自上次重置统计信息之后的内容信息。

从JobStatisticsPerRepository_Chart_Table.fmw生成的报告

4.3 每个用户的工作区状态

作为用户,您可能想对自己拥有的所有Job进行检查,或者作为管理员,您想查看每个FME Server用户的活跃程度。使用WorkspacePerUser_BarChart.fmw获取/ jobs / completed中的任务信息来创建一份报告,该报告包含属于用户的所有工作空间以及已运行了多少工作空间,并按作业状态进行了排序。

从WorkspacePerUser_BarChart.fmw生成的报告

5、FMEServer REST API在FME Workbench中的使用介绍

API是一种可让我们与应用程序对话的介质。如果您从未使用过API,建议您阅读教程系列

https://community.safe.com/s/article/getting-started-with-apis-1”。  

5.1 HTTPCaller

在FMEWorkbench中, 使用任何API时可以使用HTTPCaller转换器。在此转换器中,您将配置 请求的类型、headers或Query string parameters和身份验证等信息,以及一个可以指定上传正文的选项。请查阅FME Server REST API文档,文档中包括每个API所需配置的详细信息。

根据FME Server Rest API配置HTTPCaller

5.2 JSON转换器

大多数FMEServer REST API调用均以JSON形式返回其响应。因此,要使用FME进行作业信息的统计,必须首先解析JSON字符串并将其分解为属性。该JSONFragmenter,JSONFlattener 和JSONExtractor 可用于执行此操作。

将FME Server Rest API请求内容解析为属性

5.3 HTMLReportGenerator

要在FME Server中使用仪表板,必须将结果写入HTML。该HTMLReportGenerator 可以帮助您快速创建HTML基本图形。对于更复杂的仪表板,您必须创建自己的自定义HTML。有在线HTML预览工具可用于帮助您将它们组合在一起。

FMEWorkbench中的HTMLReportGenerator和HTML输出

5.4 API分页

大多数API在单个请求中可以返回的条目数最多,因此,要检索所有结果就可以分页数据。通常,可以通过在请求中设置两个附加查询字符串(偏移量和限制)来完成此操作。基于偏移的分页允许您设置要检索结果之前要跳过的记录数。例如,当Offset = 0和Limit = 1000时,请求结果将保留前1000个数据内容;当Offset = 1000时,请求结果实质上返回第二页,第二组1000个数据内容,依此类推。

在FME中,您可以采用两种不同的方法来设置分页。如果知道页面的总数,则可以使用Cloner转换器为所需的每个偏移量创建功能,然后将其嵌入HTTPCaller。或者,创建一个自定义转换器,以利用循环功能在每次请求后不断增加偏移量。

请查看APIPagination.fmw模板中,以获取带有GET / fmerest / v3 / transformations / jobs / completed端点的这两种方法的示例。如果您的FME服务器尚未达到1000个作业,请尝试降低限制以查看此分页的实际效果。


点击下方链接下载文内模板。

https://pan.baidu.com/s/1-NAR2oZalsoN5HnqBM6qBg#list/path=%2F

提取码:2021

本文转载来自CSDN作者:fmechina   版权归作者所有

原文链接:https://blog.csdn.net/fmechina/article/details/116233737?spm=1001.2014.3001.5501

0

主题

357

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
27
发表于 2021-5-18 21:58 | 显示全部楼层
厉害,感谢分享,加油
回复 支持 反对

使用道具 举报

0

主题

247

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
12
发表于 2021-5-18 22:31 | 显示全部楼层
厉害厉害 谢谢风向

回复 支持 反对

使用道具 举报

0

主题

5148

铜板

1

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2100
发表于 2022-7-3 16:36 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表