Пример #1
0
        public async stt::Task GetMetricsResourceNamesAsync()
        {
            moq::Mock <RecaptchaEnterpriseService.RecaptchaEnterpriseServiceClient> mockGrpcClient = new moq::Mock <RecaptchaEnterpriseService.RecaptchaEnterpriseServiceClient>(moq::MockBehavior.Strict);
            GetMetricsRequest request = new GetMetricsRequest
            {
                MetricsName = MetricsName.FromProjectKey("[PROJECT]", "[KEY]"),
            };
            Metrics expectedResponse = new Metrics
            {
                StartTime        = new wkt::Timestamp(),
                ScoreMetrics     = { new ScoreMetrics(), },
                ChallengeMetrics =
                {
                    new ChallengeMetrics(),
                },
                MetricsName = MetricsName.FromProjectKey("[PROJECT]", "[KEY]"),
            };

            mockGrpcClient.Setup(x => x.GetMetricsAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Metrics>(stt::Task.FromResult(expectedResponse), null, null, null, null));
            RecaptchaEnterpriseServiceClient client = new RecaptchaEnterpriseServiceClientImpl(mockGrpcClient.Object, null);
            Metrics responseCallSettings            = await client.GetMetricsAsync(request.MetricsName, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None));

            xunit::Assert.Same(expectedResponse, responseCallSettings);
            Metrics responseCancellationToken = await client.GetMetricsAsync(request.MetricsName, st::CancellationToken.None);

            xunit::Assert.Same(expectedResponse, responseCancellationToken);
            mockGrpcClient.VerifyAll();
        }
