2012-09-07 49 views
1

我正在使用Windows Azure託管我的python項目,並試圖啓用沒有良好結果的診斷。在不使用.NET的情況下在Windows Azure中啓用診斷

由於我使用python而不是.NET,我實際上可以配置它的唯一方法是通過配置文件。

下面我的配置文件:

ServiceDefinition.csdef中

... 
<Imports> 
    <Import moduleName="Diagnostics" /> 
</Imports> 
... 

ServiceConfiguration.Cloud.cscfg

.... 
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=<my-account-name>;AccountKey=<my-account-key"/> 
.... 

diagnostics.wadcfg

<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration" 
     configurationChangePollInterval="PT10M" 
     overallQuotaInMB="1200"> 

    <DiagnosticInfrastructureLogs bufferQuotaInMB="100" 
     scheduledTransferLogLevelFilter="Warning" 
     scheduledTransferPeriod="PT5M" /> 

    <Logs bufferQuotaInMB="200" 
     scheduledTransferLogLevelFilter="Warning" 
     scheduledTransferPeriod="PT5M" /> 

    <Directories bufferQuotaInMB="600" 
     scheduledTransferPeriod="PT5M"> 

     <CrashDumps container="wad-crash-dumps" directoryQuotaInMB="200" /> 
     <FailedRequestLogs container="wad-frq" directoryQuotaInMB="200" /> 
     <IISLogs container="wad-iis" directoryQuotaInMB="200" /> 
    </Directories> 
    <WindowsEventLog bufferQuotaInMB="200" 
     scheduledTransferLogLevelFilter="Warning" 
     scheduledTransferPeriod="PT5M"> 

     <DataSource name="System!*" /> 
    </WindowsEventLog> 
</DiagnosticMonitorConfiguration> 

在診斷管理器中,我實際上看不到任何數據。

謝謝。

回答

1

請問您的diagnostics.wadcfg位於何處?對於常規輔助角色,diagnostics.wadcfg必須位於根文件夾中,並且由於您的項目中沒有輔助角色模塊,因此角色文件夾架構的位置非常重要。確保在Python應用程序中具有與普通工作者角色完全相同的文件夾結構,然後將diagnostics.wadcfg放入角色根文件夾中。 (將該信息添加回您的問題以進行驗證)

您是否看到診斷配置XML是在* .Diagnostics.ConnectionString中配置的Windows Azure Blob存儲中創建的。這是一個檢查,它表明Azure角色中的診斷組件能夠讀取提供的配置,並且可以在目標blob存儲中創建配置XML(相同的Azure存儲將用於寫入日誌Azure表存儲)。請確認。

最後您的diagnostics.wadcfg需要更多的工作。由於這是一個非.net輔助角色,因此您已配置IIS日誌記錄(您是否真的有IIS在輔助角色中運行?),並且系統事件日誌計劃傳輸「僅警告」,因此如果沒有警告。最後,日誌傳輸時間設置爲5分鐘,這在測試期間很長。

什麼,我可以建議如下,以測試診斷是否工作:

  • 刪除IIS日誌,如果你沒有IIS運行在Azure VM
  • 替換從系統事件日誌數據源*到應用程序!*並將篩選器設置爲信息級別
  • 將日誌傳輸時間更改爲少於幾分鐘
  • 在開發結構中運行與連接到實際Azure存儲的診斷連接字符串完全相同的代碼。
  • 添加自定義事件日誌在您的機器,看它們是否在限制時間內轉移到Azure Table中存儲與特定表創建

以上應該可以幫助你解決問題。

+0

非常感謝。我的部署腳本按預期創建了文件夾結構,除此之外,一切正常。我的diagnostics.wadcfg文件位於根文件夾下,與web.conf文件位於同一級別。我會仔細檢查並更改診斷文件,如您所說,我會通知您。再次感謝! –

+0

更新:我無法在Windows Azure Blob存儲中看到任何診斷配置XML,因此這意味着Azure找不到該文件或者它沒有正確書寫。我嘗試將diagnostics.wadcfg移入WebRole/bin文件夾,但沒有任何更改。另外,我嘗試根據您的建議調整值。我實際上使用IIS,我對系統日誌很感興趣,因爲我的實例似乎很奇怪。沒什麼幫助。 –

相關問題