Диагностика Azure - время выполнения по сравнению с wadcfg - PullRequest
4 голосов
/ 20 марта 2012

Я пытаюсь понять различные способы настройки диагностики в Windows Azure.До сих пор я установил Diagnics.wadcfg, который должным образом используется в Azure, когда я получаю его содержимое в блобе xml, хранящемся в Diagnostics, в контейнере wad-control-container (и таблицы обновляются с правильной частотой обновления).

Теперь я хотел бы переопределить некоторые поля из cscfg, чтобы увеличить период передачи журнала, например, для всех экземпляров (без необходимости обновления каждого файла wad-control-container, который будет удален в случаеэкземпляр утилизации кстати).Поэтому в моем WebRole.Run () я получаю параметр из RoleEnvironment.GetConfigurationSettingValue () и пытаюсь применить его к текущей конфигурации;но моя проблема в том, что значения, которые я читаю из DiagnosticMonitor.GetDefaultInitialConfiguration (), не соответствуют содержимому моего Diagnics.wadcfg, и установка новых значений там, похоже, не имеет никакого эффекта.

Может кто-нибудьобъясните связь между тем, что взято из Diagnostics.wadcfg и значения, которые вы можете установить во время выполнения?

Спасибо

Ответы [ 3 ]

3 голосов
/ 20 марта 2012

GetDefaultInitialConfiguration () не вернет вам ваши текущие настройки, так как в его названии указана конфигурация по умолчанию .Вы должны использовать метод GetCurrentConfiguration , если вам нужно использовать имеющуюся конфигурацию.

Однако, если вам нужно просто увеличить передачу, вы можете использовать, например, Диспетчер диагностики Azure от Cerebrata для быстрого запуска передачи ролей по требованию.

Вы также можете использовать командлеты управления диагностикой Windows Azure для powershell.Проверьте эту статью .

Надеюсь, это поможет!

2 голосов
/ 10 ноября 2012

Чтобы использовать значения в файле wadcfg, для доступа к текущей DiagnosticsMonitorConfiguration можно использовать следующий код:

var cloudStorageAccount = CloudStorageAccount.Parse(
            RoleEnvironment.GetConfigurationSettingValue(WADStorageConnectionString));
var roleInstanceDiagnosticManager = cloudStorageAccount.CreateRoleInstanceDiagnosticManager(
            RoleEnvironment.DeploymentId,
            RoleEnvironment.CurrentRoleInstance.Role.Name,
            RoleEnvironment.CurrentRoleInstance.Id);
var dmc = roleInstanceDiagnosticManager.GetCurrentConfiguration();
// Set different logging settings
dmc.Logs....
dmc.PerformanceCounters....
// don't forget to update
roleInstanceDiagnosticManager.SetCurrentConfiguration(dmc);
0 голосов
/ 29 января 2014

Код Бориса Липшица теперь не работает ( Срыв изменений в Windows Azure Diagnostics (SDK 2.0) ): «Конструктор DeploymentDiagnosticManager теперь принимает строку подключения к учетной записи хранения вместо объекта CloudStorageAccount".

Обновлен код для SDK 2.0 +:

    var roleInstanceDiagnosticManager = new RoleInstanceDiagnosticManager(
// Add StorageConnectionString to your role settings for this to work
                CloudConfigurationManager.GetSetting("StorageConnectionString"), 
                RoleEnvironment.DeploymentId,
                RoleEnvironment.CurrentRoleInstance.Role.Name,
                RoleEnvironment.CurrentRoleInstance.Id);
    var dmc = roleInstanceDiagnosticManager.GetCurrentConfiguration();
    // Set different logging settings
    dmc.Logs....
    dmc.PerformanceCounters....
    // don't forget to update
    roleInstanceDiagnosticManager.SetCurrentConfiguration(dmc)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...