20140329 modern logging and data analysis pattern on .NET

58

description

Global Windows Azure Boot Camp 2014 in Japan!! http://jazug.doorkeeper.jp/events/9216 でのセッション資料です

Transcript of 20140329 modern logging and data analysis pattern on .NET

Page 1: 20140329 modern logging and data analysis pattern on .NET
Page 2: 20140329 modern logging and data analysis pattern on .NET
Page 3: 20140329 modern logging and data analysis pattern on .NET

仕事

on AWS

個人活動

http://tech.tanaka733.net http://tech.en.tanaka733.net

@tanaka_733

Page 4: 20140329 modern logging and data analysis pattern on .NET

http://grani.jp/

Page 5: 20140329 modern logging and data analysis pattern on .NET
Page 6: 20140329 modern logging and data analysis pattern on .NET

ログ収集の目的

Page 7: 20140329 modern logging and data analysis pattern on .NET

異常検知

障害発生時の調査材料

パフォーマンス改善

ビジネス上の目的が達成されたかの判断材料

Page 8: 20140329 modern logging and data analysis pattern on .NET

Windows環境およびGraniにおける現状

Page 9: 20140329 modern logging and data analysis pattern on .NET

普通 ASP.NET MVC 5

1万

1億

100台

Page 10: 20140329 modern logging and data analysis pattern on .NET

using

Page 11: 20140329 modern logging and data analysis pattern on .NET
Page 12: 20140329 modern logging and data analysis pattern on .NET
Page 13: 20140329 modern logging and data analysis pattern on .NET
Page 14: 20140329 modern logging and data analysis pattern on .NET

ウェブサーバー

Page 15: 20140329 modern logging and data analysis pattern on .NET
Page 16: 20140329 modern logging and data analysis pattern on .NET

Windowsサポート

強力なクエリ

Page 17: 20140329 modern logging and data analysis pattern on .NET

http://www.sumologic.com/product/solutions/application-management/

Page 18: 20140329 modern logging and data analysis pattern on .NET
Page 19: 20140329 modern logging and data analysis pattern on .NET

何か解はないのか…

Page 20: 20140329 modern logging and data analysis pattern on .NET

Semantic Logging

Page 21: 20140329 modern logging and data analysis pattern on .NET
Page 22: 20140329 modern logging and data analysis pattern on .NET
Page 23: 20140329 modern logging and data analysis pattern on .NET
Page 24: 20140329 modern logging and data analysis pattern on .NET

ETW

EventSource

クラスSLAB

Page 25: 20140329 modern logging and data analysis pattern on .NET

http://msdn.microsoft.com/ja-jp/magazine/cc163437.aspx

Page 26: 20140329 modern logging and data analysis pattern on .NET
Page 27: 20140329 modern logging and data analysis pattern on .NET
Page 28: 20140329 modern logging and data analysis pattern on .NET
Page 29: 20140329 modern logging and data analysis pattern on .NET

ライブラリの追加なし

Page 30: 20140329 modern logging and data analysis pattern on .NET
Page 31: 20140329 modern logging and data analysis pattern on .NET

Event Sink

アプリケーションEventSourceを継承した自前のイベントソース

ObservableEventListener Event Sink

http://msdn.microsoft.com/en-us/library/dn440729(v=pandp.60).aspx#sec2

Page 32: 20140329 modern logging and data analysis pattern on .NET

http://msdn.microsoft.com/en-us/library/dn440729(v=pandp.60).aspx#sec2

Event Sink

アプリケーションEventSourceを継承した自前のイベントソース

Event Sink

ETW

Trace Event Service

アプリ本体

ロギングアプリ

Page 33: 20140329 modern logging and data analysis pattern on .NET
Page 34: 20140329 modern logging and data analysis pattern on .NET

