private void ReadTraceFile(string filename) { var traceFile = new TraceFile(); traceFile.InitializeAsReader(filename); var eventClassOrdinal = traceFile.GetOrdinal("EventClass"); var textDataOrdinal = traceFile.GetOrdinal("TextData"); //var databaseNameOrdinal = traceFile.GetOrdinal("DatabaseName"); var startTimeOrdinal = traceFile.GetOrdinal("StartTime"); var durationOrdinal = traceFile.GetOrdinal("Duration"); while (traceFile.Read()) { var eventClass = traceFile.GetString(eventClassOrdinal); // skip on start, end on stop if (eventClass.Equals("trace start", StringComparison.InvariantCultureIgnoreCase)) continue; if (eventClass.Equals("trace stop", StringComparison.InvariantCultureIgnoreCase)) break; var textData = traceFile.GetString(textDataOrdinal); //var databaseName = traceFile.GetString(databaseNameOrdinal); var startTime = traceFile.GetDateTime(startTimeOrdinal); var duration = traceFile.GetInt64(durationOrdinal)/1000; // duration is in microseconds // send the canonical query to the agent _agentConnect.Store(new Sample { //Method = databaseName, Uri = _parser.Rewrite(textData), ResponseTime = duration, Timestamp = startTime.Ticks }, Logger); DebugHelper.LogEntry(_eventLog, string.Format("Data sent: '{0}'", textData), EventLogEntryType.SuccessAudit); } traceFile.Close(); }