收集Azure诊断数据时,暂存插槽是否也会将诊断数据发送到WadPerformanceCounters表?
如果是这样,我该怎么办呢?或者如何在读取诊断时区分分段/生产。
我不希望显示有关我们网站的数据,假设它是全部生产的,实际上它的一部分是临时插槽。
答案 0 :(得分:3)
是 - Windows Azure诊断程序在生产和暂存插槽中运行。这两个插槽之间唯一真正的区别是DNS名称。
至于启用诊断,http://msdn.microsoft.com/en-us/library/gg433048.aspx有一个很好的起点。这提供了有关Windows Azure诊断的大量信息的链接。
我不相信诊断表数据(例如WadPerformanceCountersTable)中有一种方法可以区分生产和暂存插槽。您可以根据RowKey值进行过滤,我认为该值包含deploymentID,并且在生产和暂存之间会有所不同。
您还可以为生产和暂存插槽使用不同的存储帐户。这是一个可以在运行时完成的.cscfg的快速更新。
答案 1 :(得分:3)
收集Azure诊断数据时,登台槽也会发送 诊断数据到WadPerformanceCounters表?
是的,他们最终会在同一张桌子上。
每个部署都会获得唯一部署标识符,该标识符可以在仪表板上找到特定实例(生产或登台)
示例WadPerformanceCountersTable
表
为了查找与特定部署(登台或生产)相关的日志,您可以按部署标识符过滤表格,例如。
DeploymentId eq '1a2c09bea1234bc1b5e6edb99993ab21'
如果单个部署标识符的条目太多,则可以通过添加时间属性(在2013年1月5日午夜之后记录 DeploymentId'1a2c09bea1234bc1b5e6edb99993ab21'的所有条目来减少条目数),例如
DeploymentId eq '1a2c09bea1234bc1b5e6edb99993ab21' and Timestamp gt datetime'2013-01-05T00:00:00Z'
请注意,这不是过滤Azure表存储的最佳方式(正如Kiwi和Gaurav所指出的那样。
任何不包含PartitionKey
的查询都会导致全表扫描。由于WAD表中的PartitionKey
代表日期/时间值,我建议使用它而不是Timestamp
。您可能会发现Effective way of fetching diagnostics data帖子非常有用。
这应该可以帮助您找出每个环境(登台与生产)和特定部署的条目。