private void LoadOperations() { operationsList.View = View.Details; operationsList.Alignment = ListViewAlignment.SnapToGrid; operationsList.BeginUpdate(); operationsList.Items.Clear(); operationsList.Columns.Add("Name"); operationsList.Columns.Add("Resource"); operationsList.Columns.Add("Description"); operationsList.MultiSelect = false; var url = "https://management.azure.com/providers/microsoft.insights/operations?api-version=2015-04-01"; var result = ApiCallsManager.PerformGet(url); OperationsRootObject operations = JsonConvert.DeserializeObject <OperationsRootObject>(result); foreach (var operation in operations.value) { var item = new ListViewItem(new[] { operation.name, operation.display.resource, operation.display.description }); operationsList.Items.Add(item); operationsList.Items[0].Checked = true; } operationsList.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent); operationsList.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent); operationsList.AutoResizeColumn(2, ColumnHeaderAutoResizeStyle.ColumnContent); operationsList.EndUpdate(); operationsList.AllowSorting = true; }
private void vmMetricsList_SelectedIndexChanged(object sender, EventArgs e) { try { if (vmMetricsList.SelectedItems.Count == 0) { return; } if (vmChooser.SelectedItem == null) { MetroMessageBox.Show(this, "Please select a virtual machine!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string startDate = startVMTime.Text; string endDate = endVMTime.Text; if (string.IsNullOrEmpty(startDate) || string.IsNullOrEmpty(endDate)) { MetroMessageBox.Show(this, "Please select a date!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string resourceURI = ResourceService.GetResourcesByType("Microsoft.Compute/virtualMachines") .Where(x => x.name == vmChooser.SelectedItem.ToString()) .Select(x => x.id) .FirstOrDefault(); string metricNames = string.Empty; foreach (ListViewItem selectedMetricDefinition in vmMetricsList.SelectedItems) { metricNames += selectedMetricDefinition.Tag + ","; } metricNames = metricNames.Remove(metricNames.Length - 1); DateTime startDateTime = DateTime.Parse(startDate).AddDays(-1); DateTime endDateTime = DateTime.Parse(endDate); string interval = "PT12H"; string timespan = $"{startDateTime.ToString("s")}Z/{endDateTime.ToString("s")}Z"; string metricsUrl = $"{Constants.ARMEndpoint}{resourceURI}{Constants.InsightsAPIURI}/metrics?timespan={timespan}&interval={interval}&metricnames={metricNames}&{Constants.ApiVersionURI}"; var json = ApiCallsManager.PerformGet(metricsUrl); dynamic parsedJson = JsonConvert.DeserializeObject(json); MetricRootObject metrics = JsonConvert.DeserializeObject <MetricRootObject>(json); LoadVmChart(metrics, startDateTime, endDateTime); } catch (System.Exception ex) { MetroMessageBox.Show(this, "Unexpected error", ":(", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public double GetPercentageCPU() { string resourceURI = ResourceService.GetResourcesByType("Microsoft.Compute/virtualMachines") .Where(x => x.name == vmChooser.SelectedItem.ToString()) .Select(x => x.id) .FirstOrDefault(); string metricsUrl = $"{Constants.ARMEndpoint}{resourceURI}{Constants.InsightsAPIURI}/metrics?metricnames=Percentage CPU&{Constants.ApiVersionURI}"; var json = ApiCallsManager.PerformGet(metricsUrl); dynamic parsedJson = JsonConvert.DeserializeObject(json); MetricRootObject metrics = JsonConvert.DeserializeObject <MetricRootObject>(json); return(metrics.value[metrics.value.Count - 1].timeseries[0].data[metrics.value[metrics.value.Count - 1].timeseries[0].data.Count - 1].average); }
private void webMetricsList_SelectedIndexChanged(object sender, System.EventArgs e) { try { if (webMetricsList.SelectedItems.Count == 0) { return; } if (websiteChooser.SelectedItem == null) { MetroMessageBox.Show(this, "Please select a website!", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string resourceURI = ResourceService.GetResourcesByType("Microsoft.Web/sites") .Where(x => x.name == websiteChooser.SelectedItem.ToString()) .Select(x => x.id) .FirstOrDefault(); string metricNames = string.Empty; foreach (ListViewItem selectedMetricDefinition in webMetricsList.SelectedItems) { metricNames += selectedMetricDefinition.Tag + ","; } metricNames = metricNames.Remove(metricNames.Length - 1); string interval = "PT1M"; string timespan = $"{DateTime.UtcNow.AddMinutes(-5).ToString("s")}Z/{DateTime.UtcNow.ToString("s")}Z"; string metricsUrl = $"{Constants.ARMEndpoint}{resourceURI}{Constants.InsightsAPIURI}/metrics?timespan={timespan}&interval={interval}&metricnames={metricNames}&{Constants.ApiVersionURI}"; var json = ApiCallsManager.PerformGet(metricsUrl); dynamic parsedJson = JsonConvert.DeserializeObject(json); MetricRootObject metrics = JsonConvert.DeserializeObject <MetricRootObject>(json); LoadWebsiteChart(metrics); } catch (System.Exception ex) { MetroMessageBox.Show(this, "Unexpected error", ":(", MessageBoxButtons.OK, MessageBoxIcon.Error); } }