APM 究竟是什么?

很多人都是第一次听说 APM 的概念,本文主要阐述如何使用 APM 的解决方案来实现 PHP 应用性能的优化。首先先介绍一下 APM (Application Performance Management)即应用性能管理,对企业系统即时监控以实现对应用程序性能管理和故障管理的系统化的解决方案。

应用性能管理是一个比较新的网络管理方向,主要指对企业的关键业务应用进行监测、优化,提高企业应用的可靠性与质量,保证用户得到良好的服务,降低 IT 总所有成本(Total Cost of Ownership,简称 TCO)。一个企业的关键业务应用的性能强大,可以提高竞争力,并取得商业成功,因此,加强应用性能管理(APM)可以带来巨大商业利益。

支持的语言和环境

兼容性和安装要求

本文,以国内应用性能管理领军企业 OneAPM举例,他们支持的应用服务器和应用框架如下表所示:

1.操作系统

CentOS 5.5 以上
Ubuntu 11 以上
RedHat Enterprise Linux (RHEL) 5 及以上

2.PHP 版本

PHP 5.2.13 及以上
PHP 5.3 及以上
PHP 5.4 及以上
PHP 5.5 及以上
PHP 5.6 及以上

3.数据库

mysql [mysql , pdo , mysqli]

4.WebServer

Apache 的 mod_php 模式(线程安全与非线程安全)
FastCGI 模式(例如:php-fpm)

5.明确不支持的框架

Yaf

6.可以安装的框架

Wordpress
Drupal
Magento
Zend
CakePHP
Codelgniter
Symfony
Laravel
ThinkPHP
Discuz
Yii
所有基于 PHP 语言写的框架都可以安装 PHP-Agent

7.兼容的扩展

bz2 calendar Core
ctype curl date
dom ereg exif
fileinfo filter ftp
gd gettext gmp
hash iconv imap
json ldap libxml
mysql mysqli odbc
openssl pcntl pcre
PDO pdo_mysql PDO_ODBC
pdo_sqlite Phar readline
Reflection session shmop
SimpleXML pdo_mysql sockets
SPL sqlite3 standard
tokenizer wddx xml
xmlreader xmlrpc xmlwriter
xsl zip zlib

功能

1.应用架构自动建模

下载探针并安装就绪后,平台会自动识别并加载服务器上的应用

总览全局性能


应用首页的应用性能总览,能够让你迅速感知应用的健康程度和总体性能状态与问题。以总览为入口,可以轻松追溯至地理信息、关键事务、错误统计等性能度量点,完成应用性能管理工作。在应用性能总览中,包括以下信息:响应时间,性能指数,吞吐量(单位:rpm 每分钟请求数),关键事务,错误率,近期事件,服务器信息

自动分析应用程序拓扑

Web 事务

慢事务追踪

2.代码级别的性能诊断

3.数据库

详情

慢 SQL 诊断

4.外部服务

5.后端监控

6.错误信息

7.报表
Web 事务

数据库

8.设置
服务器环境

自定义事务

9.关键事务

9.报警策略

报警策略可为应用程序,关键事务分别设置
设置方法如下

a.触发
性能指数
设置多少分钟内为 警示值
设置多少分钟内为 发送警报

错误率
设置多少百分的平均错误率在多少分钟内为 警示值
设置多少百分的平均错误率在多少分钟内为 发送警报

b.通知方式
邮件,短信,邮件+短信

c.分派
应用
设置具体哪些应用采用此策略

用户
设置具体哪些用户为此策略响应

告警集成
alert 说明-----此处需修改

报警记录
报警记录类别分为 通知、宕机、严重问题、告警问题

安装


1.获取授权编号
服务器会自动生成「License Key」授权编号

2.下载
从页面中下载 OneAPM PHP Agent

或使用 wget 在线获取安装包

3.安装
解压 Agent 安装包

tar -xzf OneAPM_php_Agent_latest.tar.gz
定位至「安装包所在路径」

cd oneapm-php5-linux-install-script
执行安装脚本

sudo ./oneapm-install
在提示输入「License Key」时,输入「License Key」

等待安装脚本执行。若出现以下信息,则安装成功。

OneAPM is now installed on your system. Congratulations!

4.重启
重启 Apache 或 php-fpm。
然后,稍等片刻,等待 OneAPM 接收 Agent 发送的数据。

查阅更多文档

PHP Agent Release Note

PHP Agent 安装方法

PHP 兼容环境和功能列表

PHP Agent 参数配置

定价

团队

社区
http://oneapm.club/

其他产品

详悉错误报告

无论是私人数据中心,还是公共云,亦或是 Hybrid-Cloud,OneAPM 同样适用。

按照浏览器和地理信息 2 种分类方式,对真实用户的页面加载时间等性能数据进行查看,快速区隔出需要优化性能的浏览器类型和区域用户。

关键事务 Top 5,平均响应时间、吞吐量这些性能查看方式,帮助你快速定位性能瓶颈;事务的深度 Traces 记录,协助你完成应用性能管理从抽象到具象的追溯过程。

智能的报警机制,在性能瓶颈出现前,修复性能问题,防止性能问题导致用户流失。

深度追溯细节

OneAPM 提供整齐划一的界面,让你能够无障碍地完成从真实用户体验,到应用服务器,直至应用代码的端到端应用性能管理。

OneAPM 支持团队协助,能够帮助一个团队完成应用性能管理工作,包括:事务的深度性能剖析、浏览器 Traces 记录查看、关键事务性能分析、事务 Traces 记录查看。

