软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> 研发管理 -> AzureService、AzureWeb、AzureStorm日志机制 -> 正文阅读

[研发管理]AzureService、AzureWeb、AzureStorm日志机制


    兵马未动,粮草先行。程序未果,日志先成。
    在学习Azure平台,并用之进行项目托管的过程中,深深感叹程序日志记录的重要性。通过日志,可以知道程序运行情况,发现隐含bug;通过日志,可以挖掘产品的访问情况,进一步提升产品质量。云平台不能很好断点调试,所幸Azure提供了一套完整的日志解决方案。
Service日志机制和Azure Web日志机制是记录程序里System.Diagnostics.Trace的信息。(C#代码)
如:System.Diagnostics.Trace.TraceInformation("If you see this, something good will happen!");
Storm的日志机制是记录Context.Logger的信息。(C#代码)
如:Context.Logger.Info("If you see this, something good will happen!");
Azure Service日志机制
    我的理解中,Azure Service/Cloud Serivce对应于线下的一个应用程序。每个Service可以是包含若干个Worker Role,或者包含若干个Web Role,Web Role的功能就有点类似于Azure Web了。但不管是Web Role还是Worker Role,他们的日志机制是相同的。
    在记录Azure Service日志之前,需要在你的Azure账号下创建一个存储Storage,Azure Service的日志就是存在Storage下的Table中。同时我也假定你已经在Visual Studio中创建了Cloud Service程序了。要想启动Azure Service的日志功能,主要是在发布的时候设置。

  1. 双击Service下面对应的WorkerRole/WebRole,下图中,LogCleanUpService下包含一个Role,LogCleanUpWorkerRole
    [img]http://bucket.kangry.net/14589816991144.png

  2. 在弹出的配置窗口中,勾选Enable Diagnostics前的复选框,并在方框中输入你的Storage的链接字符串。顺便说一下,这个窗口也能设置Service核大小、程序配置参数。同时,你也可以管理创建多个发布配置文件(下图椭圆框处)
    [img]http://bucket.kangry.net/14589821883514.png

  3. 点击上图的Configure按钮,选择日志记录等级。Errors Only表示只记录错误信息,All information表示记录所有的程序信息。还有一些日志大小配额信息,可以只取默认值。
    [img]http://bucket.kangry.net/14589823641492.png

  4. 另外还有一些其他设置,如日志写入频率等。一般默认即可,也可以手动设置。设置完毕之后,点击ok按钮。
    [img]http://bucket.kangry.net/14589826127381.png

  5. 右键项目,点击发布。
    [img]http://bucket.kangry.net/14589827563095.png

  6. 如图中,选择存储账号,然后再进行发布即可。
    [img]http://bucket.kangry.net/14589828794272.png

  7. Cloud Service的日志就是记录在了设置的Storage账户下的WADLogsTable中。多个Role可以记录在同一个存储账户中,可以通过表的Role属性来进行区分。
    [img]http://bucket.kangry.net/14589830032537.png

  8. 注意Cloud Serivce日志的Partition Key的含义。这个PartitionKey是19位日志产生时间的Ticks,通过这个信息,我们能很快的取到任何时间区间的日志。

Azure Web日志机制
    Web的日志机制与Serivce的稍有不同。我的理解中,Azure Web是比Cloud Service更高一层封装,在设置日志的时候也更方便。(除了PartitionKey的选择有点不好外)

  1. 在Azure Potal中进入Azure Web的配置界面,你会看到应用程序诊断区域。可以看到,Azure Web有三种日志记录方案:文件系统、存储表、Blob。不同存储方案有不同的优缺点。表存储更方便程序处理日志,但每条记录长度有限制;而文件系统和Blob存储比较适合人工查看,不限定每条记录的字符长度,Blob存储时,还自带删除旧日志的功能。可以同时打开多个日志记录方案。推荐Blob和Table结合使用
    [img]http://bucket.kangry.net/14589841007328.png

  2. 在表存储和blob存储中,还需要设置存储账号,并指定表名/blob容器名
    [img]http://bucket.kangry.net/14589844569371.png

  3. Blob日志存储方案,程序自动按时间每小时一个blob。blob的内容是以逗号分隔符存储的。
    [img]http://bucket.kangry.net/14589849935280.png

  4. Table日志存储中的PartitionKey是日志产生的时间的字符串yyyyMMddHH形式。(这会存在严重的性能问题,即热分区问题)
    [img]http://bucket.kangry.net/14589851219424.png

Azure Storm的日志机制

    Azure Storm属于Azure HDInsight的一部分。其日志记录与上述情况具有较大的差异性。在创建Storm的时候,会指定一个存储账号,在存储账号的Table中,存有所有的日志信息,包括Storm平台自己的跟踪信息。

  1. 日志存储表名:storm名称+创建时间+hadoopservicelog,如:uruiyuanteststorm21mar2016at125425139hadoopservicelog
    [img]http://bucket.kangry.net/14589858193167.png

  2. Storm日志的PartitionKey很奇怪,分成两部分,前半部分为0000000000000000000 到 0000000000000000100之间,后半部分是日子产生的Ticks。前半部分的含义询问了Azure的技术团队,仍然没有获得一个比较准确的回答。因此在取得特定时间段的日志时,情况比较复杂,但还是可以获得的,一种方法是取100次,然后再进行时间排序即可。

转载请注明:康瑞部落 ? Azure Service、Azure Web、Azure Storm日志机制

......显示全文...
    点击查看全文


上一篇文章           查看所有文章
2016-03-26 20:51:28  
研发管理 最新文章
拉格朗日乘数
maven之可视化项目依赖(Visualizingdepend
mac效率工具
Atitit.css规范bem项目中CSS的组织和管理
git入门
Asimplemodelfordescribingbasicsourcesofp
Linux进程管理浅析
我的openwrt学习笔记(十九):linux便捷开
2、微控制器选择
Git使用手册:为Git仓库创建Submodule
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 人民的名义 人民的名义在线看 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图
中国文化英文 多播视频 装修知识库
2017-7-22 4:50:59
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --