Esempio n. 1
0
        private DiagnosticsOptions CreateDiagnosticsOptions()
        {
            var opts = new DiagnosticsOptions(this);

            opts.Load();
            return(opts);
        }
Esempio n. 2
0
        public void NestedClientActivitiesConfigurationClientOptions(bool?suppressNestedScopes)
        {
            using var testListener = new TestDiagnosticListener("Azure.Clients");
            DiagnosticsOptions testOptions = new DiagnosticsOptions();

            ClientDiagnostics clientDiagnostics = new ClientDiagnostics("Azure.Clients", "Microsoft.Azure.Core.Cool.Tests", testOptions, suppressNestedScopes);

            using DiagnosticScope scope = clientDiagnostics.CreateScope("ClientName.ActivityName");
            scope.Start();

            DiagnosticScope nestedScope = clientDiagnostics.CreateScope("ClientName.NestedActivityName");

            nestedScope.Start();
            if (suppressNestedScopes.GetValueOrDefault(false))
            {
                Assert.IsFalse(nestedScope.IsEnabled);
                Assert.AreEqual("ClientName.ActivityName", Activity.Current.OperationName);
            }
            else
            {
                Assert.IsTrue(nestedScope.IsEnabled);
                Assert.AreEqual("ClientName.NestedActivityName", Activity.Current.OperationName);
            }

            nestedScope.Dispose();
            Assert.AreEqual("ClientName.ActivityName", Activity.Current.OperationName);
        }
        public void NestedClientActivitiesConfigurationClientOptions(bool?suppressNestedScopes)
        {
            // TODO: ClientDiagnostics need new Azure.Core to ship before using
            // DiagnosticsOptions.AreNestedClientSpansEnabled flag so we can't check it yet.

            using var testListener = new TestDiagnosticListener("Azure.Clients");
            DiagnosticsOptions testOptions = new DiagnosticsOptions();

            if (suppressNestedScopes.HasValue)
            {
                testOptions.SuppressNestedClientSpans = suppressNestedScopes.Value;
            }

            ClientDiagnostics clientDiagnostics = new ClientDiagnostics("Azure.Clients", "Microsoft.Azure.Core.Cool.Tests", testOptions);

            using DiagnosticScope scope = clientDiagnostics.CreateScope("ClientName.ActivityName");
            scope.Start();

            DiagnosticScope nestedScope = clientDiagnostics.CreateScope("ClientName.NestedActivityName");

            nestedScope.Start();
            if (suppressNestedScopes.GetValueOrDefault(false))
            {
                Assert.IsFalse(nestedScope.IsEnabled);
                Assert.AreEqual("ClientName.ActivityName", Activity.Current.OperationName);
            }
            else
            {
                Assert.IsTrue(nestedScope.IsEnabled);
                Assert.AreEqual("ClientName.NestedActivityName", Activity.Current.OperationName);
            }

            nestedScope.Dispose();
            Assert.AreEqual("ClientName.ActivityName", Activity.Current.OperationName);
        }
Esempio n. 4
0
        public static Task <IDiagnosticsReport> DiagnosticsAsync(this ICluster cluster, Action <DiagnosticsOptions> configureOptions)
        {
            var options = new DiagnosticsOptions();

            configureOptions?.Invoke(options);

            return(cluster.DiagnosticsAsync(options));
        }
        private static void ApplySharedDiagnosticsSettings(this DiagnosticsOptions options, ImmutableArray <string> additionalHeaders, ImmutableArray <string> additionalQueryParameters)
        {
            // ensure User-Agent mentions us
            options.ApplicationId = $"{LanguageConstants.LanguageId}/{ThisAssembly.AssemblyFileVersion}";

            options.IsLoggingContentEnabled     = false;
            options.IsDistributedTracingEnabled = false;
            options.IsTelemetryEnabled          = false;

            foreach (var header in additionalHeaders)
            {
                options.LoggedHeaderNames.Add(header);
            }

            foreach (var queryParam in additionalQueryParameters)
            {
                options.LoggedQueryParameters.Add(queryParam);
            }
        }
Esempio n. 6
0
        private void HandleDiagnosisReport(string diagnosisReport)
        {
            // ReSharper disable once PossibleInvalidOperationException
            DiagnosticsOptions options = Options.Value;
            string             output  = $"Potentially misconfigured dependencies detected.\n{diagnosisReport}";

            if (options.HasFlag(DiagnosticsOptions.Output))
            {
                Console.WriteLine(output);
            }

            if (options.HasFlag(DiagnosticsOptions.Log))
            {
                //TODO #3 Bootsrapper.HandleDiagnosisReport() option: add logging support. ILogger implementation will be resolved, hence lifycyle management is required
            }

            if (options.HasFlag(DiagnosticsOptions.Throw))
            {
                throw new Exception(output);
            }
        }
        public void ApplicationIdLimitedTo24Chars()
        {
            var options = new DiagnosticsOptions();

            Assert.Throws <ArgumentOutOfRangeException>(() => options.ApplicationId = "0123456789012345678912345");
        }
 public static void ApplySharedContainerRegistrySettings(this DiagnosticsOptions options) =>
 options.ApplySharedDiagnosticsSettings(AcrClientAdditionalLoggedHeaders, AcrClientAdditionalLoggedQueryParams);
 public static void ApplySharedResourceManagerSettings(this DiagnosticsOptions options) =>
 options.ApplySharedDiagnosticsSettings(ArmClientAdditionalLoggedHeaders, ArmClientAdditionalLoggedQueryParams);
Esempio n. 10
0
 public Task <IDiagnosticsReport> DiagnosticsAsync(DiagnosticsOptions options = null)
 {
     options = options ?? new DiagnosticsOptions();
     return(Task.FromResult(DiagnosticsReportProvider.CreateDiagnosticsReport(_context, options?.ReportId ?? Guid.NewGuid().ToString())));
 }
 public DiagnosticsController(IOptions <DiagnosticsOptions> diagnosticsOptions)
 {
     _diagnosticsOptions = diagnosticsOptions.Value;
 }