示例#1
0
        /// <summary>
        /// Initializes provided instance of the <see cref="AWSXRayRecorder" /> class with
        /// the instance of <see cref="IConfiguration" />.
        /// </summary>
        /// <param name="configuration">Instance of <see cref="IConfiguration"/>.</param>
        /// <param name="recorder">Instance of <see cref="AWSXRayRecorder"/>.</param>
        public static void InitializeInstance(IConfiguration configuration, AWSXRayRecorder recorder)
        {
            XRayOptions xRayOptions = XRayConfiguration.GetXRayOptions(configuration);

            recorder.XRayOptions = xRayOptions;
            recorder             = new AWSXRayRecorderBuilder().WithPluginsFromConfig(xRayOptions).Build(recorder);
        }
        public void TestUseRuntimeErrorsTrue()
        {
            IConfiguration configuration = BuildConfiguration("UseRuntimeErrorsTrue.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);
            Assert.IsTrue(_xRayOptions.UseRuntimeErrors);
        }
        public void TestUseRuntimeErrorsDefaultsTrue_WhenNotSpecifiedInJson()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayMissing.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);
            Assert.IsTrue(_xRayOptions.UseRuntimeErrors);
        }
示例#4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AWSXRayRecorder" /> class
        /// with given instance of <see cref="IConfiguration" />.
        /// </summary>
        /// <param name="configuration">Instance of <see cref="IConfiguration"/>.</param>
        public static void InitializeInstance(IConfiguration configuration)
        {
            XRayOptions xRayOptions = XRayConfiguration.GetXRayOptions(configuration);

            var recorderBuilder = GetBuilder(xRayOptions);

            Instance = recorderBuilder.Build(xRayOptions);
        }
