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. } } }
//[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. } }); }