博睿数据APM平台荣获《金融电子化》2021年金融业新技术应用创新突出贡献奖

2022-08-05

近日,由《金融电子化》杂志社主办的“2021第十二届金融科技应用创新奖”评选活动揭晓获奖名单。博睿数据凭借智能应用性能监控(APM)平台荣获2021金融业技术应用创新突出贡献奖。

随着金融科技的深入发展,金融科技的技术应用也提到了新的战略高度。1月4日,中国人民银行印发《金融科技发展规划(2022-2025年)》(以下简称《规划》)。《规划》依据《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》制定,提出新时期金融科技发展指导意见,明确金融数字化转型的总体思路、发展目标、重点任务和实施保障。

《规划》中明确提出深化数字技术金融应用,健全安全与效率并重的科技成果应用体制机制,不断壮大开放创新、合作共赢的产业生态,打通科技成果转化“最后一公里”。

显然,对于金融业而言,未来深化数字技术金融应用将是重点工作之一,而最新出炉的“2021第十二届金融科技应用创新奖”评选活动也印证了这一趋势。

第十二届《金融电子化》金融科技应用创新奖评选旨在表彰2021年在金融科技创新和业务发展方面做出突出贡献的金融机构和科技企业。本次评选共有235家机构报送的496个项目参评,评审委员会围绕项目先进性,项目创新点,项目对推动机构提升服务能力的作用、经济或社会效益等维度进行评审。

此次博睿数据荣获2021金融金融业技术应用创新突出贡献奖不仅是金融业对于博睿数据APM产品的认可,也得益于博睿数据APM的产品实力与创新能力的在金融行业不断突破与积累。

目前,博睿数据已与工农中建等大行,招商银行、平安银行、光大银行,中信银行等股份制和城商农信银行,中信建投证券,兴业证券等头部券商建立了长期稳定的合作关系,为助力金融业技术应用创新提供技术支撑。

APM三大技术优势

伴随云原生和微服务的兴起,IT系统环境及软件应用变得越来越复杂。传统的监控手段一般仅针对某一组件进行监控。当用户已出现性能体验问题,传统监控工具仍可能显示各组件正常运行,无法定位故障域和故障点,导致业务与用户体验不佳。

而博睿数据则以业务交易和用户体验为出发点,融入人工智能技术,构建了跨越用户端、网络端、服务端和基础架构四个层面的智能APM产品。以业务和用户为统一视角来为客户实时提供统一的监控视角。实现从代码到用户的全链路监控、数据分析与故障定位。

博睿数据智能APM产品关键技术包括智能探针技术、大数据技术以及智能运维的技术:

01、博睿数据自研智能探针技术无需手动代码植入即可实现实时采集服务器应用程序中每一个代码的运行耗时数据,当客户的业务请求处理发生错误或者响应缓慢等问题时,帮助客户将性能问题精准聚焦至代码级别。

02、当数据采集工作完成后,需要对海量数据进行数据的存储和分析。对于企业级客户来说,大型APM产品后台数据存储量可达PB量级,单次分析请求数据集可达到上亿条,且对数据响应时延的要求极高,一般要求秒级响应。博睿数据自研的大数据技术实现PB级数据低成本、高可靠的存储与秒级响应分析。

03、博睿数据在APM技术中融入人工智能技术与智能运维思想。基于AI实现了智能异常监测与智能告警,大大降低了运维的复杂度,提升了问题追查的效率,实现开箱即用的AI产品能力。

此外,博睿数据APM产品可以对企业所有应用(网页、APP、小程序、服务器等)进行实时、全栈式(IT系统架构的体验层、业务层、服务层、进程层、系统层等)、全生命周期(开发、测试和运营)的监控和管理,可以提升用户每一次业务访问时的系统运行的可观测性。

运维人员可通过APM产品随时知悉IT系统是否发生响应缓慢、系统宕机等问题,以及何时发生的,还可在系统发生性能问题时自动定位问题代码,帮助运维人员快速排障。

作为一家在APM领域深耕十余年的科技企业,多年来博睿数据在技术、市场以及产业化等方面有着深厚的积累。公司的产品线已经覆盖APM、智能运维和大数据等多个方向,2021年入选Gartner《2021年中国ICT技术成熟度曲线报告》AIOps Sample Vendor(代表厂商);并且在APM领域,首家通过了代表软件能力成熟度最高等级的CMMI5级评估认证;同时在产品适配方面,博睿数据也在全力布局适配主流的国产化整机、CPU、操作系统、中间件、数据库厂商等。

