private static bool ProcessActivityEvent(ref PooledListState <JaegerLog> state, ActivityEvent e) { if (!state.Created) { state.List = PooledList <JaegerLog> .Create(); state.Created = true; } PooledList <JaegerLog> .Add(ref state.List, e.ToJaegerLog()); return(true); }
private static bool ProcessActivityLink(ref PooledListState <JaegerSpanRef> state, ActivityLink link) { if (!state.Created) { state.List = PooledList <JaegerSpanRef> .Create(); state.Created = true; } PooledList <JaegerSpanRef> .Add(ref state.List, link.ToJaegerSpanRef()); return(true); }
public static PooledList <JaegerLog> ToJaegerLogs(this IEnumerable <ActivityEvent> events) { PooledListState <JaegerLog> logs = default; if (events == null) { return(logs.List); } ListEnumerator <ActivityEvent, PooledListState <JaegerLog> > .AllocationFreeForEach( events, ref logs, ProcessActivityEventRef); return(logs.List); }
public static PooledList <JaegerSpanRef> ToJaegerSpanRefs(this IEnumerable <ActivityLink> links) { PooledListState <JaegerSpanRef> references = default; if (links == null) { return(references.List); } ListEnumerator <ActivityLink, PooledListState <JaegerSpanRef> > .AllocationFreeForEach( links, ref references, ProcessActivityLinkRef); return(references.List); }
public static JaegerLog ToJaegerLog(this Event timedEvent) { var tags = new PooledListState <JaegerTag> { Created = true, List = PooledList <JaegerTag> .Create(), }; DictionaryEnumerator <string, object, PooledListState <JaegerTag> > .AllocationFreeForEach( timedEvent.Attributes, ref tags, ProcessTagRef); // Matches what OpenTracing and OpenTelemetry defines as the event name. // https://github.com/opentracing/specification/blob/master/semantic_conventions.md#log-fields-table // https://github.com/open-telemetry/opentelemetry-specification/pull/397/files PooledList <JaegerTag> .Add(ref tags.List, new JaegerTag("message", JaegerTagType.STRING, vStr : timedEvent.Name)); return(new JaegerLog(timedEvent.Timestamp.ToEpochMicroseconds(), tags.List)); }
private static bool ProcessTag(ref PooledListState <JaegerTag> state, KeyValuePair <string, object> attribute) { PooledList <JaegerTag> .Add(ref state.List, attribute.ToJaegerTag()); return(true); }