Apdex(Application Performance Index)量化应用性能

“道琼斯指数帮助人们衡量股市行情变化,Apdex 指数帮助您衡量用户心情变化。“

一.为什么需要 Apdex

性能指数,Apdex(Application Performance Index)是一个国际通用标准,Apdex 是用户对应用性能满意度的量化值。它提供了一个统一的测量和报告用户体验的方法,把最终用户的体验和应用性能作为一个完整的指标进行统一度量。

在网络中运行的任何一个应用(Web、数据库、E-mail 等等),它的响应时间决定了用户的满意程度。以 Web 应用为例,当用户进行一次 http 链接时,客户端和服务器之间会产生很多个交互(一个交互指一次客户端的请求和服务器的响应),http 链接这一动作产生的所有交互完成之前,用户无法进行下一步的操作,比如下载文件或者跳转当下一个 http 链接。

用户等待所有交互完成时间的长短直接影响了用户对应用的满意程度。这才是对用户有真正意义的“响应时间”,Apdex 把完成这样一个任务所用的时间长短称为应用的“响应性”。

二.我们是如何计算 Apdex

基于“响应性”,Apdex 定义了 3 个用户满意度区间( OneAPM 默认定义的 T 值为 0.5 秒):

  • 满意:这样的响应时间让用户感到很愉快,响应时间少于 T 秒钟。

  • 容忍:慢了一点,但还可以接受,继续这一应用过程,响应时间 T~4T 秒。

  • 失望:太慢了,受不了了,用户决定放弃这个应用,响应时间超过 4T 秒。

“满意”、“容忍”、“失望”这三个区间通过响应时间数值 “T” 来划分,T 值代表着用户对应用性能满意的响应时间界限或者说是“门槛”(Threshold),也就是第一个区间“满意”的底线,如 0.5 秒,满意区间就是 0~0.5 秒;响应时间超过 T 值用户就有些不满了,下一个区间“容忍”的界限值则是 T 和 4T,即 0.5~2 秒之间为容忍区间;响应时间再长用户就开始考虑放弃了,最后一个区间“失望”的响应时间则大于 4T,即多于 2 秒。

之后,Apdex 对应用中发生的任务进行采样,并且按其响应时间把采样划分到相应的满意度区间,计数,再用一个公式计算 Apdex 指数:

这样,采样结果被量化为一个 0 到 1之间的数值即 “Apdex 指数”,0 代表没有满意用户,1则代表所有用户都满意。经过统计,Apdex 把这个数值与用户满意程度细化对应,如下图所示,对于应用性能的 Apdex 评分与用户的体验紧密关联,为管理者提供了一种通过应用性能量化值来评估用户满意度的方法。

原文地址:http://oneapm.udesk.cn/hc/articles/515


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用ueditor实现多图片上传案例——截取字符串层Util(SubString_text)

