Пример #1
0
        /// <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;
        }
Пример #2
0
        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);
 }