示例#5
0
        /// <summary>
        /// Build a instance of <see cref="AWSXRayRecorder"/> with <see cref="XRayOptions"/> class.
        /// <param name="xRayOptions">An instance of <see cref="XRayOptions"/> class.</param>
        /// </summary>
        /// <returns>A new instance of <see cref="AWSXRayRecorder"/> class.</returns>
        public AWSXRayRecorder Build(XRayOptions xRayOptions)
        {
            var recorder = new AWSXRayRecorder(xRayOptions);

            PopulateRecorder(recorder);

            return(recorder);
        }
        public void TestCollectSqlQueriesFalse_WhenNotSpecifiedInJson()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayMissing.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);
            AWSXRayRecorder.InitializeInstance(configuration);

            Assert.IsFalse(_xRayOptions.CollectSqlQueries);
        }
        public void TestCollecSqlQueriesTrue()
        {
            IConfiguration configuration = BuildConfiguration("CollectSqlQueriesTrue.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);
            AWSXRayRecorder.InitializeInstance(configuration);

            Assert.IsTrue(_xRayOptions.CollectSqlQueries);
        }
        public void TestCleanup()
        {
#if NET45
            ConfigurationManager.AppSettings[ManifestKey] = null;
            AppSettings.Reset();
#else
            _xRayOtions = new XRayOptions();
#endif
        }
        public void TestXRaySectionMissing() // No "Xray" section in the json
        {
            IConfiguration configuration = null;

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);
            Assert.IsFalse(_xRayOptions.IsXRayTracingDisabled);
            Assert.IsNull(_xRayOptions.AwsServiceHandlerManifest);
            Assert.IsNull(_xRayOptions.PluginSetting);
            Assert.IsNull(_xRayOptions.SamplingRuleManifest);
        }
        public void TestConfigurationIsNull()
        {
            IConfiguration configuration = BuildConfiguration("NoXRaySection.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);
            Assert.IsFalse(_xRayOptions.IsXRayTracingDisabled);
            Assert.IsNull(_xRayOptions.AwsServiceHandlerManifest);
            Assert.IsNull(_xRayOptions.PluginSetting);
            Assert.IsNull(_xRayOptions.SamplingRuleManifest);
        }
示例#11
0
        public new void TestCleanup()
        {
            base.TestCleanup();
#if NET45
            ConfigurationManager.AppSettings[PluginKey] = null;
            AppSettings.Reset();
#else
            _xRayOptions = new XRayOptions();
#endif
        }
示例#12
0
        public new void TestCleanup()
        {
            base.TestCleanup();
#if NET45
            ConfigurationManager.AppSettings[ManifestKey] = null;
            AppSettings.Reset();
#else
            _xRayOptions.AwsServiceHandlerManifest = null;
            _xRayOptions = new XRayOptions();
#endif
        }
示例#13
0
 /// <summary>
 /// Reads useRuntimeErrors settings from config instance, and adds into the builder.
 /// If the useRuntimeErrors settings doesn't exist, it defaults to true and ContextMissingStrategy.RUNTIME_ERROR is used.
 /// </summary>
 /// <returns>The builder with context missing strategy set.</returns>
 public AWSXRayRecorderBuilder WithContextMissingStrategyFromConfig(XRayOptions xRayOptions)
 {
     if (xRayOptions.UseRuntimeErrors)
     {
         return(WithContextMissingStrategy(ContextMissingStrategy.RUNTIME_ERROR));
     }
     else
     {
         return(WithContextMissingStrategy(ContextMissingStrategy.LOG_ERROR));
     }
 }
示例#14
0
        /// <summary>
        /// Initializes provided instance of the <see cref="AWSXRayRecorder" /> class with
        /// the instance of <see cref="IConfiguration" />.
        /// </summary>
        /// <param name="configuration">Instance of <see cref="IConfiguration"/>.</param>
        /// <param name="recorder">Instance of <see cref="AWSXRayRecorder"/>.</param>
        public static void InitializeInstance(IConfiguration configuration, AWSXRayRecorder recorder)
        {
            XRayOptions xRayOptions = XRayConfiguration.GetXRayOptions(configuration);

            recorder.XRayOptions = xRayOptions;

            var recorderBuilder = GetBuilder(xRayOptions);

            recorder = recorderBuilder.Build(recorder);
            Instance = recorder;
        }
        public void TestUseRuntimeErrorsDefaultsTrue_WhenNotSpecifiedInJson()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayMissing.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);

            AWSXRayRecorder.InitializeInstance(configuration);

            Assert.IsTrue(_xRayOptions.UseRuntimeErrors);
            Assert.AreEqual(AWSXRayRecorder.Instance.ContextMissingStrategy, Core.Strategies.ContextMissingStrategy.RUNTIME_ERROR);
        }
        public void TestUseRuntimeErrorsTrue()
        {
            IConfiguration configuration = BuildConfiguration("UseRuntimeErrorsTrue.json");

            _xRayOptions = XRayConfiguration.GetXRayOptions(configuration);

            AWSXRayRecorder.InitializeInstance(configuration);

            Assert.IsTrue(_xRayOptions.UseRuntimeErrors);
            Assert.AreEqual(AWSXRayRecorder.Instance.ContextMissingStrategy, Core.Strategies.ContextMissingStrategy.RUNTIME_ERROR);
        }
示例#17
0
        public new void TestCleanup()
        {
            base.TestCleanup();
#if NET45
            ConfigurationManager.AppSettings[DisableXRayTracingKey] = string.Empty;
            AppSettings.Reset();
#else
            _xRayOptions = new XRayOptions();
#endif
            Environment.SetEnvironmentVariable(AWSXRayRecorder.EnvironmentVariableContextMissingStrategy, null);
            _recorder.Dispose();
        }
        public new void TestCleanup()
        {
            base.TestCleanup();
#if NET45
            ConfigurationManager.AppSettings[PluginKey]        = null;
            ConfigurationManager.AppSettings[UseRuntimeErrors] = null;
            AppSettings.Reset();
#else
            _xRayOptions = new XRayOptions();
#endif
            AWSXRayRecorder.Instance.Dispose();
        }
示例#19
0
        public void TestInitializeInstance()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayTrue.json");

            AWSXRayRecorder.InitializeInstance(configuration);
            _xRayOptions = AWSXRayRecorder.Instance.XRayOptions;

            Assert.IsTrue(_xRayOptions.IsXRayTracingDisabled);
            Assert.IsNull(_xRayOptions.AwsServiceHandlerManifest);
            Assert.IsNull(_xRayOptions.PluginSetting);
            Assert.IsNull(_xRayOptions.SamplingRuleManifest);

            AWSXRayRecorder.Instance.Dispose();
        }
