/// <param name="event"><see cref="HerculesEvent"/> that represents serialized <see cref="LogEvent"/>.</param> public LogEventData(HerculesEvent @event) { this.@event = @event; Timestamp = new DateTimeOffset( DateTime.SpecifyKind(@event.Timestamp.UtcDateTime, DateTimeKind.Unspecified), new TimeSpan(@event.Tags[LogEventTagNames.UtcOffset]?.AsLong ?? default)); }
public void Should_not_fail_on_empty_HerculesEvent() { var @event = new HerculesEvent(DateTimeOffset.Now, HerculesTags.Empty); var logEventData = new LogEventData(@event); logEventData.Exception.Should().BeNull(); logEventData.Properties.Should().BeNull(); logEventData.MessageTemplate.Should().BeNull(); logEventData.StackTrace.Should().BeNull(); logEventData.Message.Should().BeNull(); }
private static DateTimeOffset?ExtractTimestamp(HerculesEvent @event, string timestampTag, string offsetTag) { if ([email protected](timestampTag, out var timestampValue) || [email protected](offsetTag, out var offsetValue)) { return(null); } var utcTimestamp = EpochHelper.FromUnixTimeUtcTicks(timestampValue.AsLong); var utcOffset = TimeSpan.FromTicks(offsetValue.AsLong); return(new DateTimeOffset(DateTime.SpecifyKind(utcTimestamp + utcOffset, DateTimeKind.Unspecified), utcOffset)); }
private IEnumerable <HerculesEvent> Transform(HerculesEvent @event) { try { return(settings.Transformer?.Invoke(@event) ?? Array.Empty <HerculesEvent>()); } catch (Exception error) { log.Warn(error); eventsMetric?.For("error").Increment(); return(Array.Empty <HerculesEvent>()); } }
public void TestSetup() { originalSpan = Substitute.For <ISpan>(); originalSpan.TraceId.Returns(Guid.NewGuid()); originalSpan.SpanId.Returns(Guid.NewGuid()); builder = new HerculesEventBuilder(); @event = null; sink = Substitute.For <IHerculesSink>(); sink .When(s => s.Put(Arg.Any <string>(), Arg.Any <Action <IHerculesEventBuilder> >())) .Do(info => info.Arg <Action <IHerculesEventBuilder> >().Invoke(builder)); sender = new HerculesSpanSender(new HerculesSpanSenderSettings(sink, Guid.NewGuid().ToString())); }
public HerculesSpan([NotNull] HerculesEvent @event) { this.@event = @event ?? throw new ArgumentNullException(nameof(@event)); }
private void TransformSpan() { sender.Send(originalSpan); herculesSpan = new HerculesSpan(@event = builder.BuildEvent()); }