`
JerryWang_SAP
  • 浏览: 1003298 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论
阅读更多

Jerry每次在工作场合中同Prometheus(普罗米修斯)打交道时,都会“出戏”,因为这个单词给我的第一印象,并不是用go语言实现的微服务监控利器,而是名导雷德利·斯科特(Ridley Scott)拍摄的科幻大片。

回到现实中来,Prometheus是由SoundCloud开发的监控系统的开源版本,logo是一个燃烧的红色火炬,这应该是有情怀的工程师们向泰坦巨神的后代,偷偷盗走天火,传给人类的普罗米修斯表示的敬意。

2016年,由Google发起的Linux基金会(Cloud Native Computing Foundation,CNCF)将Prometheus纳入其第二大开源项目,在开源社区十分活跃,SAP Kyma也使用了Prometheus作为其监控组件。

Prometheus采用Pull方式获取监控信息,并提供了多维度的数据模型和灵活的数据查询和聚合接口。

那么Prometheus是云原生应用和微服务架构的专属工具么?当然不是。下面,Jerry就用SAP CRM On-Premises为例,介绍ABAP技术栈如何借助Prometheus来实现自定义的日志监控功能。

SAP CRM 有个Fiori应用叫做My Opportunity,是SAP成都研究院Jerry所在的CRM Fiori团队开发维护的。假设我们有这样一个需求,需要监控在指定时间段内,该应用收到的读请求。

我们在Opportunity OData服务的实现里找到了一个BAdI增强,CRM_OPPORTUNITY_ODATA_BD:

所有读请求都会经过这个BAdI,所以在里面实现我们自定义的日志逻辑很合适。

创建一个自定义数据库表,用于记录读请求的明细,包括请求者的用户名,请求日期和请求时间。

BAdI实现的逻辑很简单,依次把字段记录下来,插入数据库表:

接着是在本地安装Prometheus服务器,我安装的是Windows版本,需要先编辑prometheus.yml配置文件,然后启动。

下图是配置文件最核心的部分,定义了Prometheus连接SAP CRM抓取监控数据的规则。第24行和25行维护了SAP CRM系统的用户名和密码,第26行/sap/zcm是CRM上为Prometheus暴露出来的数据采集接口的路径,第28行指定Prometheus服务器每隔2秒钟采集一次数据。第33行定义了CRM ABAP系统的主机名和端口号。有了这些配置信息,Prometheus可以同ABAP Netweaver服务器建立连接并进行周期性的数据抓取。

最后一步,在/sap/zcm这个路径上把我们自定义数据库表里的数据暴露出来:

一个SELECT COUNT(*)搞定:

至此万事俱备了。回到Fiori 应用界面,随便点击几个Opportunity,触发读请求,回到自定义的数据库表,发现已经有一些日志记录在内了。

启动Prometheus服务器,马上就以2秒的时间间隔,往ABAP服务器发起数据查询请求:

localhost:9090打开Prometheus的控制台,能看到从SAP CRM系统实时采集到的读请求个数:

切换到Graph面板,能看到指定时间间隔内的读请求变化趋势,比如下图的横轴是时间点,纵轴是读请求个数,图上的折线表达了过去五分钟之内,读请求数量呈线性增长的趋势。

Prometheus提供的dashboard,提供了各种维度的数据查询和聚合功能。如果对其基本的数据展现界面不满意,可以选择另一款效果更好的开源数据可视化工具Grafana. 下图是Grafana的dashboard:

希望Jerry这个例子可以给大家一些启发:ABAP照样可以借助现代开源工具来实现一些传统ABAP工具难以实现的功能。在Jerry看来,Prometheus完全可以同ABAP的单元测试框架一起协同工作,提高基于ABAP技术栈的应用开发的持续集成和持续交付能力。

感谢阅读。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

0
2
分享到:
评论

相关推荐

    ABAP资料ABAP资料ABAP资料

    ABAP资料ABAP资料ABAP资料ABAP资料ABAP资料

    ABAP 调用ABAP PROXY

    在SAP系统中,ABAP调用ABAP Proxy是一种常见的技术操作,用于在不同系统间或者同一系统内的组件之间实现通信。ABAP Proxy是SAP提供的一个强大的接口技术,它允许开发者创建安全、高效的远程调用机制。接下来,我们将...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    《SAP ABAP 4.7开发指南》 在企业级信息技术领域,SAP系统扮演着至关重要的角色,尤其在企业资源规划(ERP)方面。SAP ABAP(Advanced Business Application Programming)是SAP系统中的一种编程语言,用于开发、...

    ABAP751 ABAP - Keyword Documentation

    ABAP - Keyword Documentation This documentation describes the syntax and meaning of the keywords of the ABAP language and its object-oriented part ABAP Objects. Alongside this, language frameworks ...

    abap tips abap tips

    abap tips abap tips abap tips abap tips abap tips

    abap学习资料abap

    作为ABAP的学习资料,"ABAP学习资料abap"包含了针对初学者和进阶者的全面教程,旨在帮助用户在三个月内掌握ABAP的基础到高级知识。 文档“ABAP三月通.doc”很可能包含以下关键知识点: 1. **ABAP概述**:介绍ABAP...

    ABAP TREE ABAP TREE ABAP TREE

    在ABAP编程中,"ABAP TREE"是一种数据结构,用于存储和处理层次化或树状的数据。在本文中,我们将深入探讨ABAP中的树结构,包括它的定义、使用场景、如何创建以及相关的操作。 首先,理解ABAP TREE的基础概念至关...

    abap逻辑数据库ABAP数据库操作

    例如,当你有一个内表(itable),并且想要对表中的每一条记录执行相同的操作时,可以使用forall entries语句。 最后,还涉及到其他高级查询技术,如检查空值(null),指定查询条件(使用in, like, between等操作...

    ABAP帮助文档ABAP帮助文档

    4. WHILE...DO...ENDWHILE:循环结构,当满足条件时持续执行循环体。 5. CASE...ENDCASE:多条件分支结构,可以根据不同情况执行相应代码。 三、ABAP动态编程 1. DATA定义:动态定义变量,允许在运行时确定数据类型...

    内含ABAP入门资源(11天学会ABAP)以级中级ABAP篇,高级ABAP资料

    ABAP,全称为Advanced Business Application Programming,是SAP公司开发的一种高级编程语言,主要用于构建企业级的业务应用程序。本资源包包含从入门到高级的ABAP学习材料,旨在帮助学习者在11天内掌握ABAP的基础,...

    ABAP OLE颜色代码

    ABAP OLE 颜色代码 ABAP OLE 颜色代码是指在 ABAP 编程语言中使用的颜色代码。这些代码用于在用户界面中显示不同的颜色,例如背景颜色、文字颜色、按钮颜色等。 在 ABAP 中,颜色代码通常以 šestnaestkovo ...

    sap abap query高级功能

    SAP ABAP Query 是 SAP 系统中一种用于创建自定义报表的强大工具,尤其适合那些对 SQL 不太熟悉或者没有数据库直接访问权限的用户。它提供了丰富的功能,使得开发人员可以构建复杂的数据查询,而无需编写大量的 ABAP...

    abap xlsx2 demo 程序

    在ABAP(Advanced Business Application Programming)环境中,处理Excel文件(通常以.xlsx格式存在)是常见的需求,例如数据导入导出、报表生成等。"abap xlsx2 demo 程序"是一个示例项目,旨在展示如何在SAP系统中...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    ABAP(Advanced Business Application Programming)是SAP公司推出的一种编程语言,主要用于开发SAP系统中的业务应用程序。SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得...

    abap 函数大全 abap function

    ABAP(Advanced Business Application Programming)是SAP公司开发的一种编程语言,主要用于开发SAP系统中的业务应用程序。在SAP环境中,ABAP函数模块是ABAP编程的重要组成部分,它们提供了预定义的功能,允许开发者...

    ABAP url下载文件

    根据提供的文件信息,本文将详细解释 ABAP 中通过 URL 下载文件的相关知识点,包括 ABAP 程序中实现此功能的基本步骤和技术要点。 ### ABAP URL 文件下载概述 ABAP(Advanced Business Application Programming)...

    SAP ABAP 电子书

    SAP ABAP(Advanced Business Application Programming)是SAP公司推出的一种高级业务应用编程语言,用于开发在SAP R/3和SAP NetWeaver平台上的应用程序。这些电子书提供了全面的资源,帮助学习者深入理解并掌握SAP ...

    abap7.4 新特性

    ### ABAP 7.4 新特性详解 #### ABAP 7.40 是什么? ABAP 7.40 是 SAP NetWeaver 7.40 的一部分,它继承了 AS ABAP 7.31 (又称为 AS ABAP 7.03),并在此基础上进行了增强。值得注意的是,尽管版本号上有一定的跳跃...

    sap_abap_ole文档

    ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。ABAP_OLE相关文档。...

    abap-ALV.rar_ABAP系统ALV_abap_abap开发alv

    标题“abap-ALV.rar_ABAP系统ALV_abap_abap开发alv”暗示我们将深入探讨ABAP ALV的使用,特别是在ABAP系统中的应用以及如何进行开发。 描述中提到“ABAP ALV总结,ALV格式,REUSE_ALV_GRID_DISPLAY_LVC函数使用”,...

Global site tag (gtag.js) - Google Analytics