示例#20
0
        /// <summary>
        /// Builds <see cref="AWSXRayRecorderBuilder"/> instance with xrayoptions.
        /// </summary>
        /// <param name="xRayOptions">Instance of <see cref="XRayOptions"/></param>
        /// <returns>Instance of <see cref="AWSXRayRecorderBuilder"/>.</returns>
        public AWSXRayRecorderBuilder WithPluginsFromConfig(XRayOptions xRayOptions)
        {
            var setting = xRayOptions.PluginSetting;

            if (string.IsNullOrEmpty(setting))
            {
                _logger.DebugFormat("Plugin setting is missing.");
                return(this);
            }

            PopulatePlugins(setting);

            return(this);
        }
示例#21
0
        /// <summary>
        /// Initializes a new instance of the <see cref="AWSXRayRecorder" /> class
        /// with given instance of <see cref="ISegmentEmitter" /> and instance of <see cref="XRayOptions"/>.
        /// </summary>
        /// <param name="emitter">Instance of <see cref="ISegmentEmitter"/>.</param>
        /// <param name="options">Instance of <see cref="XRayOptions"/>.</param>
        internal AWSXRayRecorder(ISegmentEmitter emitter, XRayOptions options) : base(emitter)
        {
            XRayOptions = options;
            PopulateContexts();

            if (IsLambda())
            {
                SamplingStrategy = new LocalizedSamplingStrategy(options.SamplingRuleManifest);
            }
            else
            {
                SamplingStrategy = new DefaultSamplingStrategy(options.SamplingRuleManifest);
            }
        }
示例#22
0
        private static AWSXRayRecorderBuilder GetBuilder(XRayOptions xRayOptions)
        {
            var recorderBuilder = new AWSXRayRecorderBuilder().WithPluginsFromConfig(xRayOptions);

            if (xRayOptions.UseRuntimeErrors)
            {
                recorderBuilder.WithContextMissingStrategy(ContextMissingStrategy.RUNTIME_ERROR);
            }
            else
            {
                recorderBuilder.WithContextMissingStrategy(ContextMissingStrategy.LOG_ERROR);
            }

            return(recorderBuilder);
        }
示例#23
0
        public void TestInitializeInstanceWithRecorder()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayTrue.json");

            AWSXRayRecorder recorder = BuildAWSXRayRecorder();

            AWSXRayRecorder.InitializeInstance(configuration, recorder);
            _xRayOptions = recorder.XRayOptions;
            Assert.IsTrue(_xRayOptions.IsXRayTracingDisabled);
            Assert.IsNull(_xRayOptions.AwsServiceHandlerManifest);
            Assert.IsNull(_xRayOptions.PluginSetting);
            Assert.IsNull(_xRayOptions.SamplingRuleManifest);

            Assert.AreEqual(AWSXRayRecorder.Instance.SamplingStrategy, recorder.SamplingStrategy); // Custom recorder set in TraceContext
            recorder.Dispose();
        }
