请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

  思科 CCO 登录 推荐
 找回密码
 立即注册

搜索
热搜: 邮件服务器
查看: 187|回复: 0

【小目标,一个“译”】+ 四款异常跟踪的服务(1)

[复制链接]
发表于 2018-11-8 17:32:50 | 显示全部楼层 |阅读模式
引言:作为软件开发者,应用程序的异常是再稀疏平常不过了。那么,您怎么才能准确发现到用户为何会碰到了问题、具体错误在哪里、甚至是应用程序如何崩溃的呢?

众所周知,软件开发既具挑战性,又比较复杂。具体来说,无论我们是在开发登录页面的app还是Linux的内核驱动程序,软件都需要记录各种信息,并做大量的分析。

在上述这些信息中,如果您想找出为什么用户会碰到某个问题、具体错误在哪里、甚至是应用程序如何崩溃的话,分析它们的异常是必不可少的。

让我们先来看看下面的例子,异常消息显示了由于数据库表--tblmovies未被找到,所以异常PDOException被抛出。在此,您还能看到它是从初始点开始,执行到一个类的具体某行时所抛出的异常(我们已经将其编辑为可阅读的形式)。

PDOException thrown with message"SQLSTATE[HY000]: General error: 1 no such table: tblmovies".

Stacktrace:

#28 PDOException in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:186

#27 PDO:prepare in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:186

#26Zend\Db\Adapter\Driver\Pdo\Statement:prepare in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-db/src/Adapter/Driver/Pdo/Statement.php:212

#25Zend\Db\Adapter\Driver\Pdo\Statement:execute in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php:239

#24 Zend\Db\TableGateway\AbstractTableGateway:executeSelectin /Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-db/src/TableGateway/AbstractTableGateway.php:209

#23Zend\Db\TableGateway\AbstractTableGateway:selectWith in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/src/Movies/src/Services/Database/MovieTable.php:48

...

#5Zend\Stratigility\Middleware\ErrorHandler:process in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-expressive/src/Middleware/LazyLoadingMiddleware.php:60

#4Zend\Expressive\Middleware\LazyLoadingMiddleware:process in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-stratigility/src/Next.php:128

#3 Zend\Stratigility\Next:process in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-stratigility/src/MiddlewarePipe.php:102

#2 Zend\Stratigility\MiddlewarePipe:processin /Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/vendor/zendframework/zend-expressive/src/Application.php:374

#1 Zend\Expressive\Application:run in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/public/index.php:29

#0 {closure} in/Users/settermjd/Documents/Business/Projects/Zend ExpressiveCourse/book-code/iteration-five/public/index.php:30


那么您的应用程序也会记录这些信息,而且能够记录到一个集中存储的日志区域吗?如果是这样的话,它们:

·        所记录的信息容易被获取得吗?
·        
·        是否能够被有效地进行解析?
·        
·        您是否能回溯到问题的提交源头(和提交者)呢?
·        
·        它是否提供了额外的元数据和有助于理解的提示呢?
·        
·        是否会包含个人身份信息(PII)、凭证、或其他任何形式的且需要进行安全加固的信息呢?
·        
如果不能够满足上述所有、或者至少是大部分问题的话,这就会存在问题的隐患。在此,您可以通过阅读本文,了解到四款在线的异常跟踪服务。请注意,我们的罗列并无特别的优先顺序。

Raygun

承蒙可口可乐、微软、Slack和3M的赏识,Raygun能为各种应用异常的跟踪提供时髦且专业的用户界面(UI)。由于已有现成且详尽的指导性文档,Raygun很容易被上手。

除了基本的安装设置文档之外,Raygun还能为其各个方面的服务提供大量的扩展文档(https://raygun.com/docs)。其中包括:

·        设置审计日志。
·        
·        管理用户和组。
·        
·        配置集成(其中包括Bitbucket、PivotalTracker、Visual Studio Team Services、Zendesk、Slack、YouTrack和Trello)。
·        
·        各种API和网络钩子。
·        
Raygun能够支持各种语言、平台和框架。这些包括PHP、.Net、安卓、iOS、MacOS、WordPress、Java、Python、Cold Fusion和C++。

Raygun所提供的服务主要集中在两个方面:崩溃报告(crashreporting)和真实用户监控(real user monitoring)。崩溃报告旨在通过查找,来了解和修复那些造成应用崩溃的各种异常。对于每一个被发送到Raygun的异常,它们会被分解和重新组织,并且根据如下条目进行分类显示:

·        何时发生的
·        
·        发生在哪个页面上
·        
·        异常的消息体本身
·        
·        发生的区域
·        
例外可以通过各种类型的标准来进行过滤,其中包括浏览器类型、操作系统类型、宿主机以及机器名等。而真实用户监控,则是从另一个方面,提供了有关应用是如何被执行的细节,包括如下的度量维度(如果适用的话):

·        平均加载的时间
·        
·        页面加载的时间
·        
·        客户数与浏览量
·        
这种功能可帮助用户跟踪每一个部署对应用程序的影响,是正面还是负面的。同时,用户的仪表板界面也能够被完全定制,以满足您的项目和团队的需要。具体包含的细节包括:

·        加载时间
·        
·        全局会话的分布
·        
·        活动使用用户
·        
·        会话数量
·        
·        总用户数
·        
·        新用户数
·        
·        返回的用户数
·        
·        平均加载的时间
·        
它的另一个便利的特点是Pulse。Pulse能够表明通过各种接近实时的事件,来显示当前网站的各种用户状态。通过它所提供的视图,您可以详细地查看到如下的信息:

·        加载的时间
·        
·        各种会话的数量
·        
·        各类用户的数量
·        
·        24小时内的会话趋势
·        
·        那些最近的请求
·        
·        平均加载的时间
·        
·        那些请求最多的网页
·        
·        那些最近的崩溃
·        
如果您深入到页面的级别,您还可以得到诸如为何页面表现不佳之类的综合信息,其中也包括DNS的查询、延迟、SSL的开销、页面生成以及传输的时间。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver | 思科社区  

GMT+8, 2018-11-17 15:27 , Processed in 0.085286 second(s), 28 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表