远程监控基础知识和故障排除中,我们探讨了
Windows Azure 平台提供的基础指标、信息源、工具和脚本,介绍了有关监控和应用程序运行状况的基本原则。我们演示了如何利用这些基本原则对在 Windows Azure 上部署的简单解决方案(少数几个计算节点实例,单个 Windows Azure SQL 数据库实例)进行故障排除。在本文章中,我们将详述该主题并讨论在
Windows Azure 中的云服务基础项目中实施的远程监控系统的应用程序运行状况测量。在本博客随附的详细 Wiki 文章中,我们将向您演示如何使用 CSF 测量框架,该框架与
Windows Azure Diagnostics (WAD) 集成,可为您的应用程序提供统一的运行状况测量体验。CSF 应用程序中使用的技术的可靠性已在大规模 Azure 部署上得到证实。

关于您的应用程序的最佳信息来源是应用程序本身。虽然可以凭借良好的工具和强大的远程监控系统更轻松地获取信息,但如果不首先测量应用程序运行状况,则根本无法获取信息。此外,如果您没有持续测量所有应用程序组件的运行状况,则在生产中开始伸缩时不太可能达到运营效率。(故障排除问题变得复杂得多,个人甚至团队都无法立即解决。)只有持续测量整个应用程序的运行状况并使用该测量进行远程监控,才能相对高效轻松地大规模提取维护应用程序正常运行所需的信息。

CSF 提供了一些组件,可用于快速测量应用程序运行状况,并构建一个有效的远程监控系统:

·   数据访问层提供了重试逻辑、并提供专为伸缩而设计的合理重试策略。

·   构建于 NLOG 之上的日志记录框架

·   WAD 的可伸缩自定义配置,支持伸缩。

·   将此信息收集和移动到可查询的远程监控系统中的数据管道。

·   运营远程监控报告的样本集,可用于监控应用程序

通过采用这些做法及使用所提供的组件和配置,有助于系统进行伸缩,并让您深入了解如何制定更精确的开发计划和提高运营效率,从而达到使用的资源更少,客户满意度更高的最终目的。这让您可以提供高品质的用户体验,并先于用户预测即将发生的问题。请参阅相应的 Wiki 文章,深入了解“远程监控:应用程序运行状况测量”

该文章可轻松读完,但您可能一直忙于增加用户群和部署新的代码功能而未能阅读。

不要相信这种感觉。许许多多企业的一些热门产品或服务都在某些时候无法伸缩,并出现过一次或多次长时间停机。用户往往很少会长期使用一个不可靠的系统,他们可能会选择改用其他系统,也许会使用试图与您竞争并抢夺市场的创业公司的系统。

当然,有些人可能已经构建了自己的应用程序运行状况测量框架并实施了许多最佳做法。出于该原因,我们在 codeplex.com 上提供了将所有远程监控组件作为源代码的完整
CSF 应用程序
。在应用程序中实施运行状况测量时,请注意以下关键事项:

·   为大批量(高容量、高延迟、精细数据)和零碎(低容量、低延迟、高价值数据)创建分开的通道

·   对于零碎信息使用标准 Windows Azure Diagnostics 信息源(如性能计数器和跟踪)。

·   记录对外部服务的所有 API 调用,包括上下文、目标位置、方法、计时信息(延迟)和结果(成功/失败/重试)。使用大批量日志记录通道,以避免因测量信息过多而导致远程监控系统崩溃。

·   记录完整的异常详细信息,但请勿使用 exception.ToString()

·   写入表存储中的数据(性能计数器、事件日志、跟踪事件)都写入到一个临时分区中, 60秒后再真正上传到存储服务器。试图写入过多数据(点来源过多,收集间隔过低)会导致分区崩溃。确保错误突增不会触发大量试图插入表存储的操作,因为这可能会触发限制事件。

·   使用记秒表方法收集数据库和其他服务的响应时间

·   使用常用的日志记录库(如 Enterprise Application FrameworkLibrary、log4net 或 NLog)对本地文件进行批量日志记录。使用诊断监控配置中的自定义数据源,定期将此信息复制到 Blob 存储。

·   请勿将实时站点数据和远程监控信息发布到同一个存储帐户中,而应使用专用的存储帐户进行诊断。

·   选择适当的收集间隔(5 分钟至 15 分钟),以减少必须传输和分析的数据量,例如,“PT5M”。

·   确保可以在运行时修改日志记录配置,而不必强制重置实例。还要验证配置是否足够精细,以便能够记录系统的具体方面,如数据库、缓存或其他服务。

感谢您抽出时间阅读本博客文章。若要了解如何在应用程序中实施 CSF 测量组件的详细信息,请参阅相应的 Wiki 文章,深入了解“远程监控:应用程序运行状况测量”。在本系列的下一篇文章中,我们将探讨我们已实施的数据管道,以全面介绍整体
CSF 应用程序及其性能特点,包括我们如何在跨越了整个 Azure 平台的关系运营存储中获取此信息。

