/// <inheritdoc/> public ISpan Log(DateTimeOffset timestamp, IEnumerable <KeyValuePair <string, object> > fields) { Guard.ThrowIfNull(fields); var payload = ConvertToEventPayload(fields); var eventName = payload.Item1; var spanAttributes = new SpanAttributes(); foreach (var field in payload.Item2) { switch (field.Value) { case long value: spanAttributes.Add(field.Key, value); break; case long[] value: spanAttributes.Add(field.Key, value); break; case bool value: spanAttributes.Add(field.Key, value); break; case bool[] value: spanAttributes.Add(field.Key, value); break; case double value: spanAttributes.Add(field.Key, value); break; case double[] value: spanAttributes.Add(field.Key, value); break; case string value: spanAttributes.Add(field.Key, value); break; case string[] value: spanAttributes.Add(field.Key, value); break; default: break; } } if (timestamp == DateTimeOffset.MinValue) { this.Span.AddEvent(eventName, spanAttributes); } else { this.Span.AddEvent(eventName, timestamp, spanAttributes); } return(this); }
/// <inheritdoc/> public global::OpenTracing.ISpan Log(DateTimeOffset timestamp, IEnumerable <KeyValuePair <string, object> > fields) { if (fields is null) { throw new ArgumentNullException(nameof(fields)); } var payload = ConvertToEventPayload(fields); var eventName = payload.Item1; var spanAttributes = new SpanAttributes(); foreach (var field in payload.Item2) { switch (field.Value) { case long value: spanAttributes.Add(field.Key, value); break; case long[] value: spanAttributes.Add(field.Key, value); break; case bool value: spanAttributes.Add(field.Key, value); break; case bool[] value: spanAttributes.Add(field.Key, value); break; case double value: spanAttributes.Add(field.Key, value); break; case double[] value: spanAttributes.Add(field.Key, value); break; case string value: spanAttributes.Add(field.Key, value); break; case string[] value: spanAttributes.Add(field.Key, value); break; default: break; } } if (timestamp == DateTimeOffset.MinValue) { this.Span.AddEvent(eventName, spanAttributes); } else { this.Span.AddEvent(eventName, timestamp, spanAttributes); } return(this); }
public void ValidateNullKey() { var spanAttribute = new SpanAttributes(); Assert.Throws <ArgumentNullException>(() => spanAttribute.Add(null, "null key")); }