示例#24
0
        /// <summary>
        /// Initializes provided instance of the <see cref="AWSXRayRecorder" /> class with
        /// the instance of <see cref="IConfiguration" />.
        /// </summary>
        /// <param name="configuration">Instance of <see cref="IConfiguration"/>.</param>
        /// <param name="recorder">Instance of <see cref="AWSXRayRecorder"/>.</param>
        public static void InitializeInstance(IConfiguration configuration = null, AWSXRayRecorder recorder = null)
        {
            XRayOptions xRayOptions     = XRayConfiguration.GetXRayOptions(configuration);
            var         recorderBuilder = GetBuilder(xRayOptions);

            if (recorder != null)
            {
                recorder.XRayOptions = xRayOptions;
                recorder             = recorderBuilder.Build(recorder);
            }
            else
            {
                recorder = recorderBuilder.Build(xRayOptions);
            }

            Instance = recorder;
        }
        public void TestInitializeInstance()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayTrue.json");

            AWSXRayRecorder.InitializeInstance(configuration);
            _xRayOptions = AWSXRayRecorder.Instance.XRayOptions;

            Assert.IsTrue(_xRayOptions.IsXRayTracingDisabled);
            Assert.IsNull(_xRayOptions.AwsServiceHandlerManifest);
            Assert.IsNull(_xRayOptions.PluginSetting);
            Assert.IsNull(_xRayOptions.SamplingRuleManifest);
            Assert.IsTrue(_xRayOptions.UseRuntimeErrors);

            Assert.AreEqual(typeof(UdpSegmentEmitter), AWSXRayRecorder.Instance.Emitter.GetType()); // Default emitter set

            AWSXRayRecorder.Instance.Dispose();
        }
        public void TestInitializeInstanceWithRecorder2()
        {
            IConfiguration configuration = BuildConfiguration("DisabledXRayTrue.json");

            AWSXRayRecorder recorder = BuildAWSXRayRecorder(new TestSamplingStrategy(), new DummyEmitter());

            AWSXRayRecorder.InitializeInstance(configuration, recorder);
            _xRayOptions = recorder.XRayOptions;
            Assert.IsTrue(_xRayOptions.IsXRayTracingDisabled);
            Assert.IsNull(_xRayOptions.AwsServiceHandlerManifest);
            Assert.IsNull(_xRayOptions.PluginSetting);
            Assert.IsNull(_xRayOptions.SamplingRuleManifest);
            Assert.IsTrue(_xRayOptions.UseRuntimeErrors);

            Assert.AreEqual(AWSXRayRecorder.Instance.SamplingStrategy, recorder.SamplingStrategy); // Custom recorder set in TraceContext
            Assert.AreEqual(typeof(DummyEmitter), recorder.Emitter.GetType());                     // custom emitter set
            recorder.Dispose();
        }
示例#27
0
        /// <summary>
        /// Initializes provided instance of the <see cref="AWSXRayRecorder" /> class with
        /// the instance of <see cref="IConfiguration" />.
        /// </summary>
        /// <param name="configuration">Instance of <see cref="IConfiguration"/>.</param>
        /// <param name="recorder">Instance of <see cref="AWSXRayRecorder"/>.</param>
        public static void InitializeInstance(IConfiguration configuration = null, AWSXRayRecorder recorder = null)
        {
            XRayOptions xRayOptions     = XRayConfiguration.GetXRayOptions(configuration);
            var         recorderBuilder = GetBuilder(xRayOptions);

            if (recorder != null)
            {
                _logger.DebugFormat("Using custom X-Ray recorder.");
                recorder.XRayOptions = xRayOptions;
                recorder             = recorderBuilder.Build(recorder);
            }
            else
            {
                _logger.DebugFormat("Using default X-Ray recorder.");
                recorder = recorderBuilder.Build(xRayOptions);
            }

            Instance = recorder;
        }
示例#28
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AWSXRayRecorder" /> class with <see cref="XRayOptions"/>
 /// </summary>
 /// <param name="options">Instance of <see cref="XRayOptions"/>.</param>
 public AWSXRayRecorder(XRayOptions options) : this(new UdpSegmentEmitter(), options)
 {
 }
示例#29
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AWSXRayRecorder" /> class
 /// with given instance of <see cref="ISegmentEmitter" /> and instance of <see cref="XRayOptions"/>.
 /// </summary>
 /// <param name="emitter">Instance of <see cref="ISegmentEmitter"/>.</param>
 /// <param name="options">Instance of <see cref="XRayOptions"/>.</param>
 internal AWSXRayRecorder(ISegmentEmitter emitter, XRayOptions options) : base(emitter)
 {
     XRayOptions = options;
     PopulateContexts();
     SamplingStrategy = new LocalizedSamplingStrategy(options.SamplingRuleManifest);
 }
 public void TestCleanup()
 {
     _xRayOptions = new XRayOptions();
     Environment.SetEnvironmentVariable(AWSXRayRecorder.EnvironmentVariableContextMissingStrategy, null);
     AWSXRayRecorder.Instance.Dispose();
 }