开源 apm_使用开源APM软件:InspectIT

2023-05-16

开源 apm

在当今时代,软件系统不断变得越来越复杂。 同时,客户对响应时间和可用性的期望比以往更高。 如您所知,性能不佳的服务可能会将客户吸引到竞争对手的产品中。

因此,系统故障和性能不佳通常会对公司的声誉和经济成功产生重大的负面影响。 通过提供方法和工具以确保高质量的服务, APM (应用程序性能管理)的学科得以拯救。 APM工具提供了监视软件系统的运行状况,检测新出现的性能异常并对其做出React的方法,并允许诊断性能问题的根本原因。 提供了一套商业化的APM工具(AppDynamics,DynaTrace,NewRelic等),它们的功能和成熟度范围很广。 但是,在某些情况下,由于许可证成本,供应商锁定或其他可能对采用开放源代码策略的公司产生负面影响的原因,商用工具可能不适合。

InspectIT是APM的成熟的开源替代方案。 该工具提供了管理系统性能所需的所有核心功能。 特别是,inspectIT允许您监视系统的运行状况,在出现性能问题时通知您,并为您提供一种用于问题诊断的复杂方法。

InspectIT一目了然

下图显示了该工具的高级概述。

inspectIT背后的体系结构充当您可以建立和扩展的平台,或者您可以使提供的功能适应您的需求。 您可以将其分为三种主要类型的组件:代理,CMR(中央测量存储库)和用户界面。

代理商

代理已连接到系统,您应该对其进行监视或分析,并负责收集数据。 您可以在此处收集基础架构的统计信息(例如,CPU利用率,已用内存等)以及详细的运行时数据。 例如,在Java应用程序中,这些可能是执行跟踪,方法调用的持续时间,JMX Bean或已执行SQL语句。

InspectIT为Java提供了一个全面的代理,该代理采用字节码工具来收集测量数据。

除了Java代理外,开发人员还创建了多个代理来支持更多平台和编程语言。 例如,他们已经为.NET,Android和Node.js制作了实验代理。 他们还正在开发一种浏览器代理,该代理能够监视最终用户的体验。

CMR

inspectIT CMR(中央度量存储库)是接收代理收集的数据的中央组件。 它管理数据并提供查询接口。 除了数据管理之外,CMR还负责指导代理他们应该收集哪些数据。

CMR区分两种类型的数据:长期数据(CPU利用率,请求响应时间,运行线程等)和详细数据(执行跟踪,方法调用层次结构等)。 详细数据存储在内存中的环形缓冲区中 ,inspectorIT丰富的客户端可以对其进行分析。 长期数据存储在时间序列数据库中 ,该数据库是基于Web的仪表板的基础。

用户界面

由于监视系统健康和性能问题诊断是针对不同目标用户和不同需求的两个不同问题,因此inspectIT提供了两个相应的用户界面。

您可以使用基于Grafana的Web-UI来一目了然地查看系统当前的运行状况。 您可以使用富客户端对收集的详细数据进行进一步分析。 以下案例历史记录进一步探讨了这些用户界面。

案例故事

如果有效使用,那么inspectIT可以改善并确保系统的高质量,从而对最终用户的体验产生积极影响。

为此,我建立了一个虚拟应用程序并附加了inspectIT代理。 使用的应用程序基于Red Hat的开源JBoss展示应用程序TicketMonster ,在此代表电子商务Web应用程序。 为了展示inspectIT的功能,我集成了性能瓶颈来模拟问题。

使用inspectIT的可定制的基于Web的仪表板,您可以从业务和技术角度查看当前系统状态的概述。 特别是,它可以显示诸如CPU利用率和内存消耗之类的纯技术指标,并且可以将数据与指定的业务环境相关联。

在典型的用例中,系统不是全天候手动监控的,但是希望在出现问题(例如服务器故障或性能下降)时立即通知操作员。 为此,您可以定义触发规则的警报规则,例如在违反规则的情况下发送警报电子邮件。

其中一个示例是一条规则,当请求的响应时间超过定义的阈值时,该警报就会发出警报。

