/// <summary> /// Initialize tracing for this application. /// </summary> /// <param name="projectId">The Google Cloud Platform project ID.</param> /// <param name="application">The Http application.</param> /// <param name="config">Optional trace configuration, if unset the default will be used.</param> /// <param name="client">Optional trace client, if unset the default will be used.</param> public static void Initialize(string projectId, HttpApplication application, TraceConfiguration config = null, Task <TraceServiceClient> client = null) { GaxPreconditions.CheckNotNull(application, nameof(application)); CloudTrace trace = new CloudTrace(projectId, config, client); // Add event handlers to the application. application.BeginRequest += trace.BeginRequest; application.EndRequest += trace.EndRequest; }
private CloudTrace(string projectId, TraceConfiguration config = null, Task <TraceServiceClient> client = null) { _projectId = GaxPreconditions.CheckNotNull(projectId, nameof(projectId)); // Create the default values if not set. client = client ?? TraceServiceClient.CreateAsync(); config = config ?? TraceConfiguration.Create(); _traceIdfactory = TraceIdFactory.Create(); _bufferingConsumer = BufferingTraceConsumer.Create(new GrpcTraceConsumer(client)); _rateFactory = RateLimitingTraceOptionsFactory.Create(config); _headerFactory = TraceHeaderTraceOptionsFactory.Create(); }
/// <summary> /// Create a new <see cref="RateLimitingTraceOptionsFactory"/>. /// </summary> /// <param name="config">Optional trace configuration, if unset the default will be used.</param> public static RateLimitingTraceOptionsFactory Create(TraceConfiguration config = null) { return(new RateLimitingTraceOptionsFactory(config ?? TraceConfiguration.Create())); }
private RateLimitingTraceOptionsFactory(TraceConfiguration config) { GaxPreconditions.CheckNotNull(config, nameof(config)); _rateLimiter = RateLimiter.GetInstance(config.QpsSampleRate); }