Upload
-
View
817
Download
2
Embed Size (px)
Citation preview
仕事
個人活動
http://tanaka733.net
Webサーバーのバックエンドで動くサービスの監視をしたい
• 障害時の調査用のログ• パフォーマンス監視用の数値
ログ転送用のサービス• 転送先はGoogle BigQuery
• SLAB (Semantic Logging Application Block) を利用
• Out-of-Process モードでw3wpとは独立
• いわゆるWindowsサービスとして稼働
- SQL like な問い合わせ (敷居低い)C#er には LINQ to BigQuery
- 高速フルスキャン (レベルを上げて物理で殴る)「1TB のデータを1秒でフルスキャンしたいなら、
5000台のディスクを並列スキャンしたらいいじゃない」
- ほぼリアルタイムなStreaming Insert
SLABPatterns & Practices 提供のライブラリ
ETWを利用した高速なログ収集・転送機能
構造化ロギング
他に選択肢ないの…?Fluetnd はWindowsなので
logstash とかあるにはあるけど… (.NETがいい)
AWS CloudWatch SDK
ETW with Channel + パフォーマンスカウンタ
http://blogs.msdn.com/b/jpwdkblog/archive/2011/12/27/event-tracing-for-windows-etw.aspx
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);}
Microsoft.Diagnostics.Tracing.EventSource
http://aerie.hatenablog.jp/entry/2014/09/09/165448
パフォーマンス監視
http://msdn.microsoft.com/ja-jp/library/cc437982%28v=vs.71%29.aspx
# 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
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;
}