在下一步中,您将使用inspectIT富客户端来分析收集的数据以发现问题的根本原因。 使用包含在收到的警报电子邮件中的警报ID,您可以访问仪表板。 通过它,您可以:

  • 显示所有违反相应警报规则的请求
  • 研究每个请求的执行跟踪,并检查调用了哪些方法以及执行了多长时间
  • 查看此请求导致的已执行SQL语句和异常
  • 通过数据浏览器请求独立的统计信息(例如,所有SQL语句,方法定时等的汇总)

在默认配置中,仅servlet调用和SQL语句被捕获并显示在调用层次结构中。 因此,您无法确切看到丢失的时间。

为解决此问题,请添加其他检测点以收集更多数据。 去做这个:

  • 创建一个新的检测配置文件,您可以在其中定义自定义类,然后应对其进行监视
  • 您可以将这些配置文件分组到环境中,这将允许您在不同的代理上分配一组不同的配置文件

保存配置文件或环境后,受影响的类的字节码将与inspectIT代理修改的字节码进行即时交换。   一旦发生这种情况,将立即收集新指定方法的运行时数据。

如果您现在查看一个新捕获的请求,那么数据将更为详细。 使用此数据,您可以确定哪种方法导致响应时间长。 在此示例中,问题的根本原因是先前集成的性能瓶颈的一种方法。

现在,您可以查看源代码,并发现此方法运行缓慢的原因。 例如,也许依赖于第三方服务(这是无法实现的),或者仅仅是代码中的错误。

最后的想法

使用开源APM软件,您可以确保系统的质量并采取措施进一步改善它。 您可以使用该软件立即对问题做出React,并确定问题的根本原因,或者至少在一定程度上详细定位它们。

开发人员正在创建许多强大的功能,这些功能将极大地丰富inspectIT的功能。

这些功能之一是能够关联多个主机上的执行跟踪的功能,这可以增加系统洞察力,从而可以跟踪整个系统中的数据流。 此外,移动(Android,iOS)和浏览器(JavaScript)代理将不再处于试验状态,它们已可以投入生产。 使用这些功能,您可以查看受监视系统的端到端视图。

正在开发的另一个功能是自主异常检测,它可以使用智能和自适应基线,而不是硬阈值。

这只是inspectIT及其功能的简短概述。 还有许多其他功能可供发现。 如果要尝试,可以下载inspectIT及其文档,也可以从GitHub存储库中检出完整的源代码。

翻译自: https://opensource.com/article/17/3/inspectit

