Beispiel #1
0
        /// <summary>
        /// Requests a sampling quota for rules that the service is using to sample requests.
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the GetSamplingTargets service method.</param>
        ///
        /// <returns>The response from the GetSamplingTargets service method, as returned by XRay.</returns>
        /// <exception cref="Amazon.XRay.Model.InvalidRequestException">
        /// The request is missing required parameters or has invalid parameters.
        /// </exception>
        /// <exception cref="Amazon.XRay.Model.ThrottledException">
        /// The request exceeds the maximum number of requests per second.
        /// </exception>
        public virtual GetSamplingTargetsResponse GetSamplingTargets(GetSamplingTargetsRequest request)
        {
            var marshaller   = GetSamplingTargetsRequestMarshaller.Instance;
            var unmarshaller = GetSamplingTargetsResponseUnmarshaller.Instance;

            return(Invoke <GetSamplingTargetsRequest, GetSamplingTargetsResponse>(request, marshaller, unmarshaller));
        }
Beispiel #2
0
        /// <summary>
        /// Report the current statistics of sampling rules and
        /// get back the new assigned quota/TTL/Interval from the X-Ray service.
        /// The call is proxied and signed via X-Ray Daemon.
        /// </summary>
        /// <param name="rules">List of <see cref="SamplingRule"/>.</param>
        /// <returns>Instance of <see cref="GetSamplingRulesResponse"/>.</returns>
        public async Task <GetSamplingTargetsResponse> GetSamplingTargets(List <SamplingRule> rules)
        {
            GetSamplingTargetsRequest request    = new GetSamplingTargetsRequest();
            IList <Target>            newTargets = new List <Target>();
            DateTime currentTime = TimeStamp.CurrentDateTime();
            List <SamplingStatisticsDocument> samplingStatisticsDocuments = GetSamplingStatisticsDocuments(rules, currentTime);

            request.SamplingStatisticsDocuments = samplingStatisticsDocuments;
            Task <Model.GetSamplingTargetsResponse> responseTask;

            lock (_xrayClientLock)
            {
                RefreshEndPoint();
                responseTask = _xrayClient.GetSamplingTargetsAsync(request);
            }
            var response = await responseTask;

            foreach (var record in response.SamplingTargetDocuments)
            {
                Target t = new Target(record.RuleName, record.FixedRate, record.ReservoirQuota, record.ReservoirQuotaTTL, record.Interval);
                newTargets.Add(t);
            }

            GetSamplingTargetsResponse result = new GetSamplingTargetsResponse(newTargets);

            result.RuleFreshness = new TimeStamp(response.LastRuleModification);
            return(result);
        }
Beispiel #3
0
        /// <summary>
        /// Initiates the asynchronous execution of the GetSamplingTargets operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetSamplingTargets operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public virtual Task <GetSamplingTargetsResponse> GetSamplingTargetsAsync(GetSamplingTargetsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = GetSamplingTargetsRequestMarshaller.Instance;
            var unmarshaller = GetSamplingTargetsResponseUnmarshaller.Instance;

            return(InvokeAsync <GetSamplingTargetsRequest, GetSamplingTargetsResponse>(request, marshaller,
                                                                                       unmarshaller, cancellationToken));
        }
        /// <summary>
        /// Initiates the asynchronous execution of the GetSamplingTargets operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetSamplingTargets operation.</param>
        /// <param name="cancellationToken">
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// </param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public virtual Task <GetSamplingTargetsResponse> GetSamplingTargetsAsync(GetSamplingTargetsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = GetSamplingTargetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSamplingTargetsResponseUnmarshaller.Instance;

            return(InvokeAsync <GetSamplingTargetsResponse>(request, options, cancellationToken));
        }
        internal virtual GetSamplingTargetsResponse GetSamplingTargets(GetSamplingTargetsRequest request)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = GetSamplingTargetsRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSamplingTargetsResponseUnmarshaller.Instance;

            return(Invoke <GetSamplingTargetsResponse>(request, options));
        }