public void then_writing_more_events_should_flush_only_the_batch_size() { for (int i = 0; i < BufferingCount + 2; i++) { var entry = new EventRecord { ProviderId = Guid.NewGuid(), ProviderName = "TestName", EventId = 50, Level = (int)EventLevel.Verbose, Opcode = 5, Task = 6, Timestamp = DateTimeOffset.UtcNow, Version = 2, InstanceName = "Custom instance name", FormattedMessage = "Test" + i, Payload = "{arg0:Test}" }; this.sink.OnNext(entry); Thread.Sleep(10); } int count = PollingHelper.WaitUntil(() => { using (var cmd = new SqlCommand("SELECT COUNT(*) FROM Traces", this.LocalDbConnection)) { return (int)cmd.ExecuteScalar(); } }, c => c > 0, TimeSpan.FromSeconds(30)); this.sink.Dispose(); Assert.AreEqual(BufferingCount, count); }
public void then_all_events_should_be_flushed() { for (int i = 0; i < NumberOfEntries; i++) { var entry = new EventRecord { ProviderId = Guid.NewGuid(), ProviderName = "TestName", EventId = 50, Level = (int)EventLevel.Verbose, Opcode = 5, Task = 6, Timestamp = DateTimeOffset.UtcNow, Version = 2, InstanceName = "Custom instance name", FormattedMessage = "Test" + i, Payload = "{arg0:Test}" }; this.sink.OnNext(entry); } Thread.Sleep(50); this.sink.FlushAsync().Wait(); int count; using (var cmd = new SqlCommand("SELECT COUNT(*) FROM Traces", this.LocalDbConnection)) { count = (int)cmd.ExecuteScalar(); } Assert.AreEqual<int>(NumberOfEntries, count); }
private static EventRecord CreateValidEntry() { var entry = new EventRecord { ProviderId = Guid.NewGuid(), ProviderName = "TestName", EventId = 50, Level = (int)EventLevel.Verbose, Opcode = 5, Task = 6, Timestamp = DateTimeOffset.UtcNow, Version = 2, InstanceName = "Custom instance name", FormattedMessage = "Formatted message", Payload = "{arg0:Test}" }; return entry; }
/// <summary> /// Converts an <see cref="EventEntry"/> to a <see cref="EventRecord"/>. /// </summary> /// <param name="entry">The entry to convert.</param> /// <returns>A converted entry, or <see langword="null"/> if the payload is invalid.</returns> public static EventRecord TryConvertToEventRecord(this EventEntry entry) { var entity = new EventRecord() { ProviderId = entry.ProviderId, ProviderName = entry.Schema.ProviderName, EventId = entry.EventId, EventKeywords = (long)entry.Schema.Keywords, Level = (int)entry.Schema.Level, Opcode = (int)entry.Schema.Opcode, Task = (int)entry.Schema.Task, Timestamp = entry.Timestamp, Version = entry.Schema.Version, FormattedMessage = entry.FormattedMessage, Payload = EventEntryUtil.JsonSerializePayload(entry) }; return entity; }