Пример #1
0
 public static IHostBuilder CreateHostBuilder() =>
 new HostBuilder()
 .ConfigureLogging(builder => builder.ClearProviders())
 .ConfigureServices(services =>
 {
     // We don't care much about which options we are setting.
     // These are for testing that all the extension method overloads work as expected.
     services.AddGoogleDiagnostics(
         new TraceServiceOptions
     {
         ProjectId = ProjectId,
         Options   = TraceOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
     },
         new LoggingServiceOptions
     {
         ProjectId   = ProjectId,
         ServiceName = Service,
         Version     = Version,
         Options     = LoggingOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
     },
         new ErrorReportingServiceOptions
     {
         ProjectId   = ProjectId,
         ServiceName = Service,
         Version     = Version,
         Options     = ErrorReportingOptions.CreateInstance(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
     });
 });
Пример #2
0
        public async Task LogAsync()
        {
            var eventTarget = EventTarget.ForProject("pid");
            var options     = ErrorReportingOptions.CreateInstance();
            var consumer    = new FakeConsumer();

            IContextExceptionLogger logger = new ErrorReportingContextExceptionLogger(
                consumer, eventTarget, _serviceContext, options, null);
            await logger.LogAsync(CreateException(), new FakeContextWrapper());

            ValidateSingleEntry(consumer, _method, _uri, _userAgent, options, eventTarget);
        }
Пример #3
0
        public void Log_Simple()
        {
            var eventTarget = EventTarget.ForProject("pid");
            var options     = ErrorReportingOptions.CreateInstance();
            var consumer    = new FakeConsumer();

            IContextExceptionLogger logger = new ErrorReportingContextExceptionLogger(
                consumer, eventTarget, _serviceContext, options, null);

            logger.Log(CreateException(), new EmptyContextWrapper());

            ValidateSingleEntry(consumer, "", "", "", options, eventTarget);
        }
 // Sample: ConfigureBuffers
 public static IHostBuilder CreateHostBuilder() =>
 new HostBuilder()
 .ConfigureServices(services =>
 {
     // Replace ProjectId with your Google Cloud Project ID.
     // Replace Service with a name or identifier for the service.
     // Replace Version with a version for the service.
     services.AddGoogleDiagnostics(ProjectId, Service, Version,
                                   // Configure the three components to use no buffer.
                                   traceOptions: TraceOptions.Create(bufferOptions: BufferOptions.NoBuffer()),
                                   loggingOptions: LoggingOptions.Create(bufferOptions: BufferOptions.NoBuffer()),
                                   errorReportingOptions: ErrorReportingOptions.CreateInstance(bufferOptions: BufferOptions.NoBuffer()));
     // Register other services here if you need them.
 });
 public override void ConfigureServices(IServiceCollection services) =>
 base.ConfigureServices(services
                        .AddGoogleErrorReportingForAspNetCore(new Common.ErrorReportingServiceOptions
 {
     ProjectId   = ProjectId,
     ServiceName = EntryData.Service,
     Version     = EntryData.Version,
     Client      = new LoggingServiceV2ClientBuilder
     {
         TokenAccessMethod = (uri, cancellation) => Task.FromResult("very_bad_token")
     }.Build(),
     // This is just so that our validator finds the log entries associated to errors.
     Options = ErrorReportingOptions.CreateInstance(
         logName: "aspnetcore",
         bufferOptions: BufferOptions.NoBuffer(),
         retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
 }));
 public override void ConfigureServices(IServiceCollection services) =>
 base.ConfigureServices(services
                        .AddGoogleTraceForAspNetCore(new AspNetCoreTraceOptions
 {
     ServiceOptions = new Common.TraceServiceOptions
     {
         ProjectId = ProjectId,
         Options   = TraceOptions.Create(
             double.PositiveInfinity, BufferOptions.NoBuffer(), RetryOptions.NoRetry(ExceptionHandling.Propagate))
     }
 })
                        .AddGoogleErrorReportingForAspNetCore(new Common.ErrorReportingServiceOptions
 {
     ProjectId   = ProjectId,
     ServiceName = EntryData.Service,
     Version     = EntryData.Version,
     // This is just so that our validator finds the log entries associated to errors.
     Options = ErrorReportingOptions.CreateInstance(
         logName: "aspnetcore",
         bufferOptions: BufferOptions.NoBuffer(),
         retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate))
 }));
Пример #7
0
        public async Task UseGoogleDiagnostics_ValidateDependencyInjection()
        {
            var testId    = IdGenerator.FromDateTime();
            var startTime = DateTime.UtcNow;

            var hostBuilder = GetHostBuilder(webHostBuilder =>
                                             webHostBuilder
                                             .UseDefaultServiceProvider(options => options.ValidateScopes = true)
                                             .ConfigureServices(services =>
                                                                services.AddGoogleDiagnosticsForAspNetCore(
                                                                    TestEnvironment.GetTestProjectId(), EntryData.Service, EntryData.Version,
                                                                    traceOptions: TraceOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)),
                                                                    loggingOptions: LoggingOptions.Create(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)),
                                                                    errorReportingOptions: ErrorReportingOptions.CreateInstance(retryOptions: RetryOptions.NoRetry(ExceptionHandling.Propagate)))));

            using var server = GetTestServer(hostBuilder);
            using var client = server.CreateClient();
            await TestTrace(testId, startTime, client);
            await TestLogging(testId, startTime, client);
            await TestErrorReporting(testId, client);
        }