Example #1
0
 /// <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));
 }
Example #2
0
        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();
        }
Example #3
0
        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));
        }
Example #4
0
 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()));
        }
Example #6
0
 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());
        }