public void SqlTrace_WithtUriExcluded() { //Arrange var attribDefs = Mock.Create <IAttributeDefinitions>(); var attribDefSvc = new AttributeDefinitionService((f) => attribDefs); var sqlTraceMaker = new SqlTraceMaker(_configurationService, attribDefSvc, _databaseService); var attribFilter = Mock.Create <IAttributeFilter>(); Mock.Arrange(() => attribDefs.RequestUri) .Returns(AttributeDefinitionBuilder.CreateString("request.uri", AttributeClassification.AgentAttributes) .AppliesTo(AttributeDestinations.TransactionEvent) .AppliesTo(AttributeDestinations.ErrorEvent) .AppliesTo(AttributeDestinations.ErrorTrace) .AppliesTo(AttributeDestinations.TransactionTrace) .AppliesTo(AttributeDestinations.SqlTrace, false) .WithDefaultOutputValue("/unknown") .Build(attribFilter)); var uri = "sqlTrace/Uri"; var commandText = "Select * from Table1"; var duration = TimeSpan.FromMilliseconds(500); var transaction = BuildTestTransaction(uri: uri, attribDefs: attribDefs); var transactionMetricName = new TransactionMetricName("WebTransaction", "Name"); var datastoreSegment = BuildSegment(DatastoreVendor.MSSQL, "Table1", commandText, new TimeSpan(), duration, null, null, null, "myhost", "myport", "mydatabase"); //Act var sqlTrace = sqlTraceMaker.TryGetSqlTrace(transaction, transactionMetricName, datastoreSegment); //Assert Assert.IsNotNull(sqlTrace); Assert.AreEqual("<unknown>", sqlTrace.Uri); }
public void SetUp() { _databaseService = Mock.Create <IDatabaseService>(); Mock.Arrange(() => _databaseService.GetObfuscatedSql(Arg.AnyString, Arg.IsAny <DatastoreVendor>())).Returns((string sql) => sql); _configurationService = Mock.Create <IConfigurationService>(); Mock.Arrange(() => _configurationService.Configuration.InstanceReportingEnabled).Returns(true); Mock.Arrange(() => _configurationService.Configuration.DatabaseNameReportingEnabled).Returns(true); _attribDefSvc = new AttributeDefinitionService((f) => new AttributeDefinitions(f)); _sqlTraceMaker = new SqlTraceMaker(_configurationService, _attribDefSvc, _databaseService); _errorService = new ErrorService(_configurationService); }
public void multiple_sqlId_does_not_has_9_digits_number() { var transactionMetadata = new TransactionMetadata(); var name = TransactionName.ForWebTransaction("foo", "bar"); var metadata = transactionMetadata.ConvertToImmutableMetadata(); var duration = TimeSpan.FromSeconds(1); var guid = Guid.NewGuid().ToString(); var transactionMetricName = new TransactionMetricName("WebTransaction", "Name"); var databaseService = new DatabaseService(Mock.Create <ICacheStatsReporter>()); var configurationService = Mock.Create <IConfigurationService>(); var attribDefSvc = new AttributeDefinitionService((f) => new AttributeDefinitions(f)); string[] queries = { Sql, "Select * from someTable", "Insert x into anotherTable", "another random string", "1234567890!@#$%^&*()", "fjdksalfjdkla;fjdla;", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "NNNNNNNNNNNUUUUUUUUUUUUUUUUTTTTTTTTTTTTTTTHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIINNNNNNNNNNNNNNNNNNNN", double.MaxValue.ToString() }; var sqlTraceMaker = new SqlTraceMaker(configurationService, attribDefSvc, databaseService); var traceDatas = new List <SqlTraceWireModel>(); foreach (string query in queries) { var data = new DatastoreSegmentData(databaseService, new ParsedSqlStatement(DatastoreVendor.MSSQL, null, null), query); var segment = new Segment(TransactionSegmentStateHelpers.GetItransactionSegmentState(), new MethodCallData("typeName", "methodName", 1)); segment.SetSegmentData(data); var segments = new List <Segment>() { new Segment(new TimeSpan(), TotalCallTime, segment, null) }; var immutableTransaction = new ImmutableTransaction(name, segments, metadata, DateTime.Now, duration, duration, guid, false, false, false, 1.2f, false, string.Empty, null, _attribDefs); var sqlTraceData = sqlTraceMaker.TryGetSqlTrace(immutableTransaction, transactionMetricName, immutableTransaction.Segments.FirstOrDefault()); traceDatas.Add(sqlTraceData); } foreach (SqlTraceWireModel traceData in traceDatas) { var numberOfDigits = Math.Floor(Math.Log10(traceData.SqlId) + 1); Assert.IsTrue(numberOfDigits != 9); } }