20141220 clrh etw
TRANSCRIPT
![Page 1: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/1.jpg)
![Page 2: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/2.jpg)
仕事
個人活動
http://tanaka733.net
![Page 3: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/3.jpg)
Webサーバーのバックエンドで動くサービスの監視をしたい
• 障害時の調査用のログ• パフォーマンス監視用の数値
![Page 4: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/4.jpg)
ログ転送用のサービス• 転送先はGoogle BigQuery
• SLAB (Semantic Logging Application Block) を利用
• Out-of-Process モードでw3wpとは独立
• いわゆるWindowsサービスとして稼働
![Page 5: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/5.jpg)
- SQL like な問い合わせ (敷居低い)C#er には LINQ to BigQuery
- 高速フルスキャン (レベルを上げて物理で殴る)「1TB のデータを1秒でフルスキャンしたいなら、
5000台のディスクを並列スキャンしたらいいじゃない」
- ほぼリアルタイムなStreaming Insert
![Page 6: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/6.jpg)
SLABPatterns & Practices 提供のライブラリ
ETWを利用した高速なログ収集・転送機能
構造化ロギング
他に選択肢ないの…?Fluetnd はWindowsなので
logstash とかあるにはあるけど… (.NETがいい)
![Page 7: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/7.jpg)
AWS CloudWatch SDK
ETW with Channel + パフォーマンスカウンタ
![Page 8: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/8.jpg)
![Page 9: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/9.jpg)
![Page 10: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/10.jpg)
![Page 11: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/11.jpg)
![Page 12: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/12.jpg)
http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/27/event-tracing-for-windows-etw.aspx
![Page 13: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/13.jpg)
EventSoource
http://tech.tanaka733.net/entry/debugging-IIS-Custom-Http-Module-with-EventSource
[Event(1, Level = EventLevel.Informational,Message = "Debug: {0}", Version = 1)]
public void Debug(string message){
WriteEvent(1, message);}
![Page 14: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/14.jpg)
![Page 15: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/15.jpg)
Microsoft.Diagnostics.Tracing.EventSource
http://aerie.hatenablog.jp/entry/2014/09/09/165448
![Page 16: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/16.jpg)
![Page 17: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/17.jpg)
![Page 18: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/18.jpg)
パフォーマンス監視
![Page 19: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/19.jpg)
http://msdn.microsoft.com/ja-jp/library/cc437982%28v=vs.71%29.aspx
![Page 20: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/20.jpg)
# Create Collection$objCCDC = New-Object System.Diagnostics.CounterCreationDataCollection0..($counterName.count -1) `| %{
$objCCD = New-Object System.Diagnostics.CounterCreationData$objCCD.CounterName = $counterName[$_]$objCCD.CounterType = $counterType[$_]$objCCD.CounterHelp = $counterHelp[$_]$objCCDC.Add($objCCD) > $null
}$objCCDC | Format-Table -AutoSize | Out-String | %{[Console]::WriteLine($_)}
# Perfmon Execute[System.Diagnostics.PerformanceCounterCategory]::Create($categoryName, $categoryHelp, $categoryType, $objCCDC)
https://gist.github.com/tanaka-takayoshi/6a603d659a0a104ea0f1
![Page 21: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/21.jpg)
static void Write(long count, long time){
var retryCounter = new PerformanceCounter(categoryName,
countCounterName, "sample", false);var elaspedCounter =
new PerformanceCounter(categoryName, timeCounterName, "sample", false);
retryCounter.RawValue = count;elaspedCounter.RawValue = time;
}
![Page 22: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/22.jpg)
![Page 23: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/23.jpg)
![Page 24: 20141220 clrh etw](https://reader034.vdocuments.mx/reader034/viewer/2022051516/55a6a9631a28abf16a8b4673/html5/thumbnails/24.jpg)