软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
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 股票 租车
生肖星座 三丰软件 视频 开发 短信 中国文化 网文精选 搜图网 美图 阅读网 多播 租车 短信 看图 日历 万年历 2018年1日历
2018-1-16 17:17:08
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --