public void SendTraceEventsToAirlock_GotItAtCassandra() { const int eventCount = 10; var spans = GenerateSpans(eventCount); PushToAirlock(spans); var contrailsClient = new ContrailsClient(new ContrailsClientSettings { CassandraNodes = new[] { "localhost:9042" }, Keyspace = "airlock", CassandraRetryExecutionStrategySettings = new CassandraRetryExecutionStrategySettings(), }, IntegrationTestsEnvironment.Log); WaitHelper.Wait( () => { foreach (var span in spans) { var tracesById = contrailsClient.GetTracesById(span.TraceId, null, null, null, null, true).GetAwaiter().GetResult().ToArray(); if (tracesById.Length == 0) { return(false); } var spanResult = tracesById[0]; IntegrationTestsEnvironment.Log.Debug("got span " + spanResult.ToJson()); Assert.AreEqual(1, tracesById.Length); Assert.AreEqual(span.SpanId, spanResult.SpanId); } return(true); }); }
protected sealed override void DoInitialize(ILog log, IMetricScope rootMetricScope, AirlockEnvironmentVariables environmentVariables, out IRoutingKeyFilter routingKeyFilter, out IAirlockEventProcessorProvider processorProvider) { routingKeyFilter = new DefaultRoutingKeyFilter(RoutingKey.TracesSuffix); var contrailsClientSettings = GetContrailsClientSettings(log, environmentVariables); var contrailsClient = new ContrailsClient(contrailsClientSettings, log); processorProvider = new DefaultAirlockEventProcessorProvider <Span, SpanAirlockSerializer>(project => new TracingAirlockEventProcessor(contrailsClient, log, maxCassandraTasks: 1000)); }