Esempio n. 1
0
        /// <summary>
        /// Retrieves all sampling rules.
        /// </summary>
        /// <param name="request">Container for the necessary parameters to execute the GetSamplingRules service method.</param>
        ///
        /// <returns>The response from the GetSamplingRules 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 GetSamplingRulesResponse GetSamplingRules(GetSamplingRulesRequest request)
        {
            var marshaller   = GetSamplingRulesRequestMarshaller.Instance;
            var unmarshaller = GetSamplingRulesResponseUnmarshaller.Instance;

            return(Invoke <GetSamplingRulesRequest, GetSamplingRulesResponse>(request, marshaller, unmarshaller));
        }
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonXRayConfig config = new AmazonXRayConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonXRayClient client = new AmazonXRayClient(creds, config);

            GetSamplingRulesResponse resp = new GetSamplingRulesResponse();

            do
            {
                GetSamplingRulesRequest req = new GetSamplingRulesRequest
                {
                    NextToken = resp.NextToken
                };

                resp = client.GetSamplingRules(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.SamplingRuleRecords)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextToken));
        }
Esempio n. 3
0
        /// <summary>
        /// Use X-Ray client to get the sampling rules
        /// from X-Ray service.The call is proxied and signed by X-Ray Daemon.
        /// </summary>
        /// <returns></returns>
        public async Task <GetSamplingRulesResponse> GetSamplingRules()
        {
            List <SamplingRule>     newRules = new List <SamplingRule>();
            GetSamplingRulesRequest request  = new GetSamplingRulesRequest();

            Task <Model.GetSamplingRulesResponse> responseTask;

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

            foreach (var record in response.SamplingRuleRecords)
            {
                var rule = record.SamplingRule;
                if (rule.Version == Version && SamplingRule.IsValid(rule)) // We currently only handle v1 sampling rules.
                {
                    var sampleRule = new SamplingRule(rule.RuleName, rule.Priority, rule.FixedRate, rule.ReservoirSize, rule.Host, rule.ServiceName, rule.HTTPMethod, rule.URLPath, rule.ServiceType, rule.ResourceARN, rule.Attributes);
                    newRules.Add(sampleRule);
                }
            }

            GetSamplingRulesResponse result = new GetSamplingRulesResponse(newRules);

            return(result);
        }
Esempio n. 4
0
        /// <summary>
        /// Initiates the asynchronous execution of the GetSamplingRules operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetSamplingRules 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 <GetSamplingRulesResponse> GetSamplingRulesAsync(GetSamplingRulesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var marshaller   = GetSamplingRulesRequestMarshaller.Instance;
            var unmarshaller = GetSamplingRulesResponseUnmarshaller.Instance;

            return(InvokeAsync <GetSamplingRulesRequest, GetSamplingRulesResponse>(request, marshaller,
                                                                                   unmarshaller, cancellationToken));
        }
        /// <summary>
        /// Initiates the asynchronous execution of the GetSamplingRules operation.
        /// </summary>
        ///
        /// <param name="request">Container for the necessary parameters to execute the GetSamplingRules 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 <GetSamplingRulesResponse> GetSamplingRulesAsync(GetSamplingRulesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = GetSamplingRulesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSamplingRulesResponseUnmarshaller.Instance;

            return(InvokeAsync <GetSamplingRulesResponse>(request, options, cancellationToken));
        }
        internal virtual GetSamplingRulesResponse GetSamplingRules(GetSamplingRulesRequest request)
        {
            var options = new InvokeOptions();

            options.RequestMarshaller    = GetSamplingRulesRequestMarshaller.Instance;
            options.ResponseUnmarshaller = GetSamplingRulesResponseUnmarshaller.Instance;

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