Windows Azure WADPerformanceCounters для конкретной среды (не для развертывания)

В облачных службах 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, что решит мою проблему. Этот параметр находится в разделе «Учетная запись хранения» -> «Настроить» -> «Промежуточное состояние» -> «Строки диагностического подключения».


person MercifulGiraffe    schedule 30.04.2014    source источник
comment
Я не могу ответить на свой вопрос (пока), поэтому поместил решение в редактирование в конце моего вопроса.   -  person MercifulGiraffe    schedule 01.05.2014


Ответы (2)


Итак, прежде всего. Слот промежуточного развертывания не предназначен для вашей среды QA, UAT или DEV. Он предназначен для использования в качестве слота для развертывания, который позволяет вам развертывать PROD, не отключая его. Это означает, что вы не должны пытаться различать постановку и производство на общей основе.

Теперь, чтобы отделить PROD от сред QA и DEV, вы можете настроить учетную запись хранения службы диагностики Azure так, чтобы она отличалась. Например, укажите учетную запись хранения DEV для версии DEV файла CSCFG. Аналогичным образом укажите учетную запись хранения QA для версии QA файла CSCFG.

Я давно написал блог о том, как управлять несколькими средами в Azure, который может оказаться полезным: http://blog.paraleap.com/post/2011/09/13/Managing-environments-in-Распределенное-Azure-или-другое-облачное-решение-NET

В качестве альтернативы, достаточно просто следить за различными файлами CSCFG, которые связаны с каждой средой и содержат разные учетные записи диагностического хранилища.

person Igorek    schedule 30.04.2014
comment
Спасибо за ваш вклад, но разница между средами важна. Они используют разные виртуальные блоки, и если я проверяю (скажем) загрузку ЦП, меня не волнует промежуточная среда, только производство, поэтому я заинтересован в получении счетчиков производительности только для производства. Имеет ли это смысл, или я что-то упускаю? Я не использую промежуточную среду для тестирования — я просто хочу игнорировать счетчики производительности для этой среды. - person MercifulGiraffe; 01.05.2014

Вы можете указать отдельные учетные записи хранения для рабочей/промежуточной среды на портале управления Windows Azure.

Этот параметр находится в разделе «Учетная запись хранения» -> «Настроить» -> «Промежуточное состояние» -> «Строки диагностического подключения».

person MercifulGiraffe    schedule 01.05.2014