public void ShouldAcceptStringDistributedTracePayloadWhenDTEnabled() { var agentWrapperApi = _compositeTestAgent.GetAgent(); var transaction = agentWrapperApi.CreateTransaction( isWeb: true, category: EnumNameCache <WebTransactionType> .GetName(WebTransactionType.ASP), transactionDisplayName: "TransactionName", doNotTrackAsUnitOfWork: true); var transactionBridgeApi = new TransactionBridgeApi(transaction, _apiSupportabilityMetricCounters, _configSvc); var segment = agentWrapperApi.StartTransactionSegmentOrThrow("segment"); transactionBridgeApi.AcceptDistributedTracePayload(_distributedTracePayload.ToJson(), 0 /*Unknown TransportType see Agent\NewRelic.Api.Agent\TransportType.cs for more info*/); segment.End(); transaction.End(); _compositeTestAgent.Harvest(); var transactionEvent = _compositeTestAgent.TransactionEvents.First(); var transactionAttributes = transactionEvent.IntrinsicAttributes(); NrAssert.Multiple( () => Assert.AreEqual(_traceId, transactionAttributes["traceId"]), () => Assert.AreEqual(_type.ToString(), transactionAttributes["parent.type"]), () => Assert.AreEqual(_appId, transactionAttributes["parent.app"]), () => Assert.AreEqual(_accountId, transactionAttributes["parent.account"]), () => Assert.AreEqual("Unknown", transactionAttributes["parent.transportType"]), () => Assert.True(transactionAttributes.ContainsKey("parent.transportDuration")), () => Assert.AreEqual(_transactionId, transactionAttributes["parentId"]), () => Assert.AreEqual(_priority, transactionAttributes["priority"]), () => Assert.AreEqual(_sampled, transactionAttributes["sampled"]) ); }
public void Extract_ReturnsLambdaPayloadContext_FromPayload() { var tracer = LambdaTracer.Instance; var contextTextMap = tracer.Extract(BuiltinFormats.TextMap, new TextMapExtractAdapter(_tags)); var contextHttpHeaders = tracer.Extract(BuiltinFormats.HttpHeaders, new TextMapExtractAdapter(_tags)); var payloadEncodedMap = tracer.Extract(NewRelicFormats.Payload, new PayloadExtractAdapter(_dtPayload.SerializeAndEncodeDistributedTracePayload())); var payloadJsonMap = tracer.Extract(NewRelicFormats.Payload, new PayloadExtractAdapter(_dtPayload.ToJson())); Assert.That(contextTextMap, Is.TypeOf <LambdaPayloadContext>()); Assert.That(contextHttpHeaders, Is.TypeOf <LambdaPayloadContext>()); Assert.That(payloadEncodedMap, Is.TypeOf <LambdaPayloadContext>()); Assert.That(payloadJsonMap, Is.TypeOf <LambdaPayloadContext>()); }