远程监控 – 应用程序运行状况测量 CSF 博客
在远程监控基础知识和故障排除中,我们探讨了
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 平台的关系运营存储中获取此信息。
本文翻译自:
远程监控 – 应用程序运行状况测量 CSF 博客的更多相关文章
- 小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET
小议common lisp程序开发流程 - Ever 17 - 博客频道 - CSDN.NET 小议common lisp程序开发流程 分类: lisp 2011-04-17 20:59 1316人阅 ...
- Docker安装elasticsearch-head监控ES步骤 - gmijie的专栏 - CSDN博客
原文:Docker安装elasticsearch-head监控ES步骤 - gmijie的专栏 - CSDN博客 Docker安装elasticsearch-head监控ES步骤 docker拉取镜像 ...
- 鸿蒙内核源码分析(进程镜像篇)|ELF是如何被加载运行的? | 百篇博客分析OpenHarmony源码 | v56.01
百篇博客系列篇.本篇为: v56.xx 鸿蒙内核源码分析(进程映像篇) | ELF是如何被加载运行的? | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应 ...
- 《REWORK》启示录 招聘笔杆子——程序员为什么值得写博客
Hire Great Writers 仿佛这是写给自己看的,不过这在其中也有着相当有趣的意义 .虽然自己算是一个能写的人,或许这算是一种不算才华的才华,写博文的意义通常不会在于去描述自己怎样,怎样.通 ...
- 开发记录_自学Python写爬虫程序爬取csdn个人博客信息
每天刷开csdn的博客,看到一整个页面,其实对我而言,我只想看看访问量有没有上涨而已... 于是萌生了一个想法: 想写一个爬虫程序把csdn博客上边的访问量和评论数都爬下来. 打算通过网络各种搜集资料 ...
- [Git高级教程(二)] 远程仓库版本回退方法 - 梧桐那时雨 - CSDN博客
1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支 ...
- 使用jvisualvm远程监控Java程序
使用Java自带的jvisualvm调试Java程序,可以查看CPU.内存.线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows.服务端是Linux,并且是最小安装的Linux, ...
- 使用jvisualvm的jstatd方式远程监控Java程序
使用Java自带的jvisualvm调试Java程序,可以查看CPU.内存.类及线程等信息,还可以进行Dump,无疑是一个利器 由于客户端是Windows.服务端是Linux,并且是最小安装的Linu ...
- JAVA WEB 前台实时监控后台程序运行
基本思路: 1. 操作状态在类中以静态变量方式(或公共类存储公共变量方式,SESSION方式.COOKIE方式)存在 2. 前台采用AJAX方式激发后台进行业务逻辑操作,并实时更新操作状态信息 3. ...
随机推荐
- 整数v,从高位到低位,取c位数,得到最大数 (其中:v>=10^c)
题目如上,例子v=22312324,c=3,求得最大数为334. 用自己的想法实现了一遍,如果你有更好的方法的话,欢迎不吝赐教. 我的思路是,先将整数v按位存入一个数组,数组低位为整数高位,如num[ ...
- U盘开发之安全U盘
普通型安全U盘,虚拟KEY和U盘两个设备,由主机软件分别对KEY和U盘进行操作,U盘与上位机采用usb mass storage接口,KEY采用HID接口,两者均无需驱动.也有虚拟成光盘和U盘两个设备 ...
- java设计模式--创建模式--建造者模式
对于建造者模式,小编个人理解为就是一个组装型的模式. 建造者模式 概述 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 适用性 1.当创建复杂对象的算法应该独立于该对象的组 ...
- hdu 1536 S-Nim_求sg值模版
题意:给你很n堆石头,k代表你有k种拿法,然后给出没堆石头的数量,求胜负 直接套用模版 找了好久之前写的代码贴上来 #include<iostream> #include<algor ...
- 【LeetCode练习题】Partition List
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- sharepoint 2010 使用自定义列表模版创建列表(2)
前面用的方法是通过界面上操作,根据自定义模版,创建的列表.sharepoint 2010 使用自定义列表模版创建列表(1) 这里顺便记录多另一种方法,通过程序来创建. ---------------- ...
- 8位(bit)=1字节(Byte)
8位(bit)=1字节(Byte),1024字节=1KB: 提到了字节,不得不再提到“字”这个计量单位:“字”由若干个字节构成,字的位数叫做字长,字长就是说字所对应的二进制数的长度.不同的机器有不同的 ...
- CSS3中的弹性流体盒模型技术详解
先回顾一下CSS1 和 CSS2中都已经定义了哪些布局方面的属性,这样也会增加我们理解弹性布局. 其实我们现在有很多一部分人,你们刚刚接触CSS层叠样式表,或者接触有一段时间了,但是却没有很好的去 ...
- java 判断字符串编码
String iso8859 = new String(sb.toString().getBytes("iso8859-1"));String gbk = new String(s ...
- 关于Console的Main(String[] args)参数输入
之前接触一个往Console里输入参数的项目,资深QA教我怎么run,灰常脸红. 今日无事,baidu之. Step1 写简单Console Code. class Program { static ...