开源 apm

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源 apm_使用开源APM软件:InspectIT 的相关文章

  • 从APM源码分析GPS、气压计惯导融合

    最近事多 xff0c 忙着开源自研飞控 xff0c 现主要工作基本已经完成 xff0c 代码最迟下月中旬开放 xff0c 博客来不及更新 xff0c 还请各位见谅 xff0c 后面会抽空多更的咯 xff01 xff01 xff01 自研飞控
  • 从APM源码分析GPS、气压计惯导融合

    最近事多 xff0c 忙着开源自研飞控 xff0c 现主要工作基本已经完成 xff0c 代码最迟下月中旬开放 xff0c 博客来不及更新 xff0c 还请各位见谅 xff0c 后面会抽空多更的咯 xff01 xff01 xff01 自研飞控
  • px4.launch apm.launch放哪儿

    安装了MAVROS之后 xff0c 经常要启动px4 launch 或 apm launch 有时候修改其中内容为默认更方便 但是文件在哪里呢 xff1f span class token function sudo span span c
  • 富斯FS-T6 APM飞控四种飞行模式设置方法_MIX混控设置

    来源于5iMX论坛的这篇帖子 富斯FS T6 APM飞控两种飞行模式设置方法点击打开链接 但是我按照作者的设置MIX的方法 xff0c 怎么都只有三种通道 先上图吧 xff1a 1 我的混控设置 xff1a OFFSET是偏移量 xff0c
  • APM_ArduCopter源码解析学习(一)——ArduCopter主程序

    ArduCopter源码解析学习 xff08 一 xff09 ArduCopter主程序 前言一 准备工作二 Copter cpp解析 2 1 scheduler table2 2 scheduler get scheduler tasks
  • APM飞控学习笔记——自动模式下一分钟自动降落

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 自动模式简介二 添加自动降落功能 1 飞控主循环调用逻辑2 功能添加总结 前言 APM是一款功能齐全的开源多轴飞行器无人
  • Mission Planner中级应用(APM或PIX飞控)2——飞控减振

    飞控减振 自动驾驶仪具有对振动敏感的加速度计 这些加速度计值与气压计和GPS数据来估计无人机的位置 随着过度振动 xff0c 依赖精确定位的模式下的性能 xff08 例如在无人机上 xff1a AltHold Loiter RTL Guid
  • APM-MP日志分析参数索引

    MP日志分析参数索引 通过 ctrl 43 F 查找获取需要对应参数信息 AP Logger 64 LoggerMessage ADSB ADSB 64 Description Automatic Dependent Serveillanc
  • APM/PIXhawk 最全资料总汇(欢迎补充更新)

    转载请注明出处 http www amovauto com cat 61 11 AMOV社区玩也要玩的专业 xff01 欢迎加入社区QQ群 APM PIX UAV 相关中英文网站链接总汇 xff1a 1 国内外知名论坛 无人机开源基金会 D
  • APM飞控使用动捕等外部定位

    本文初次写于2023 03 03 xff0c pixhawk飞控应该是刷写了ArduPilot 4 1以上的版本 机载计算机通过WIFI和vrpn ros client获取动捕系统 xff08 vicon或者nokov xff09 的无人机
  • 使用simulink分析APM日志信息

    一 将bin转化成mat文件 使用mission planner将bin文件转化成mat文件 二 将工作区变量转化成timeserial对象 RCIN TimeSerial 61 timeseries RCIN 3 RCIN 2 1e6 三
  • APM 新版电机电调校准

    旧版的APM电机电调校准需要将油门开到最大后给飞控上电 xff0c 使飞控黄灯常亮后断电 xff0c 继续保持最大油门再给飞控上电 xff0c 听到嘀嘀嘀三声后表示收到遥控器最大油门信号 xff0c 之后再将油门打到最低 xff0c 听到滴
  • APM 路径规划笔记

    20180711 xff1a 类名 xff1a AC WPNav 功能 xff1a 完成Auto Loiter Abmode模式中的路径规划 为计算方便设置默认值 xff0c 实际值有可能又变化 wp accel cms 61 100 wp
  • PX4/APM/飞控的学习笔记前言-Cxm

    开始了 开始了 终于有时间可以学习飞控了 此文章是用来当目录 我会持续更新我的学习之旅 希望能对各位有所帮助 如果有错误的地方还请各位前辈指点 此帖持续更新后续内容 其实从21年的一月就开始学习飞控一开始是从PX4开始学习 但是因为对liu
  • STM32控制APM飞控(三)MAVLINK整合并适配stm32串口的收发

    目录 stm32底层串口代码更改能收发MAVLINK协议包 一 在上一次移植好的工程基础上进行如下改动
  • 浅谈APM系列-----update_flight_mode(ModeAltHold)

    update flight mode xff08 ModeAltHold xff09 这里只看ModeAltHold 位置 xff1a X ardupilot ArduCopter mode cpp update flight mode c
  • 蓝牙飞控数传套装(适合APM/Pixhaw/Pixhack/Pixhawk2飞控)

    SSC FK BL900是迅瞻电子初创的一款蓝牙 43 射频模块一体的飞控数传套装电台 xff0c 它内嵌入Digi的900HP模块和蓝牙模块 xff0c 对外提供XT60的电池供电接口 xff0c 支持5 28V的宽电压工作 xff0c
  • ArduPilot/APM源码学习笔记(一)

    最近开始学习ArduPilot APM飞控的源码 xff0c 源码托管在github上 源码链接 xff1a https github com diydrones ardupilot 飞控主页 xff1a http ardupilot co
  • APM添加参数

    APM添加参数 参考 https ardupilot org dev docs code overview adding a new parameter html 添加应用参数模块 例如 battery Parameters h k par
  • zipkin接入mysql【windows】

    java jar zipkin jar 这种方式启动数据是保存在内存中的 下面我们配置一下将数据保存到mysql中 创建数据库 CREATE DATABASE zipkin 创建表结构 表结构内容参考以下连接 https github co

随机推荐