随着AppDynamics Winter '16发布,AppDynamics现在支持通过监控SDK监控C / C ++应用程序,该监控SDK支持与其他支持语言相同的实时,端到端,用户到数据库性能可见性,以实现快速根 - 因为分析和问题解决。
C / C ++已经有一段时间了,它被认为是高性能应用程序的语言,主要是因为它编译为机器代码并直接与操作系统接口而没有中间层。
虽然多年来应用程序的复杂性已经爆炸,现代语言由于各种原因而不断发展并变得越来越流行,但基于C / C ++的应用程序仍然是许多企业的业务关键应用程序环境的核心部分。随着这些应用程序对业务变得越来越重要,在应用程序问题影响收入之前,有一种简单而快速的方法来监控,诊断和解决应用程序问题比以往任何时候都更加重要。
介绍AppDynamics C / C ++应用程序性能管理模块
AppDynamics C / C ++应用程序性能管理(APM)模块在最复杂的分布式环境中提供C / C ++应用程序的端到端业务事务中心管理,通过主动识别和解决性能问题提供卓越的用户体验。
作为AppDynamics应用智能平台的关键模块,C / C ++ APM模块通过监控SDK监控C / C ++应用程序,该SDK支持与其他支持的语言相同的实时,端到端,用户到数据库性能可见性,用于快速根本原因分析和问题解决。
您可以使用SDK检测C / C ++应用程序代码,重新编译代码并在生产中进行部署,以获得性能的实时可见性,并在几秒钟内找到代码瓶颈的根本原因,所有这些都是最小的开销。AppDynamics C / C ++应用程序监控SDK支持自动发现和映射服务并与C / C ++应用程序交互的所有层,自动动态基线,数据收集器和运行状况规则,以及管理关键指标,包括应用程序负载和响应时间,和系统资源,包括CPU,内存和磁盘I / O.
检测C / C ++应用程序进行监控
使用C / C ++应用程序代码来定义和监视业务事务,捕获快照,分布式事务关联,后端监视,错误监视以及从方法收集数据非常简单。
例如,为了像您在图1中看到的那样定义和监视业务事务,您只需要在appd_bt_begin()和appd_bt_end()调用之间包含构成要监视的请求的代码。请参阅下面的检测之前和之后的代码示例,您将注意到只需要两行代码即可将代码作为业务事务进行监视。
检测前的代码示例:
AccountOpResult AccountMgr::CreateAccount(const std::string& username, const std::string& password)
{
AccountOpResult result = AOR_OK;
if (utf8length(username) > MAX_ACCOUNT_STR)
{
result = AOR_NAME_TOO_LONG;
}
else if (GetId(username))
{
result = AOR_NAME_ALREADY_EXISTS;
}
else if (!loginDB.PExecute("INSERT INTO account(username,pass_hash) VALUES('%s','%s')", username, CalculatePassHash(password)))
{
result = AOR_DB_INTERNAL_ERROR;
}
return result;
}
检测后的代码示例:
AccountOpResult AccountMgr::CreateAccount(const std::string& username, const std::string& password)
{
AccountOpResult result = AOR_OK;
appd_bt_handle bt = appd_bt_begin(__func__, NULL);
if (utf8length(username) > MAX_ACCOUNT_STR)
{
result = AOR_NAME_TOO_LONG;
}
else if (GetId(username))
{
result = AOR_NAME_ALREADY_EXISTS;
}
else if (!loginDB.PExecute("INSERT INTO account(username,pass_hash) VALUES('%s','%s')", username, CalculatePassHash(password)))
{
result = AOR_DB_INTERNAL_ERROR;
}
appd_bt_end(bt);
return result;
}
appd_bt_begin()返回一个句柄,用于影响该业务事务的后续例程。如果要创建与上游业务事务关联的业务事务,请传递上游事务的相关标头,以便您创建的新事务可以与之关联。
通过插入类似的代码,您可以执行分布式事务关联,后端监视,错误监视以及从方法收集数据(键/值)
希望这能为您提供C ++监控解决方案的概述,并帮助您入门。在AppDynamics文档中了解有关C / C ++监控SDK的配置,检测和其他详细信息的更多信息 。
另外本人从事在线教育多年,将自己的资料整合建了一个QQ群,对于有兴趣一起交流学习C/C++的初学者可以加群:825414254,里面有大神会给予解答,也会有许多的资源可以供大家学习分享,欢迎大家前来一起学习进步!