本文翻译自:

http://blogs.msdn.com/b/windowsazure/archive/2013/07/11/telemetry-application-instrumentation-csf-blog.aspx

远程监控 – 应用程序运行状况测量 CSF 博客的更多相关文章

  1. 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET

    小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...

  2. Docker安装elasticsearch-head监控ES步骤 - gmijie的专栏 - CSDN博客

    原文:Docker安装elasticsearch-head监控ES步骤 - gmijie的专栏 - CSDN博客 Docker安装elasticsearch-head监控ES步骤 docker拉取镜像 ...

  3. 鸿蒙内核源码分析(进程镜像篇)|ELF是如何被加载运行的? | 百篇博客分析OpenHarmony源码 | v56.01

    百篇博客系列篇.本篇为: v56.xx 鸿蒙内核源码分析(进程映像篇) | ELF是如何被加载运行的? | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应 ...

  4. 《REWORK》启示录 招聘笔杆子——程序员为什么值得写博客

    Hire Great Writers 仿佛这是写给自己看的,不过这在其中也有着相当有趣的意义 .虽然自己算是一个能写的人,或许这算是一种不算才华的才华,写博文的意义通常不会在于去描述自己怎样,怎样.通 ...

  5. 开发记录_自学Python写爬虫程序爬取csdn个人博客信息

    每天刷开csdn的博客,看到一整个页面,其实对我而言,我只想看看访问量有没有上涨而已... 于是萌生了一个想法: 想写一个爬虫程序把csdn博客上边的访问量和评论数都爬下来. 打算通过网络各种搜集资料 ...

  6. [Git高级教程(二)] 远程仓库版本回退方法 - 梧桐那时雨 - CSDN博客

    1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...

  7. 使用jvisualvm远程监控Java程序

    使用Java自带的jvisualvm调试Java程序,可以查看CPU.内存.线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows.服务端是Linux,并且是最小安装的Linux, ...

  8. 使用jvisualvm的jstatd方式远程监控Java程序

    使用Java自带的jvisualvm调试Java程序,可以查看CPU.内存.类及线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows.服务端是Linux,并且是最小安装的Linu ...

  9. JAVA WEB 前台实时监控后台程序运行

    基本思路: 1. 操作状态在类中以静态变量方式(或公共类存储公共变量方式,SESSION方式.COOKIE方式)存在 2. 前台采用AJAX方式激发后台进行业务逻辑操作,并实时更新操作状态信息 3.  ...

随机推荐

  1. 淘宝api 开发_获取用户信息

    string url = "http://gw.api.taobao.com/router/rest"; "; string appsecret = "fdf7 ...

  2. SQL Server 对dbcc checkdb的优化

    方法 1. 在运行dbcc checkdb前对数据库进行快照(事务是一致的),dbcc 对快照进行检测,dbcc完成后删除快照. 做快照的目的是为了不要让dbcc 申请太多的锁,从这里可以看出dbcc ...

  3. Nginx学习之三-ngx_http_request_t结构体

    ngx_http_request_s是nginx中非常重要的一个结构体,贯穿于htpp请求处理的整个过程中. 下面解释了ngx_http_request_s结构体中与HTTP框架相关的重要的成员变量. ...

  4. progressbar样式

    http://www.oschina.net/question/8676_11797 http://blog.csdn.net/ouyangtianhan/article/details/656576 ...

  5. MapReduce工作机制

    MapReduce是什么? MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,MapReduce程序本质上是并行运行的,因此可以解决海量数据的计算问题. MapReduce ...

  6. OpenCV-Python教程(10、直方图均衡化)

    相比C++而言,Python适合做原型.本系列的文章介绍如何在Python中用OpenCV图形库,以及与C++调用相应OpenCV函数的不同之处.这篇文章介绍在Python中使用OpenCV和NumP ...

  7. win7运行sqlplus报错“SP2-1503: 无法初始化 Oracle 调用界面”

    WIN7 64bit安装Oracle 10.2.0.1后,运行cmd-sqlplus / as sysdba会提示: C:\Users\Liu>sqlplus / as sysdba SP2-1 ...

  8. 让Qt for Windows Phone 8.1在真机上执行

    让Qt for Windows Phone 8.1在真机上执行 前面几篇博文是为这篇文章做铺垫的,终于目的为的是使用Qt框架制作出可以在Windows Phone 8.1真机上执行的程序.因为Qt f ...

  9. Sublime Text 3 无法使用package control安装插件解决办法

    Crossing's Blog NOT Genius but Try Best 首页 分类 关于 归档 标签 问题貌似出现在liveStyle版本更新之后,因为打算安装javascript next和 ...

  10. 08JS高级 ——“继承”

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...