Exemplo n.º 1
0
        public static IQueryExecutionBuilder UseInstrumentation(
            this IQueryExecutionBuilder builder,
            IInstrumentationOptionsAccessor options)
        {
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            builder.Services
            .AddSingleton(options)
            .AddScoped <DiagnosticListenerInitializer>();

            if (options.EnableTracing)
            {
                builder.Services
                .AddScoped <
                    IApolloTracingResultBuilder,
                    ApolloTracingResultBuilder>()
                .AddScoped <
                    DiagnosticListener,
                    ApolloTracingDiagnosticListener>();
            }

            return(builder.Use <InstrumentationMiddleware>());
        }
 private static IQueryExecutionBuilder UseDefaultDiagnostics(
     this IQueryExecutionBuilder builder,
     IInstrumentationOptionsAccessor options)
 {
     return(builder
            .UseInstrumentation(options.TracingPreference)
            .UseRequestTimeout()
            .UseExceptionHandling());
 }