[EventSource(Name = "Grani")]public class GraniEventSource : EventSource{

private readonly static GraniEventSource log = new GraniEventSource();

private GraniEventSource() { }

public static GraniEventSource Log { get { return log; } }

[Event(1, Message = "Application Failure: {0}",Level = EventLevel.Critical, Keywords = Keywords.Diagnostic)]internal void Failure(string message){

WriteEvent(1, message);}

}

Page 35: 20140329 modern logging and data analysis pattern on .NET
Page 36: 20140329 modern logging and data analysis pattern on .NET

http://blogs.msdn.com/b/agile/archive/2014/03/27/semantic-logging-application-block-now-supports-

activity-tracing-and-elasticsearch.aspx

Page 37: 20140329 modern logging and data analysis pattern on .NET

http://go.microsoft.com/fwlink/p/?LinkID=290903

Page 38: 20140329 modern logging and data analysis pattern on .NET

public class S3Sink : IObserver<EventEntry>, IDisposable{

public void OnNext(EventEntry value){

//ログ1件を処理する}

}

EnterpriseLibrary.SemanticLogging

BufferedEventPublisher<EventEntry>

Page 39: 20140329 modern logging and data analysis pattern on .NET

<?xml version="1.0" encoding="utf-8" ?><configuration >

<traceEventService/><sinks>

<consoleSink name="console" ><sources>

<eventSource name="Grani" level="LogAlways"/></sources>

</consoleSink><customSink name="s3redissink" type ="Grani.EventCollector.S3Sink.S3Sink, Grani.EventCollector.S3Sink">

<sources><eventSource name="Grani" level="LogAlways"/>

</sources><parameters>

<parameter name="bucketName" type="System.String" value="green-eventtrace-logs" /></parameters>

</customSink></sinks>

</configuration>

Page 40: 20140329 modern logging and data analysis pattern on .NET

Fluentd on Linux

Page 41: 20140329 modern logging and data analysis pattern on .NET
Page 42: 20140329 modern logging and data analysis pattern on .NET
Page 43: 20140329 modern logging and data analysis pattern on .NET
Page 44: 20140329 modern logging and data analysis pattern on .NET
Page 45: 20140329 modern logging and data analysis pattern on .NET

SLAB による

分析基盤の構築

Page 46: 20140329 modern logging and data analysis pattern on .NET

HDInsight (Hadoop)Storage BLOB

Page 47: 20140329 modern logging and data analysis pattern on .NET

Amazon EC2Amazon S3 Amazon Redshift

AWS Data Pipeline

Page 48: 20140329 modern logging and data analysis pattern on .NET
Page 49: 20140329 modern logging and data analysis pattern on .NET
Page 50: 20140329 modern logging and data analysis pattern on .NET

分析ツールの使い分け

Page 51: 20140329 modern logging and data analysis pattern on .NET

http://www.tableausoftware.com/ja-jp

Page 52: 20140329 modern logging and data analysis pattern on .NET
Page 53: 20140329 modern logging and data analysis pattern on .NET
Page 54: 20140329 modern logging and data analysis pattern on .NET

await

Page 55: 20140329 modern logging and data analysis pattern on .NET

http://channel9.msdn.com/posts/Introducing-Semantic-Logging

http://channel9.msdn.com/Events/Build/2013/3-336

Page 56: 20140329 modern logging and data analysis pattern on .NET

http://msdn.microsoft.com/en-us/library/dn440729(v=pandp.60).aspx

http://slab.codeplex.com/

http://blogs.msdn.com/b/agile/archive/2014/03/27/semantic-logging-application-block-now-supports-activity-tracing-and-elasticsearch.aspx

Page 57: 20140329 modern logging and data analysis pattern on .NET

http://msdn.microsoft.com/ja-jp/magazine/cc163437.aspx

http://blogs.msdn.com/b/dotnet/archive/2014/01/30/microsoft-diagnostics-tracing-eventsource-rtms.aspx?Redirected=true

Page 58: 20140329 modern logging and data analysis pattern on .NET