Windows Azure 診斷 (WAD) 擴充功能組態架構版本和歷程記錄
本文提供隨附於 Microsoft Azure SDK 一部分的 Windows Azure 診斷 擴充功能版本歷程記錄。
Azure SDK 和診斷版本出貨圖表
Azure SDK 版本 | 診斷擴充功能版本 | Model |
---|---|---|
1.x | 1.0 | 外掛程式 |
2.0 - 2.4 | 1.0 | 外掛程式 |
2.5 | 1.2 | 擴充功能 |
2.6 | 1.3 | " |
2.7 | 1.4 | " |
2.8 | 1.5 | " |
2.9 | 1.6 | " |
2.96 | 1.7 | " |
2.96 | 1.8 | " |
2.96 | 1.8.1 | " |
2.96 | 1.9 | " |
2.96 | 1.11 | " |
2.96 | 1.21 | " |
Azure 診斷 1.0 版第一次隨附於外掛程式模型中,這表示當您安裝 Azure SDK 時,您會獲得隨附的 Azure 診斷版本。
從 SDK 2.5 (診斷 1.2 版)開始,Azure 診斷會移至擴充模型。 使用新功能的工具僅適用於較新的 Azure SDK,但任何使用 Azure 診斷的服務都會直接從 Azure 挑選最新的出貨版本。 例如,任何仍在使用 SDK 2.5 的人都會載入上表中顯示的最新版本,而不論它們是否使用較新的功能。
架構索引
不同版本的 Azure 診斷會使用不同的組態架構。 架構 1.0 和 1.2 已被取代。 如需 1.3 版和更新版本的詳細資訊,請參閱 診斷 1.3 和更新版本的組態架構
版本歷程記錄
診斷擴充功能 1.11
已新增 Azure 監視器接收的支援。 此接收僅適用於性能計數器。 可讓您將 VM、VMSS 或雲端服務上收集的性能計數器傳送至 Azure 監視器作為自定義計量。 Azure 監視器接收支援:
- 透過 Azure 監視器計量 API 擷取傳送至 Azure 監視器的所有性能計數器。
- 透過 Azure 監視器中新的 整合警示體驗 ,針對傳送至 Azure 監視器的所有性能計數器發出警示
- 將性能計數器中的通配符運算子視為計量上的「實例」維度。 例如,如果您收集了 “LogicalDisk≠/DiskWrites/sec” 計數器,您就能夠篩選並分割 「實例」維度,以繪製或警示每個邏輯磁碟的 Disk Writes/sec (C:、D:等等)
在診斷擴充功能組態中將 Azure 監視器定義為新的接收
"SinksConfig": {
"Sink": [
{
"name": "AzureMonitorSink",
"AzureMonitor": {}
},
]
}
<SinksConfig>
<Sink name="AzureMonitorSink">
<AzureMonitor/>
</Sink>
</SinksConfig>
接下來,您可以將性能計數器設定為路由傳送至 Azure 監視器接收。
"PerformanceCounters": {
"scheduledTransferPeriod": "PT1M",
"sinks": "AzureMonitorSink",
"PerformanceCounterConfiguration": [
{
"counterSpecifier": "\\Processor(_Total)\\% Processor Time",
"sampleRate": "PT1M",
"unit": "percent"
}
]
},
<PerformanceCounters scheduledTransferPeriod="PT1M", sinks="AzureMonitorSink">
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />
</PerformanceCounters>
診斷擴充功能 1.9
已新增 Docker 支援。
診斷擴充功能 1.8.1
可以在私人設定中指定 SAS 令牌,而不是記憶體帳戶金鑰。如果提供SAS令牌,則會忽略記憶體帳戶金鑰。
{
"storageAccountName": "diagstorageaccount",
"storageAccountEndPoint": "https://core.windows.net",
"storageAccountSasToken": "{sas token}",
"SecondaryStorageAccounts": {
"StorageAccount": [
{
"name": "secondarydiagstorageaccount",
"endpoint": "https://core.windows.net",
"sasToken": "{sas token}"
}
]
}
}
<PrivateConfig>
<StorageAccount name="diagstorageaccount" endpoint="https://core.windows.net" sasToken="{sas token}" />
<SecondaryStorageAccounts>
<StorageAccount name="secondarydiagstorageaccount" endpoint="https://core.windows.net" sasToken="{sas token}" />
</SecondaryStorageAccounts>
</PrivateConfig>
診斷擴充功能 1.8
已將記憶體類型新增至 PublicConfig。 StorageType 可以是 Table、 Blob、 TableAndBlob。 數據表 是預設值。
{
"WadCfg": {
},
"StorageAccount": "diagstorageaccount",
"StorageType": "TableAndBlob"
}
<PublicConfig>
<WadCfg />
<StorageAccount>diagstorageaccount</StorageAccount>
<StorageType>TableAndBlob</StorageType>
</PublicConfig>
診斷擴充功能 1.7
已新增路由至 EventHub 的功能。
診斷擴充功能 1.5
已新增 sinks 元素,以及將診斷數據傳送至 Application Insights 的功能,讓您更輕鬆地診斷整個應用程式以及系統和基礎結構層級的問題。
Azure SDK 2.6 和診斷延伸模組 1.3
針對 Visual Studio 中的雲端服務專案,已進行下列變更。 (這些變更也適用於更新版本的 Azure SDK。
- 本機模擬器現在支援診斷。 這項變更表示您可以在 Visual Studio 中開發和測試時,收集診斷數據,並確保應用程式正在建立正確的追蹤。 當您使用 Azure 儲存體 模擬器在 Visual Studio 中執行雲端服務專案時,連接字串
UseDevelopmentStorage=true
啟用診斷數據收集。 所有診斷數據都會收集在 [開發記憶體] 儲存體帳戶中。 - 診斷記憶體帳戶 連接字串 (Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString) 會再次儲存在服務組態 (.cscfg) 檔案中。 在 Azure SDK 2.5 中,診斷記憶體帳戶是在 diagnostics.wadcfgx 檔案中指定。
連接字串 在 Azure SDK 2.4 和更早版本中的運作方式,以及它在 Azure SDK 2.6 和更新版本中的運作方式有一些顯著差異。
- 在 Azure SDK 2.4 和更早版本中,診斷外掛程式在運行時間使用 連接字串,以取得用於傳輸診斷記錄的記憶體帳戶資訊。
- 在 Azure SDK 2.6 和更新版本中,Visual Studio 會在發布期間,使用適當的記憶體帳戶資訊來設定診斷擴充功能 連接字串。 連接字串 可讓您為Visual Studio在發佈時所使用的不同服務組態定義不同的記憶體帳戶。 不過,因為診斷外掛程式已無法使用(在 Azure SDK 2.5 之後),因此 .cscfg 檔案本身無法啟用診斷延伸模組。 您必須透過Visual Studio或PowerShell等工具個別啟用擴充功能。
- 為了簡化使用PowerShell設定診斷延伸模組的程式,Visual Studio的套件輸出也包含每個角色之診斷擴充功能的公用組態 XML。 Visual Studio 會使用診斷 連接字串 來填入公用組態中存在的記憶體帳戶資訊。 公用組態檔會在 Extensions 資料夾中建立,並遵循模式
PaaSDiagnostics.<RoleName>.PubConfig.xml
。 任何以 PowerShell 為基礎的部署都可以使用此模式,將每個設定對應至角色。 - .cscfg 檔案中的 連接字串 也會由 Azure 入口網站 用來存取診斷數據,使其可以出現在 [監視] 索引卷標中。需要 連接字串,才能設定服務,以在入口網站中顯示詳細資訊監視數據。
將項目移轉至 Azure SDK 2.6 和更新版本
從 Azure SDK 2.5 移轉至 Azure SDK 2.6 或更新版本時,如果您已在 .wadcfgx 檔案中指定診斷記憶體帳戶,則會保留該帳戶。 若要利用針對不同記憶體組態使用不同的記憶體帳戶的彈性,您必須手動將 連接字串 新增至您的專案。 如果您要將專案從 Azure SDK 2.4 或更早版本移轉至 Azure SDK 2.6,則會保留診斷 連接字串。 不過,請注意在 Azure SDK 2.6 中如何處理 連接字串 的變更,如上一節中所指定。
Visual Studio 如何決定診斷儲存體帳戶
- 如果在 .cscfg 檔案中指定診斷 連接字串,Visual Studio 會在發佈時使用它來設定診斷延伸模組,以及在封裝期間產生公用組態 xml 檔案時。
- 如果未在 .cscfg 檔案中指定任何診斷 連接字串,則 Visual Studio 會回復為使用 .wadcfgx 檔案中指定的記憶體帳戶,在發佈時設定診斷擴充功能,並在封裝時產生公用組態 xml 檔案。
- 在 .cscfg 檔案中的診斷連接字串的優先順序高於 .wadcfgx 檔案中的儲存體帳戶。 如果 .cscfg 檔案中指定了診斷 連接字串,則 Visual Studio 會使用該診斷,並忽略 .wadcfgx 中的記憶體帳戶。
「更新開發記憶體 連接字串...」複選框嗎?
發佈至 Microsoft Azure 時,使用 Microsoft Azure 儲存體帳戶認證來更新診斷和快取的 [更新開發記憶體] 連接字串 複選框可讓您使用發佈期間指定的 Azure 記憶體帳戶更新任何開發記憶體帳戶 連接字串。
例如,假設您選擇此選項,而診斷 連接字串 指定 UseDevelopmentStorage=true
。 當您將專案發佈至 Azure 時,Visual Studio 會自動使用您在 [發佈精靈] 中指定的記憶體帳戶來更新診斷 連接字串。 不過,如果實際記憶體帳戶已指定為診斷 連接字串,則會改用該帳戶。
Azure SDK 2.4 和更早版本與 Azure SDK 2.5 和更新版本之間的診斷功能差異
如果您要將專案從 Azure SDK 2.4 升級至 Azure SDK 2.5 或更新版本,您應該記住下列診斷功能差異。
- 設定 API 已被取代 – Azure SDK 2.4 或較舊版本提供診斷程式設計設定,但在 Azure SDK 2.5 和更新版本中已被取代。 如果您的診斷組態目前在程式代碼中定義,您必須在移轉專案中從頭重新設定這些設定,以便診斷繼續運作。 Azure SDK 2.4 的診斷組態檔是 diagnostics.wadcfg,以及適用於 Azure SDK 2.5 和更新版本的 diagnostics.wadcfgx。
- 雲端服務應用程式的診斷只能在角色層級設定,而不是在實例層級設定。
- 每次部署應用程式時,診斷設定都會更新 – 如果您從 [伺服器總管] 變更診斷設定,然後重新部署您的應用程式,這可能會導致同位問題。
- 在 Azure SDK 2.5 和更新版本中,損毀傾印是在診斷組態檔中設定,而不是在程式碼中設定 – 如果您已在程式代碼 中設定損毀傾印,您必須手動將設定從程式代碼傳輸至組態檔,因為損毀傾印不會在移轉至 Azure SDK 2.6 期間傳輸。