private static void InitializeMetrics() { // Second Level Cache Metrics OAGlimpseTraceListener.metrics[Constants.EvictAll] = OAGlimpseTraceListener.GetMetricsView(Constants.EvictAllCaption, MetricsType.SecondLevelCache); OAGlimpseTraceListener.metrics[Constants.EvictObjects] = OAGlimpseTraceListener.GetMetricsView(Constants.EvictObjectsCaption, MetricsType.SecondLevelCache); OAGlimpseTraceListener.metrics[Constants.EvictClasses] = OAGlimpseTraceListener.GetMetricsView(Constants.EvictClassesCaption, MetricsType.SecondLevelCache); // Transaction Metrics OAGlimpseTraceListener.metrics[Constants.TransactionBegin] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionBeginCaption, MetricsType.Transaction); OAGlimpseTraceListener.metrics[Constants.TransationCommit] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionCommitCaption, MetricsType.Transaction); OAGlimpseTraceListener.metrics[Constants.TransactionRollback] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionRollbackCaption, MetricsType.Transaction); OAGlimpseTraceListener.metrics[Constants.TransactionEnlist] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionEnlistCaption, MetricsType.Transaction); OAGlimpseTraceListener.metrics[Constants.TransactionDelist] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionDelistCaption, MetricsType.Transaction); // Connection Metrics OAGlimpseTraceListener.metrics[Constants.ConnectionOpen] = OAGlimpseTraceListener.GetMetricsView(Constants.ConnectionOpenCaption, MetricsType.Connection); OAGlimpseTraceListener.metrics[Constants.ConnectionClose] = OAGlimpseTraceListener.GetMetricsView(Constants.ConnectionCloseCaption, MetricsType.Connection); OAGlimpseTraceListener.metrics[Constants.ConnectionTransactionCommit] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionCommitCaption, MetricsType.Connection); OAGlimpseTraceListener.metrics[Constants.ConnectionTransactionRollback] = OAGlimpseTraceListener.GetMetricsView(Constants.TransactionRollbackCaption, MetricsType.Connection); // Command Metrics OAGlimpseTraceListener.metrics[Constants.CommandQuery] = OAGlimpseTraceListener.GetMetricsView(Constants.CommandQueryCaption, MetricsType.Command); OAGlimpseTraceListener.metrics[Constants.CommandUpdate] = OAGlimpseTraceListener.GetMetricsView(Constants.CommandUpdateCaption, MetricsType.Command); OAGlimpseTraceListener.metrics[Constants.CommandExecuteScalar] = OAGlimpseTraceListener.GetMetricsView(Constants.CommandExecuteScalarCaption, MetricsType.Command); OAGlimpseTraceListener.metrics[Constants.CommandExecuteNonQuery] = OAGlimpseTraceListener.GetMetricsView(Constants.CommandExecuteNonQueryCaption, MetricsType.Command); OAGlimpseTraceListener.metrics[Constants.CloseReader] = OAGlimpseTraceListener.GetMetricsView(Constants.CloseReader, MetricsType.Command); OAGlimpseTraceListener.metrics[Constants.AdoCommandBatchExecute] = OAGlimpseTraceListener.GetMetricsView(Constants.AdoCommandBatchExecuteCaption, MetricsType.Command); }
public override void TraceData(TraceEventCache eventCache, string source, TraceEventType eventType, int id, object data) { if (data == null || HttpContext.Current == null) { return; } OAEventLog eventLog = Mapper.DynamicMap <OAEventLog>(data); if (string.IsNullOrEmpty(eventLog.Name) || OAGlimpseTraceListener.metrics.ContainsKey(eventLog.Name) == false) { return; } if (string.Equals(eventLog.Name, Constants.CommandQuery) || string.Equals(eventLog.Name, Constants.CommandUpdate)) { eventLog.Params = OAGlimpseTraceListener.GetParameterInformation(data); eventLog.Offset = this.TimerStrategy.Start(); } else if (string.Equals(eventLog.Name, Constants.CloseReader)) { OAEventLog command = OAGlimpseTraceListener.GetList().FirstOrDefault(x => x.StatementId == eventLog.StatementId); if (command != null) { command.Duration = TimeSpan.FromTicks(eventLog.Timestamp.Ticks - command.Timestamp.Ticks); var toPublish = new OACommandExecuted(eventLog.Timestamp, command.Duration, Constants.SqlQueryExecuted, command.DisplayName) .AsTimedMessage(this.TimerStrategy.Stop(command.Offset)); toPublish.Duration = command.Duration; this.MessageBroker.Publish(toPublish); } return; } eventLog.DisplayName = OAGlimpseTraceListener.Metrics[eventLog.Name].Name; eventLog.Type = OAGlimpseTraceListener.Metrics[eventLog.Name].Type; OAGlimpseTraceListener.GetList().Add(eventLog); }
static OAGlimpseTraceListener() { OAGlimpseTraceListener.metrics = new Dictionary <string, MetricsView>(); OAGlimpseTraceListener.InitializeMetrics(); }