在windows azure Cloud Services中,存在 生产环境 环境和临时环境的概念 . 不幸的是,在上传性能计数器时,您不能(据我所知)指定单独的表存储帐户,因此所有环境(和部署)都集中在一起 .
我尝试使用DeploymentId(RoleEnviroment.DeploymentId)来提取特定的环境信息,但这会随每个部署而变化,因此它只返回自上次部署以来的性能计数器信息 .
在查询TableStorage表(WADPerformanceCountersTable)以获取性能计数器数据时,我正在使用TableQuery作为示例:
TableQuery<PerformanceCountersEntity> query = new TableQuery<PerformanceCountersEntity>().Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("DeploymentId", QueryComparisons.Equal, RoleEnvironment.DeploymentId),
TableOperators.And,
TableQuery.CombineFilters(
TableQuery.GenerateFilterConditionForDate("Timestamp", QueryComparisons.GreaterThan, new DateTimeOffset(earliestDate)),
TableOperators.And,
TableQuery.GenerateFilterCondition("Role", QueryComparisons.Equal, "ROLENAMEHERE")
)
)
);
那么,有没有办法让WADPerformanceCountersTable中的所有性能计数器进行 生产环境 (或暂存),而无需在执行TableQuery后对数据进行后处理?
Edit: 因此,显然您可以在Windows Azure管理门户中指定单独的存储帐户来解决我的问题 . 此设置位于存储帐户 - >配置 - >分段 - >诊断连接字符串中
2 回答
因此,首先..暂存部署插槽并不意味着您的QA或UAT或DEV环境 . 它意味着是一个部署槽,允许您部署到PROD而不需要采取刺激措施 . 这意味着您不应该尝试在一般基础上区分您的升级和 生产环境 .
现在,要将PROD与QA和DEV环境分开,可以将Azure诊断存储帐户配置为不同 . 如,为CSCFG文件的DEV版本提供DEV存储帐户 . 同样,为CSCFG文件的QA版本提供QA存储帐户 .
我很久以前就写了一篇关于如何管理Azure中可能有用的多个环境的博客:http://blog.paraleap.com/post/2011/09/13/Managing-environments-in-a-distributed-Azure-or-other-cloud-based-NET-solution
或者,只需跟上与每个环境结合并包含不同诊断存储帐户的不同CSCFG文件即可
您可以在Windows Azure管理门户中为 生产环境 /暂存指定单独的存储帐户 .
此设置位于存储帐户 - >配置 - >分段 - >诊断连接字符串中