Exemple #1
0
        public void GetTableTransactionsTest()
        {
            //NOTE: this test pass if azure service already contains any transaction data for last 24 hours period
            //for setup metrics collection configure analytics settings

            QueryExecuter queryExecuter = new QueryExecuter(_testCredentials.StorageAccountName, _testCredentials.StorageAccountKey);

            MetricsTransactionsEntity[] metricsTransactionsEntities = queryExecuter.GetMetricData(DateTime.UtcNow.AddDays(-1), DateTime.UtcNow);

            Assert.Greater(metricsTransactionsEntities.Length, 0, "Or no any data or you not configured analytics settings(Look at TableStorageAnalyticsTests)");
            Assert.IsNotNull(metricsTransactionsEntities);
        }
Exemple #2
0
        private void MediateTableMetrics(DateTime start, DateTime end)
        {
            var queryExecuter = new QueryExecuter(_userSession.AzureInfo.AccountName, _userSession.AzureInfo.AccountKey);

            InvokeStatusStorageMetricsChanged("Get metrics data from Azure");
            MetricsTransactionsEntity[] metricsTransactionsEntities = queryExecuter.GetMetricData(start, end);

            String statusFormat = "Captured records count: {0}\r\nPushed to monitis service:{1}";

            Int32 totalProcessedRecords = 0;

            InvokeStatusStorageMetricsChanged(String.Format(statusFormat, metricsTransactionsEntities.Length, totalProcessedRecords));
            var customMonitorAPI = new CustomMonitorAPI(_userSession.APIKey, _userSession.APIType);

            foreach (MetricsTransactionsEntity metricsTransactionsEntity in metricsTransactionsEntities)
            {
                CustomMonitorConfig availabilityConfig =
                    CustomMonitorList.Singleton.GetConfigByMetricName(MetricNames.Availability);
                ResultParameter convertToMonitorResult = DataConverter.ConvertToMonitorResult(metricsTransactionsEntity.Availability,
                                                                                              metricsTransactionsEntity.Timestamp,
                                                                                              availabilityConfig);

                customMonitorAPI.AddResults(_userSession.CurrentAuthToken, availabilityConfig.MonitorID,
                                            new List <ResultParameter> {
                    convertToMonitorResult
                });

                CustomMonitorConfig totalRequestsConfig =
                    CustomMonitorList.Singleton.GetConfigByMetricName(MetricNames.TotalRequests);
                convertToMonitorResult = DataConverter.ConvertToMonitorResult(metricsTransactionsEntity.TotalRequests,
                                                                              metricsTransactionsEntity.Timestamp,
                                                                              totalRequestsConfig);
                customMonitorAPI.AddResults(_userSession.CurrentAuthToken, totalRequestsConfig.MonitorID,
                                            new List <ResultParameter> {
                    convertToMonitorResult
                });

                CustomMonitorConfig totalBillableRequestsConfig =
                    CustomMonitorList.Singleton.GetConfigByMetricName(MetricNames.TotalBillableRequests);
                convertToMonitorResult = DataConverter.ConvertToMonitorResult(metricsTransactionsEntity.TotalBillableRequests,
                                                                              metricsTransactionsEntity.Timestamp,
                                                                              totalBillableRequestsConfig);
                customMonitorAPI.AddResults(_userSession.CurrentAuthToken, totalBillableRequestsConfig.MonitorID,
                                            new List <ResultParameter> {
                    convertToMonitorResult
                });

                totalProcessedRecords++;
                InvokeStatusStorageMetricsChanged(String.Format(statusFormat, metricsTransactionsEntities.Length, totalProcessedRecords));
            }
            InvokeStatusStorageMetricsChanged("Completed");
            InvokeStorageMetricsPublishCompleted(EventArgs.Empty);
        }