В облачных службах Windows Azure есть концепция производственной среды и промежуточной среды. К сожалению, вы не можете (насколько я могу судить) указать отдельные учетные записи хранения таблиц при загрузке счетчиков производительности, поэтому все среды (и развертывания) объединяются.
Я пытался использовать 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?
Изменить: Итак, очевидно, вы можете указать отдельные учетные записи хранения на портале управления Windows Azure, что решит мою проблему. Этот параметр находится в разделе «Учетная запись хранения» -> «Настроить» -> «Промежуточное состояние» -> «Строки диагностического подключения».