為了支援cookdown,我設計了一個自定義datasource,定義如下,簡單的來說就是定期執行前面文章中說到的powershell 腳本,這個腳本輸出多個Property bags ,為了複用module,我加了一個conditionDetection,使用正規表達式對property bag 進行過濾,這樣隻需要簡單的過濾特定屬性,就可以監控不同的屬性值。
直接上圖吧。DS定義
<a href="http://s3.51cto.com/wyfs02/M02/86/BD/wKiom1fJA4jStupYAAD7X0nBSIg414.png"></a>
下面是Monitor配置,鑒于以上DS的設計,我可以使用VSAE中的Snippet Template 很快生成多個Monitor
我的Monitor type 定義
<a href="http://s3.51cto.com/wyfs02/M00/86/BD/wKiom1fJA4nQQEz0AAFKapatL8A490.png"></a>
Snippet Data
<a href="http://s3.51cto.com/wyfs02/M00/86/BC/wKioL1fJA4qwNYhoAAGwAu59j-Q346.png"></a>
生成的Monitor 的XML代碼之一。
<a href="http://s3.51cto.com/wyfs02/M01/86/BD/wKiom1fJA4uRCsv3AAD3tbv7yvQ228.png"></a>
其實以上的DS設計時使用MatchedWildCard可以使用通配符比對有另外一個私心的。因為我了解到System.Performance.DataGenericMapper支援把多個Property Bags 一次性轉換成多個Performance data,是以我的這個Datasource 如果在對屬性進行比較時,輸入*,那麼傳回的就是所有監控的屬性的值,然後通過一個System.Performance.DataGenericMapper 全部轉成perf data,然後一個rule 就可以直接寫入DB,DWDB。想法是好的,代碼能編譯,導入MP後也不出錯。
但是當我使用performance widget 時,隻看到一個性能計數器的選項。我可是有8個計數器的。
<a href="http://s3.51cto.com/wyfs02/M00/86/BD/wKioL1fJA4zAyQ-6AADhGwuzesY267.png"></a>
查了下搜尋引擎,說perf Widget 使用的資料是DWDB裡面的,我看看有沒有資料。
<a href="http://s3.51cto.com/wyfs02/M02/86/BD/wKiom1fJA43wNQegAAIty8Q5ymY744.png"></a>
性能資料寫入DWDB時,CounterName全變成一樣了,但是Value正确。我以Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData batching 為關鍵字進行搜尋,找到下面這麼一個連結。
多年巨坑依舊。
<a href="http://www.systemcentercentral.com/forums-archive/topic/multi-value-rule-data-not-published-to-data-warehouse/">http://www.systemcentercentral.com/forums-archive/topic/multi-value-rule-data-not-published-to-data-warehouse/</a>
SCOM Console裡的perf view資料使用的是OperationMangerDB中的資料,而Perf Widget 使用的OperationmangerDWDB中的資料,而Microsoft.SystemCenter.CollectPerformanceData寫入OperationMangerDB的時候支援一次性寫入多個perf data,而Microsoft.SystemCenter.DataWarehouse.PublishPerformanceData寫入OperationmangerDWDB卻不支援。
我原來的rule 寫成這樣,看來要拆成多個了。
<a href="http://s3.51cto.com/wyfs02/M02/86/BD/wKioL1fJA47AvUHIAAIq3RxKmbY341.png"></a>
好在DS當時設計的比較好,拆不是問題。使用snippet template 很快可以搞定。
<a href="http://s3.51cto.com/wyfs02/M00/86/BD/wKioL1fJA5HBKU6rAATWH3aU2GM379.png"></a>
<a href="http://s3.51cto.com/wyfs02/M01/86/BD/wKioL1fJA5SAIVDiAAPs1Rulhms563.png"></a>
<a href="http://s3.51cto.com/wyfs02/M02/86/BD/wKioL1fJA5fi27huAAFNTE9eMeY086.png"></a>
<a href="http://s3.51cto.com/wyfs02/M01/86/BD/wKioL1fJA5egLQH9AAAhJrSl7-g357.png"></a>
<a href="http://s3.51cto.com/wyfs02/M01/86/BD/wKiom1fJA5jBGin_AAD5bmzyH28730.png"></a>
這樣很快就生成8個Rule。
<a href="http://s3.51cto.com/wyfs02/M02/86/BD/wKiom1fJA5mw8dsfAAI33Ghr530298.png"></a>
版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任
本文轉自 yoke88 51CTO部落格,原文連結:http://blog.51cto.com/yoke88/1845543