public void Collect(ISpanEventWireModel wireModel)
        {
            RecordSeenSpans(1);

            if (_spanEvents == null || !_spanEvents.TryAdd(wireModel.Span))
            {
                RecordDroppedSpans(1);
            }
        }
Exemplo n.º 2
0
        private static void TestPayloadInfoMatchesSpanInfo(DistributedTracePayload payload, ISpanEventWireModel rootSpan, ISpanEventWireModel actualSpan)
        {
            Assert.NotNull(rootSpan);

            var rootSpanIntrinsicAttributes = rootSpan.IntrinsicAttributes();

            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.TraceId, rootSpanIntrinsicAttributes["traceId"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.Priority, rootSpanIntrinsicAttributes["priority"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.Sampled, rootSpanIntrinsicAttributes["sampled"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.Guid, rootSpanIntrinsicAttributes["parentId"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo("generic", rootSpanIntrinsicAttributes["category"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(true, rootSpanIntrinsicAttributes["nr.entryPoint"]));

            Assert.NotNull(actualSpan);

            var actualSpanIntrinsicAttributes = actualSpan.IntrinsicAttributes();

            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.TraceId, actualSpanIntrinsicAttributes["traceId"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.Priority, actualSpanIntrinsicAttributes["priority"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(payload.Sampled, actualSpanIntrinsicAttributes["sampled"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(rootSpanIntrinsicAttributes["guid"], actualSpanIntrinsicAttributes["parentId"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo(rootSpanIntrinsicAttributes["transactionId"], actualSpanIntrinsicAttributes["transactionId"]));
            Assert.IsTrue(AttributeComparer.IsEqualTo("datastore", actualSpanIntrinsicAttributes["category"]));
        }
 private static ReadOnlyDictionary <string, object> ConvertAttribValuesToDictionary(ISpanEventWireModel spanEvent, AttributeClassification classification)
 {
     return(new ReadOnlyDictionary <string, object>(spanEvent
                                                    .GetAttributeValues(classification)
                                                    .ToDictionary(x => x.AttributeDefinition.Name, x => x.Value)));
 }
 public static ReadOnlyDictionary <string, object> AgentAttributes(this ISpanEventWireModel spanEvent) => ConvertAttribValuesToDictionary(spanEvent, AttributeClassification.AgentAttributes);
Exemplo n.º 5
0
        public static void DoesNotHaveAttributes(IEnumerable <string> unexpectedAttributes, AttributeClassification attributeClassification, ISpanEventWireModel span)
        {
            var errorMessageBuilder   = new StringBuilder();
            var actualAttributes      = span.GetAttributeValues(attributeClassification);
            var allAttributesNotFound = ExpectedAttribute.CheckIfAllAttributesNotFound(actualAttributes, unexpectedAttributes, errorMessageBuilder);

            Assert.True(allAttributesNotFound, errorMessageBuilder.ToString());
        }
Exemplo n.º 6
0
        public static void HasAttributes(IEnumerable <ExpectedAttribute> expectedAttributes, AttributeClassification attributeClassification, ISpanEventWireModel span)
        {
            var errorMessageBuilder = new StringBuilder();
            var actualAttributes    = span.GetAttributeValues(attributeClassification);
            var allAttributesMatch  = ExpectedAttribute.CheckIfAllAttributesMatch(actualAttributes, expectedAttributes, errorMessageBuilder);

            Assert.True(allAttributesMatch, errorMessageBuilder.ToString());
        }