赋能金融科技发展

对所有面临数字化转型的企业而言,IT运维重要性毋庸置疑,对于金融科技企业尤甚。尤其是近几年在金融科技的推动下,平台化、数字化、智能化成为金融行业的关键词。因此,对于大部分金融行业而言,能支撑数字化业务的平稳运行,从传统的运维走向运营,从成本部门变成效益部门,是所有企业对于IT运维的期望。

以博睿数据在金融行业内某客户为例,伴随着金融科技的蓬勃发展,金融服务逐渐将重心转向线上渠道。随着线上业务比重的提高,内部相应的IT系统也愈发庞大和复杂。

该客户过去一直采用的传统运维工具,缺乏以用户为中心的统一监控视角、缺失端到端的全覆盖监控能力,难以满足客户对IT运维效率的要求。

博睿数据的智能APM产品替换了传统运维工具,帮助客户建立起以业务健康度为核心的统一监控视角。服务2年多来,该客户核心业务错误率大幅下降。

同时,APM产品可以帮助客户构建IT系统的全面可观测性,深入代码层级剖析问题,帮助客户优化多处核心业务逻辑,系统运行平均内存使用率下降,提升了其系统运行效率。还帮助该客户采集从前端网页、APP,到后端基础设施、服务调用链路、应用性能等多层面的数据,进行统一平台可视化展现和智能分析,统一了运维人员和开发人员的沟通视角,使得双方可跨部门高效协同工作,节省了IT系统排障时间,降低了IT运维成本,提升了运维效率。

未来,博睿数据也将继续打磨技术实力,助力更多企业进行应用性能的监控,提升用户满意度和整体竞争力,助力企业业务发展,致力于让每一家企业都能享受IT运营数据的价值。

文章标签

应用性能监控 金融行业

相关文章

FreeMarker template error (DEBUG mode; use RETHROW in production!): The string doesn't match the expected date/time/date-time format. The string to parse was: "2024年3月5日". The expected format was: "MMM d, y". The nested reason given follows: Unparseable date: "2024年3月5日" ---- FTL stack trace ("~" means nesting-related): - Failed at: #if "2024年3月5日"?date lt item.createTi... [in template "themes/halo_quickstarter/post_newsDetail.ftl" at line 106, column 25] ---- Java stack trace (for programmers): ---- freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...] at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse(BuiltInsForMultipleTypes.java:220) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDateModel(BuiltInsForMultipleTypes.java:190) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.getAsDate(BuiltInsForMultipleTypes.java:197) at freemarker.core.EvalUtil.modelToDate(EvalUtil.java:86) at freemarker.core.EvalUtil.compare(EvalUtil.java:270) at freemarker.core.EvalUtil.compare(EvalUtil.java:115) at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:78) at freemarker.core.IfBlock.accept(IfBlock.java:49) at freemarker.core.Environment.visit(Environment.java:370) at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:321) at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:271) at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:244) at freemarker.core.Environment.visitIteratorBlock(Environment.java:644) at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108) at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94) at freemarker.core.Environment.visit(Environment.java:334) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.visit(Environment.java:340) at freemarker.core.Environment.process(Environment.java:313) at freemarker.template.Template.process(Template.java:383) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:391) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:304) at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:255) at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:179) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1401) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1145) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1084) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:497) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:584) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799) at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631) at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:230) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.UserInfoFilter.doFilter(UserInfoFilter.java:37) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.MyAbstractTicketValidationFilter.doFilter(MyAbstractTicketValidationFilter.java:215) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.cas.MyAuthenticationNoLoginFilter.doFilter(MyAuthenticationNoLoginFilter.java:57) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.security.filter.ContentFilter.doAuthenticate(ContentFilter.java:69) at run.halo.app.security.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:229) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.filter.CorsFilter.doFilter(CorsFilter.java:53) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at run.halo.app.filter.LogFilter.doFilterInternal(LogFilter.java:40) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:516) at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487) at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105) at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: freemarker.core.UnparsableValueException: Unparseable date: "2024年3月5日" at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:51) at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:33) at freemarker.core.BuiltInsForMultipleTypes$dateBI$DateParser.parse(BuiltInsForMultipleTypes.java:213) ... 118 more Caused by: java.text.ParseException: Unparseable date: "2024年3月5日" at java.base/java.text.DateFormat.parse(DateFormat.java:395) at freemarker.core.JavaTemplateDateFormat.parse(JavaTemplateDateFormat.java:49) ... 120 more