为什么选择 OneAPM ?

OneAPM 是国内首家支持 PHP 的应用性能管理云解决方案,通过 Saas 向用户提供统一的入口、友好的界面、便捷的流程,来管理和监控应用程序的性能,并完成从前端、到网络、直至应用代码的端到端应用性能管理,让你随时随地变身运维专家。

OneAPM 面向开发者和中小型企业,无需企业级的花费,就可以达到企业级的应用性能管理效果。基础设施监控、多语言支持、真实用户体验监控、事务深度追溯和分析,使用 OneAPM 就可以帮你全部搞定 !

如何使用 APM 搞定 PHP 应用的性能优化?的更多相关文章

  1. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

  2. 对百度WebUploader开源上传控件的二次封装,精简前端代码(两句代码搞定上传)

    前言 首先声明一下,我这个是对WebUploader开源上传控件的二次封装,底层还是WebUploader实现的,只是为了更简洁的使用他而已. 下面先介绍一下WebUploader 简介: WebUp ...

  3. 教你怎么半天搞定Docker

    首先,不要把docker想的那么高大,它不就是先做个镜像,然后通过docker像虚拟机一样跑起来嘛...docker其实在真实业务场景中还是非常有局限性的.Dockerfile脚本也没那么好写,有些应 ...

  4. 用ORM的思想操作XML文档,一个对象就搞定不要太简单。滚蛋吧!XmlDocument、XmlNode、Xml***……

    大家有没有这样的感受,一涉及XML文档操作就得百度一遍.是不是非!常!烦!.各种类型,各种方法,更别提为了找到一个节点多费劲.本来想写个XML操作的工具方法,写了两行一想既然XML文档是有规律的,如果 ...

  5. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  6. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

    前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用法,都是写基础应用,根本谈不上封装,仅仅是避免了html控件的取值和赋值,远远没有将MVVM的精妙展现出来.最近项目打 ...

  7. 如何让两个div在同一行显示?一个float搞定

    最近在学习div和css,遇到了一些问题也解决了很多以前以为很难搞定的问题.比如:如何让两个div显示在同一行呢?(不是用table表格,table对SE不太友好)其实,<div> 是一个 ...

  8. 3小时搞定一个简单的MIS系统案例Northwind,有视频、有源代码下载、有真相

    一.瞎扯框架.架构 楼主自从1998年从C语言.MASM.Foxbase开始学计算机开始接触这个行当16年以来,2001年干第一份与程序.软件.然后是各种屌的东西开始,差不多干了13年了,这13年来, ...

  9. 前端实战Demo:一张图片搞定一页布局

    对前端程序员来说,从设计师的手中拿过设计图和素材之后根据需要进行切图是必要的基本功,但是一般的程序员可能对切图并非那么熟悉,所以可能有很多时间都花在使用Photoshop上,那么这里就有一种方法可以减 ...

随机推荐

  1. ListView onItemClick(AdapterView<?> parent, View view, int position, long id)参数详解

    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { parent.getA ...

  2. JavaScript动画附源码(一)

        JavaScript完成动画程序 1,效果图: 以上是纯CSS+JavaScript实现的.点击关闭按钮可以动态关闭这个方框.兼容IE/FF/Chrome.这样的效果如果用jquery实现起来 ...

  3. Cocos2d-x中创建SQLite数据库

    我们下边介绍如何通过SQLite3提供的API实现MyNotes数据库创建.创建数据库一般需要经过如下三个步骤.(1) 使用sqlite3_open函数打开数据库.(2) 使用sqlite3_exec ...

  4. 读<<CLR via C#>> 详谈泛型

    1,什么是泛型? 答:泛型是类型的模板,类型是实例(对象)的模板.C#提供了5种泛型:类,接口,委托,结构和方法. 2,使用泛型有什么好处? 答:继承实现的是"代码重用",而泛型实 ...

  5. mongoDB知识总结

    官方说明文档:https://docs.mongodb.com/manual/mongo/ 1 NoSQL 简介 NoSQL,全称是”Not Only Sql”,指的是非关系型的数据库(相对于关系型数 ...

  6. c#基础学习汇总----------base和this,new和virtual

    base和this是c#中的两访问关键字,目的是用于实现继承机制的访问操作,来满足对对象成员的访问,从而为多态机制提供更加灵活的处理方式. 在看<你必须知道的.Net>一书中有一个例子很好 ...

  7. 暑假集训(4)第四弹 -----排列,计数(hdu1465)

    题意概括:嗯,纵使你数次帮助小A脱离困境,但上一次,小A终于还是失败了.那数年的奔波与心血,抵不过轻轻一指,便彻底 湮灭,多年的友谊终归走向末路.这一切重击把小A彻底击溃! 不为什么,你到底还是要继续 ...

  8. IE6下window.location.href不跳转到相应url

    前天一同事遇到个看似很诡异的问题,就是<a href="javascript:void(0);" onclick="window.location.href=url ...

  9. netty启动过程

    netty先启动work线程,work线程打开selector 绑定pipeline 启动boss线程,绑定端口,注册selector,绑定op_accetp事件 ------------------ ...

  10. php中类的声明与使用

    <?php /**php语言是支持面向对象编程的,对于面向对象的编程,学过java和C++的人都知道啊! *如果不清楚的去baidu问一下就可以了. */ //我们来定义一个类,定义类的关键字是 ...