Exemplo n.º 1
0
        private static ISpan BeforeWrappedMethod(object request)
        {
            if (AwsServiceHandler.UseDTWrapper)
            {
                ISpan span = null;
                switch (request.GetType().ToString())
                {
                case "Amazon.SQS.Model.SendMessageRequest":
                    var sendMessageRequest = (SendMessageRequest)request;
                    span = ServiceHelpers.CreateSpan(sendMessageRequest.GetOperationName(ServiceHelpers.ProduceOperation), Component, ServiceHelpers.ProduceOperation);
                    span.ApplyDistributedTracePayload(sendMessageRequest.MessageAttributes);
                    break;

                case "Amazon.SQS.Model.SendMessageBatchRequest":
                    var sendMessageBatchRequest = (SendMessageBatchRequest)request;
                    span = ServiceHelpers.CreateSpan(sendMessageBatchRequest.GetOperationName(ServiceHelpers.ProduceOperation), Component, ServiceHelpers.ProduceOperation);
                    foreach (var entry in sendMessageBatchRequest.Entries)
                    {
                        span.ApplyDistributedTracePayload(entry.MessageAttributes);
                    }
                    break;

                default:
                    break;
                }

                return(span);
            }
            else
            {
                return(null);
            }
        }