Пример #2
0
        public void GetMetricsResourceNames()
        {
            moq::Mock <RecaptchaEnterpriseService.RecaptchaEnterpriseServiceClient> mockGrpcClient = new moq::Mock <RecaptchaEnterpriseService.RecaptchaEnterpriseServiceClient>(moq::MockBehavior.Strict);
            GetMetricsRequest request = new GetMetricsRequest
            {
                MetricsName = MetricsName.FromProjectKey("[PROJECT]", "[KEY]"),
            };
            Metrics expectedResponse = new Metrics
            {
                StartTime        = new wkt::Timestamp(),
                ScoreMetrics     = { new ScoreMetrics(), },
                ChallengeMetrics =
                {
                    new ChallengeMetrics(),
                },
                MetricsName = MetricsName.FromProjectKey("[PROJECT]", "[KEY]"),
            };

            mockGrpcClient.Setup(x => x.GetMetrics(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse);
            RecaptchaEnterpriseServiceClient client = new RecaptchaEnterpriseServiceClientImpl(mockGrpcClient.Object, null);
            Metrics response = client.GetMetrics(request.MetricsName);

            xunit::Assert.Same(expectedResponse, response);
            mockGrpcClient.VerifyAll();
        }
        // This method is invoked frequently from KEDA to retrieve the metric. The value we return here is from the 'state' variable
        // which is set by the Client_OnMessageReceived above.
        public override Task <GetMetricsResponse> GetMetrics(GetMetricsRequest request, ServerCallContext context)
        {
            _logger.LogInformation($"{DateTime.Now} GetMetrics Called: state: {state}");
            var response = new GetMetricsResponse();

            response.MetricValues.Add(new MetricValue {
                MetricName = "kaboom", MetricValue_ = state
            });
            return(Task.FromResult <GetMetricsResponse>(response));
        }
        public override async Task <GetMetricsResponse> GetMetrics(GetMetricsRequest request, ServerCallContext context)
        {
            _logger.LogInformation($"Namespace: {request?.ScaledObjectRef?.Namespace} DeploymentName: {request?.ScaledObjectRef?.Name} GetMetrics() called.");
            int currentWorkerCount =
                await GetCurrentWorkerCountAsync(request.ScaledObjectRef.Namespace, request.ScaledObjectRef.Name);

            var heartbeat = await _performanceMonitorRepository.PulseAsync(currentWorkerCount);

            int targetSize = 0;

            switch (heartbeat.ScaleRecommendation.Action)
            {
            case ScaleAction.AddWorker:
                targetSize = currentWorkerCount + 1;
                targetSize = targetSize * MLTIPLICITY;
                _logger.LogDebug($"Namespace: {request?.ScaledObjectRef?.Namespace} DeploymentName: {request?.ScaledObjectRef?.Name} GetMetrics() : AddWorker : Target: {targetSize}");
                break;

            case ScaleAction.RemoveWorker:
                targetSize = currentWorkerCount - 1;
                targetSize = targetSize * MLTIPLICITY - (MLTIPLICITY - 1);
                _logger.LogDebug($"Namespace: {request?.ScaledObjectRef?.Namespace} DeploymentName: {request?.ScaledObjectRef?.Name} GetMetrics() : RemoveWorker : Target: {targetSize}");
                break;

            default:
                targetSize = currentWorkerCount;
                targetSize = targetSize * MLTIPLICITY;
                _logger.LogDebug($"Namespace: {request?.ScaledObjectRef?.Namespace} DeploymentName: {request?.ScaledObjectRef?.Name} GetMetrics() : None : Target: {targetSize}");
                break;
            }
            var res         = new GetMetricsResponse();
            var metricValue = new MetricValue
            {
                MetricName   = ScaleRecommendation,
                MetricValue_ = targetSize
            };

            res.MetricValues.Add(metricValue);
            return(res);
        }
        public override async Task <GetMetricsResponse> GetMetrics(GetMetricsRequest request, ServerCallContext context)
        {
            if (!request.ScaledObjectRef.ScalerMetadata.ContainsKey("latitude") ||
                !request.ScaledObjectRef.ScalerMetadata.ContainsKey("longitude"))
            {
                throw new ArgumentException("longitude and latitude must be specified");
            }

            var longitude = request.ScaledObjectRef.ScalerMetadata["longitude"];
            var latitude  = request.ScaledObjectRef.ScalerMetadata["latitude"];

            var earthquakeCount = await GetEarthQuakeCount(longitude, latitude, 1.0);

            var resp = new GetMetricsResponse();

            resp.MetricValues.Add(new MetricValue
            {
                MetricName   = "earthquakeThreshold",
                MetricValue_ = earthquakeCount
            });

            return(resp);
        }
Пример #6
0
        public override async Task <GetMetricsResponse> GetMetrics(GetMetricsRequest request, ServerCallContext context)
        {
            _logger.LogInformation($"GetMetrics: about to call service: {_urlOfService}");
            var httpRequest = new HttpRequestMessage(HttpMethod.Get, _urlOfService);
            var client      = _httpClientFactory.CreateClient();
            var response    = await client.SendAsync(httpRequest);

            int    result          = 30;
            string responseContent = await response.Content.ReadAsStringAsync();

            _logger.LogInformation($"GetMetrics: response was: {responseContent}");

            int.TryParse(responseContent, out result);

            var metricResponse = new GetMetricsResponse();

            metricResponse.MetricValues.Add(new MetricValue
            {
                MetricName   = "mymetric",
                MetricValue_ = result
            });
            return(metricResponse);
        }
Пример #7
0
        private void EndGetMetrics(IAsyncResult async)
        {
            GetMetricsRequest request = async.AsyncState as GetMetricsRequest;

            try
            {
                HttpWebResponse response = request.HttpWebRequest.EndGetResponse(async) as HttpWebResponse;
                Stream          stream   = response.GetResponseStream();

                DataContractSerializer serializer = new DataContractSerializer(typeof(List <Metric>));
                this.metrics = (List <Metric>)serializer.ReadObject(stream);

                MetricsList.Invoke(() =>
                {
                    MetricsList.DisplayMember = "Name";
                    MetricsList.DataSource    = this.metrics;
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
 public GetMetricsResponse GetMetrics(GetMetricsRequest request)
 {
     return(ExecuteAction <GetMetricsResponse>(request));
 }
Пример #9
0
 public override async Task <GetMetricsResponse> GetMetrics(GetMetricsRequest request, ServerCallContext context)
 {
     throw new NotImplementedException();
     //return await _db.GetMetrics(request,context.CancellationToken);
     // var cpuPercent = UpdateCpuPercent();
 }
Пример #10
0
 public GetMetricsResponse GetMetrics(GetMetricsRequest request)
 {
     return(Execute(() => InternalService.GetMetrics(request)));
 }