2016-08-25 13 views
1

我已經創建了一個具有Azure診斷功能的服務結構集羣,並且當前將我的服務部署到該集羣中,該集羣功能正常。我在我的服務中有一個ETW EventSource,我想開始收集事件,因爲我的服務代碼已經使用此事件源來編寫我的服務相關事件。由於集羣已經啓用了Azure診斷功能,並且我的服務已經部署到該集羣中,我認爲使用此服務結構集羣中的事件源更新ETW提供程序非常簡單。這裏是導出的模板(只是部分證明了是相關的Azure診斷):如何使用PowerShell將ETW提供程序添加到現有服務結構羣集?

{ 
"properties": { 
    "publisher": "Microsoft.Azure.Diagnostics", 
    "type": "IaaSDiagnostics", 
    "typeHandlerVersion": "1.5", 
    "autoUpgradeMinorVersion": true, 
    "settings": { 
     "WadCfg": { 
      "DiagnosticMonitorConfiguration": { 
       "overallQuotaInMB": "50000", 
       "EtwProviders": { 
        "EtwEventSourceProviderConfiguration": [ 
         { 
          "provider": "Microsoft-ServiceFabric-Actors", 
          "scheduledTransferKeywordFilter": "1", 
          "scheduledTransferPeriod": "PT5M", 
          "DefaultEvents": { 
           "eventDestination": "ServiceFabricReliableActorEventTable" 
          } 
         }, 
         { 
          "provider": "Microsoft-ServiceFabric-Services", 
          "scheduledTransferPeriod": "PT5M", 
          "DefaultEvents": { 
           "eventDestination": "ServiceFabricReliableServiceEventTable" 
          } 
         }, 
         { 
          "provider": "Bb.ServiceFabric.Infrastructure.Container", 
          "scheduledTransferPeriod": "PT1M", 
          "DefaultEvents": { 
           "eventDestination": "ServiceFabricReliableServiceEventTable" 
          } 
         } 
        ], 
        "EtwManifestProviderConfiguration": [ 
         { 
          "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8", 
          "scheduledTransferLogLevelFilter": "Information", 
          "scheduledTransferKeywordFilter": "4611686018427387904", 
          "scheduledTransferPeriod": "PT5M", 
          "DefaultEvents": { 
           "eventDestination": "ServiceFabricSystemEventTable" 
          } 
         } 
        ] 
       } 
      } 
     }, 
     "StorageAccount": "sfdgsmsraghuplaygrou6827" 
    } 
}, 
"name": "VMDiagnosticsVmExt_vmNodeType0Name" 
} 

我想更新以下EtwProviders/EtwEventSourceProviderConfiguration包含以下部分(如MyCompany.MyServices.MyStatelessService是名我服務的EventSource的):

{ 
"provider": "MyCompany.MyServices.MyStatelessService", 
"scheduledTransferPeriod": "PT5M", 
"DefaultEvents": { 
    "eventDestination": "ServiceFabricReliableServiceEventTable" 
} 
} 

這裏是我的問題:

  1. 這是插入ETW提供商/的EventSource(FR的正確方法om我的服務)到現有的羣集(已啓用天青診斷)?
  2. 我可以使用powershell命令添加此事件源(作爲ETW事件源提供程序)嗎?
  3. 如果是這樣,確切的powershell命令是什麼(使用上述代碼片段中的所有信息)?

注意:我正在使用.net框架4.5.2。

回答

2

上述添加的配置看起來都不錯。請注意,對於ETWProviders而言,EventDestination不能包含連字符( - ),因此您不會這樣做。

要更新Windows Azure診斷(WAD)代理配置,可以在Visual Studio中使用PowerShell或Cloud Explorer。

對於前者,只需更新ARM模板並使用New-AzureRmResourceGroupDeployment cmdlet。請參閱此處獲取更多信息:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-diagnostics-how-to-setup-wad/#update-diagnostics-to-collect-and-upload-logs-from-new-eventsource-channels

用於在Visual Studio中使用Cloud Explorer。瀏覽到您的虛擬機縮放集(因爲這是保存WAD配置的Azure資源)。右鍵單擊並選擇更新診斷。在顯示的對話框中,您可以選擇上傳私人和公共配置文件。簡單地獲取包含{「WadCfg」:{}}元素的.json文檔,並將其上傳爲公共配置。

如果您需要更新專用配置指定存儲帳戶名和ACCESSKEY: { 「storageAccountName」: 「」, 「storageAccountKey」: 「」, 「storageAccountEndPoint」: 「https://core.windows.net」, }

希望這會有所幫助。 Mikkel

+0

在這種情況下,私人,公衆是什麼意思? – Raghu

+0

當我使用雲資源管理器上傳json文件時,出現以下錯誤:更新診斷擴展 - 虛擬機在處理擴展名「VMDiagnosticsVmExt_vmNodeType0Name」時報告失敗。錯誤消息:「無法讀取配置」。 \t Microsoft.Cct.StatusWindow。DispatchedStatusItemContainer – Raghu

+0

即使我下載了該文件並重新上傳同一文件而未做任何修改,我仍然收到此錯誤。 – Raghu

相關問題