/** * Title: ConfigManager.java * Package org.util * Description: TODO该方法的主要作用: * author A18ccms A18ccms_gmail_com * date 2017-9-29 上午8:01:39 * version V1.0 */ package org.util;import org.entity.Shopping;/** * * 项目名称&…

关于Java类加载双亲委派机制的思考(附面试题)

转载自 关于Java类加载双亲委派机制的思考&#xff08;附面试题&#xff09; 预定义类加载器和双亲委派机制 JVM预定义的三种类型类加载器&#xff1a; 启动&#xff08;Bootstrap&#xff09;类加载器&#xff1a;是用本地代码实现的类装入器&#xff0c;它负责将 <Java_R…

线性结构VS非线性结构

线性结构 线性结构作为最常用的数据结构&#xff0c;其特点是数据元素之间存在一对一的线性关系 线性结构有两种不同的存储结构&#xff0c;即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表&#xff0c;顺序表中的存储元素是连续的 链式存储的线性表称为链表&#…

ES报错:Connection reset by peer 解决经历

http://nicethemes.cn/news/txtlist_i28391v.html 这次来分享一下ES报错&#xff1a;java.io.IOException: Connection reset by peer 的解决经历 问题描述 本人最近负责了定时获取Prometheus Metrics并发送到ES做持久化存储的任务。然而在Metrics采集粒度从3分钟变为1小时后…

云计算设计模式(一)缓存预留模式

云带来的改变是显而易见的&#xff0c;云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c; 进入可配置的计算资源共享池&#xff08;资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件&#xff0c;服务&am…

Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别

转载自 Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别 查了一些资料也不是太明白两个的区别&#xff0c;但是前者是最安全的用法 打个简单的比方&#xff0c;你一个WEB程序&#xff0c;发布到Tomcat里面运行。 首先是执行Tomcat org.apache.c…

批量删除文件

git bash 运行 rm -rf *.class 删除当前文件夹下所有的.class文件

稀疏数组与二维数组相互转化

图示 二维数组转稀疏数组的思路 遍历 原始的二维数组&#xff0c;得到有效数据的个数 sum根据sum 就可以创建 稀疏数组 sparseArr int[sum 1] [3]将二维数组的有效数据数据存入到 稀疏数组 稀疏数组转原始的二维数组的思路 先读取稀疏数组的第一行&#xff0c;根据第一行的…

云计算设计模式(二)——断路器模式

云带来的改变是显而易见的&#xff0c;云计算是一种按使用量付费的模式&#xff0c;这种模式提供可用的、便捷的、按需的网络访问&#xff0c; 进入可配置的计算资源共享池&#xff08;资源包括网络&#xff0c;服务器&#xff0c;存储&#xff0c;应用软件&#xff0c;服务&am…

Class.forName()和ClassLoader.getSystemClassLoader().loadClass()区别

转载自 Class.forName&#xff08;&#xff09;和ClassLoader.getSystemClassLoader().loadClass&#xff08;&#xff09;区别 class A {static {System.out.println("Class A is Loading now");}public A(){System.out.println("A new Class A instance is cr…

excel打开csv 出现乱码怎么解决 逗号分隔

excel打开csv 出现乱码怎么解决 https://jingyan.baidu.com/article/ac6a9a5e4c681b2b653eacf1.html CSV是逗号分隔值的英文缩写&#xff0c;通常都是纯文本文件。CSV格式是分隔的数据格式&#xff0c;有字段/列分隔的逗号字符和记录/行分隔换行符。通常CSV文件可以用EXCEL正常…

mybatis报错:java.lang.IllegalArgumentException: Mapped Statements collection does not contain

在做mybatis案例的时候发现了一个问题&#xff0c;报错如下&#xff1a; org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for org.dao.…

在ASP.NET Core下使用SignalR技术

一、前言 上次我们讲到过如何在ASP.NET Core中使用WebSocket,没有阅读过的朋友请参考 WebSocket in ASP.NET Core 文章 。这次的主角是SignalR它为我们提供了简化操作WebSocket的框架。 ASP .NET SignalR 是一个ASP.NET 下的类库&#xff0c;可以在ASP.NET 的Web项目中实现实时…

ClassLoader 详解及用途

转载自 ClassLoader 详解及用途 ClassLoader主要对类的请求提供服务&#xff0c;当JVM需要某类时&#xff0c;它根据名称向ClassLoader要求这个类&#xff0c;然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources&#xff08;…

mybatis简单案例源码详细【注释全面】——前期准备

mybatis 是个什么东西&#xff0c;这里就不必说了&#xff0c;大家去网上搜搜看就行了&#xff0c;在这里我主要是分享一下最基本的增删改查案例以及配置信息&#xff0c;测试信息。 首先我们创建个数据库&#xff1a; /* SQLyog 企业版 - MySQL GUI v8.14 MySQL - 5.5.40 : …

用数组模拟队列的实现

package com.atguigu.queue;import jdk.nashorn.internal.ir.ReturnNode;import java.util.Scanner;/*** 创建人 wdl* 创建时间 2021/3/17* 描述*/ public class ArrayQueueDemo {public static void main(String[] args) {//测试一把//创建一个队列ArrayQueue queue new Arra…

时间格式转换2020-04-09T23:00:00.000+08:00

时间格式转换2020-04-09T23:00:00.00008:00 /*** 日期格式转换yyyy-MM-ddTHH:mm:ss.SSSXXX (yyyy-MM-ddTHH:mm:ss.SSSZ) TO yyyy-MM-dd HH:mm:ss* 2020-04-09T23:00:00.00008:00 TO 2020-04-09 23:00:00* throws ParseException*/public static String dealDateFormat(String…

云计算设计模式(三)——补偿交易模式

撤消由一系列步骤&#xff0c;它们共同限定了最终一致性操作中&#xff0c;如果一个或多个步骤失败执行的工作。按照最终一致性模型&#xff0c;业务实现复杂的业务流程和工作流的云托管的应用程序中很常见。 背景和问题 在云中运行的应用程序频繁修改数据。此数据可跨在各种地…

java反射 修改静态方法的值 setAccessible

转载自 java反射 修改静态方法的值 setAccessible 这几天闲来无事。在网上看了一个题目&#xff0c;相信大家都知道这个题目 static void change(String str){str"welcome";}public static void main(String[] args) {String str "123";change(str);Syste…