2

В настоящее время мы работаем для реализации потопления диагностики потоков в Event концентраторы:Возможно ли использование ETW из кластера службы Fabricic расширения для Event Hubs?

enter image description here

Я добавил расширение диагностики к кластеру службы ткани с помощью шаблона ARM, и это в настоящее время вывода на хранение Azure , теперь мне нужно настроить раковину на концентратор Event.

Я после этого post, который описывает, как добавить SinksConfig узел в файл diagnostics.wadcfgx:

enter image description here

Представляется, однако, что это справедливо только для проектов Azure Cloud Service? В проекте облачных услуг, это выглядит достаточно просто добавить конфигурационный файл, перейдя к свойствам о роли и нажав включить Diagnostics, чтобы создать файл:

enter image description here

с проектом Service Fabric однако, это невозможно сделать это, поскольку нет понятия веб-роли и, похоже, нигде в свойствах проекта SF, где может быть активирована Диагностика/добавлен файл wadcfgx.

Я добавил расширение диагностики для виртуальных машин в масштабе набора, добавив следующее в шаблоне ARM:

enter image description here

Я могу видеть, где счет хранения (где ETW в настоящее время струилась to) здесь, но я не мог найти руководство о том, как указать Event Hub?

Я действительно задавался вопросом, было ли это только потому, что оно нигде не задокументировано, или потому, что это невозможно с Service Fabric. Это article, датированный в июле, говорится следующее:

enter image description here

Это показывает эти функциональные возможности могут или не могут быть в настоящее время доступны для обслуживания ткани.

Резюме

Есть 2 основные вопросы тогда:

  1. ли в настоящее время можно настроить потоковое ETW из кластера Service Fabric (с расширением Diagnostics включено) к концентратору событий? Если нет, то как далеко?
  2. Если возможно, как его настроить? Если он должен быть определен в шаблоне ARM, как указано выше, каков синтаксис для него?

ответ

1

После долгих проб и ошибок, похоже, есть два способа сделать это.

шаги от Visual Studio:

  1. Locate ваша шкала Набор в облаке Проводнике

  2. Выберите Diagnostics обновление

  3. Запись на текущий счет хранения используется
  4. Редактируйте свой общедоступный и Частные файлы конфигурации для приемников и концентратора Event Hub
  5. Обновление диагностических s и выбрать обновление на основе новых конфигурационных файлов

Общественности конфиг (только показывает SinksConfig узел для краткости)

{ 
"WadCfg": { 
    "DiagnosticMonitorConfiguration": { 

    *** config for performance counters and ETW *** 

     "SinksConfig": { 
      "Sink": [ 
      { 
       "name": "eventhub", 
       "EventHub": { 
       "Url": "https://myhub.servicebus.windows.net/mycompanyapplication", 
       "SharedAccessKeyName": "RootManageSharedAccessKey" 
      } 
      } 
     ] 
     } 
    }, 
    "StorageAccount": "<storageaccount>" 
} 

и частный конфиг:

{ 
    "storageAccountName": "<storageaccountname>", 
    "storageAccountKey": "<storageaccountkey>", 
    "storageAccountEndPoint": "https://core.windows.net", 
    "EventHub": { 
     "Url": "https://myhub.servicebus.windows.net/mycompanyapplication", 
     "SharedAccessKeyName": "RootManageSharedAccessKey", 
     "SharedAccessKey": "<sharedaccesskey>" 
    } 
} 

Или этого конфигурацию можно сделать частью вашего шаблона ARM, при этом json из общей конфигурации скопирован в узел «settings» ресурса VMDiagnosticsSettings (пример определения ресурса here) и приватную конфигурацию скопирован в узел «protectedsettings».

+0

Возможно ли писать только в Eventhub? В EtwEventSourceProviderConfiguration мы определили место назначения провайдера событий как таблицу хранения, а для других мы сконфигурировали eventhub. Но мы наблюдаем, что WAD выводит журналы из всех поставщиков событий в TableStorage. Это ожидаемое поведение? Для поставщиков, где мы сконфигурировали EventHub, можем ли мы предотвратить запись журналов в таблицу хранения? –

1

Посмотрите на пример this. Вацлав создал слушателей событий для различных типов магазинов. Убедитесь, что вы включили пакет Nuget 'Microsoft.Diagnostics.Tracing.EventSource' и замените 'System.Diagnostics.Tracing' на 'Microsoft.Diagnostics.Tracing' в ваших классах ServiceEventSource. Зарегистрируйте поставщиков событий в вашем шаблоне ARM, как показано на рисунке here.

+0

Благодарим вас за этот подход, который вы упомянули здесь, но то, что я хотел получить, заключалось в том, что Диагностика погрузилась в концентратор событий через конфигурацию, как описано здесь https://azure.microsoft.com/en-us/documentation/articles/event-hubs-streaming-azure-diags-data /, вместо того, чтобы иметь слушателя в самом решении, проблема в том, что пока не представляется возможным в Service Fabric –