public void GetWebHostingPlanMetrics()
        {
            using (var context = MockContext.Start(this.GetType().FullName))
            {
                var webSitesClient  = this.GetWebSiteManagementClient(context);
                var resourcesClient = this.GetResourceManagementClient(context);

                string whpName           = TestUtilities.GenerateName("csmsf");
                string resourceGroupName = TestUtilities.GenerateName("csmrg");
                var    webSiteName       = TestUtilities.GenerateName("csmws");
                var    serverfarmId      = ResourceGroupHelper.GetServerFarmId(webSitesClient.SubscriptionId,
                                                                               resourceGroupName, whpName);
                var location = ResourceGroupHelper.GetResourceLocation(resourcesClient, "Microsoft.Web/sites");

                resourcesClient.ResourceGroups.CreateOrUpdate(resourceGroupName,
                                                              new ResourceGroup
                {
                    Location = location
                });

                webSitesClient.ServerFarms.CreateOrUpdateServerFarm(resourceGroupName, whpName,
                                                                    new ServerFarmWithRichSku()
                {
                    ServerFarmWithRichSkuName = whpName,
                    Location = location,
                    Sku      = new SkuDescription
                    {
                        Name     = "S1",
                        Capacity = 1,
                        Tier     = "Standard"
                    }
                });

                var webSite = webSitesClient.Sites.CreateOrUpdateSite(resourceGroupName, webSiteName, new Site
                {
                    SiteName = webSiteName,
                    Location = location,
                    Tags     = new Dictionary <string, string> {
                        { "tag1", "value1" }, { "tag2", "" }
                    },
                    ServerFarmId = serverfarmId
                });

                var endTime     = DateTime.Parse("2015-12-11T09:52:42Z");
                var metricNames = new List <string> {
                    "MemoryPercentage", "CpuPercentage", "DiskQueueLength", "HttpQueueLength", "BytesReceived", "BytesSent"
                };
                metricNames.Sort();
                var result = webSitesClient.ServerFarms.GetServerFarmMetrics(resourceGroupName: resourceGroupName,
                                                                             name: whpName,
                                                                             filter:
                                                                             WebSitesHelper.BuildMetricFilter(startTime: endTime.AddDays(-1), endTime: endTime,
                                                                                                              timeGrain: "PT1H", metricNames: metricNames), details: true);

                webSitesClient.Sites.DeleteSite(resourceGroupName, webSiteName, deleteAllSlots: true.ToString(), deleteEmptyServerFarm: true.ToString());

                var webHostingPlanResponse = webSitesClient.ServerFarms.GetServerFarms(resourceGroupName);

                Assert.Equal(0, webHostingPlanResponse.Value.Count);

                // Validate response
                Assert.NotNull(result);
                var actualmetricNames =
                    result.Value.Select(r => r.Name.Value).Distinct(StringComparer.OrdinalIgnoreCase).ToList();
                actualmetricNames.Sort();
                Assert.Equal(metricNames, actualmetricNames, StringComparer.OrdinalIgnoreCase);

                // validate metrics only for replay since the metrics will not match
                if (HttpMockServer.Mode == HttpRecorderMode.Playback)
                {
                    // TODO: Add playback mode assertions.
                }
            }
        }
Exemplo n.º 2
0
        //[Fact(Skip="TODO: Fix datetime parsing in test to properly handle universal time and rerecord.")]
        public void GetSiteMetrics()
        {
            RunWebsiteTestScenario(
                (webSiteName, resourceGroupName, whpName, locationName, webSitesClient, resourcesClient) =>
            {
                var endTime     = DateTime.Parse("2018-01-28T00:23:02Z").ToUniversalTime();
                var metricNames = new List <string> {
                    "Requests", "CPU", "MemoryWorkingSet"
                };
                metricNames.Sort();
                var result = webSitesClient.WebApps.ListMetrics(resourceGroupName: resourceGroupName,
                                                                name: webSiteName, filter: WebSitesHelper.BuildMetricFilter(startTime: endTime.AddDays(-1), endTime: endTime, timeGrain: "PT1H", metricNames: metricNames), details: true);

                webSitesClient.WebApps.Delete(resourceGroupName, webSiteName);

                // Validate response
                Assert.NotNull(result);
                var actualmetricNames =
                    result.Select(r => r.Name.Value).Distinct(StringComparer.OrdinalIgnoreCase).ToList();
                actualmetricNames.Sort();
                Assert.Equal(metricNames, actualmetricNames, StringComparer.OrdinalIgnoreCase);

                // validate metrics only for replay since the metrics will not match
                if (HttpMockServer.Mode == HttpRecorderMode.Playback)
                {
                    // TODO: Add playback mode assertions.
                }
            });
        }