public static AzureResponse PostRequest(AzurePayload payload) { HttpWebRequest request = CreatePOSTRequest(AZURE_DASHBOARD_URL); //HEADER INFO request.PreAuthenticate = true; request.Headers.Add("csrfToken", Properties.Get("CSRFToken")); request.Headers.Add("Authorization", GetBearerAuthToken()); request.Headers.Add("Origin", "https://jarvis-west.dc.ad.msft.net"); request.Headers.Add("DNT", "1"); request.Headers.Add("x-ms-app", "Jarvis.Dashboard"); request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"; request.Referer = "https://jarvis-west.dc.ad.msft.net/app/canvas/w/mdm/MDMProfilePage?wires={%22account%22:%22%22,%22namespace%22:%22%22,%22profile%22:%22%22,%22selected%22:%22$$$%22,%22globalStartTime%22:-3600000,%22globalEndTime%22:-1,%22pinGlobalTimeRange%22:false,%22syncGlobalTimeRange%22:false,%22presentationMode%22:false,%22refreshTick%22:1542213399097,%22refreshInterval%22:0,%22pendingSave%22:null,%22pendingWidgets%22:[],%22pendingShare%22:false,%22pendingExport%22:null,%22pendingImport%22:false,%22overrides%22:[{%22query%22:%22//kusto%22,%22key%22:%22connection%22,%22replacement%22:%22https://sqlazureuk2.kustomfa.windows.net:443%22},{%22query%22:%22//conditions[id=%27AzureSqlServer%27]%22,%22key%22:%22value%22,%22replacement%22:%22g5ajmo36i2%22}],%22dashboardBrowserTab%22:0,%22dashboardBrowserVisible%22:true,%22selectedAccounts%22:%22SPOProd,SPODogFood,SPOMSIT,sporunners%22,%22dashboardBrowserTreeFilter%22:%22%22,%22selectedPath%22:[%22SPOProd%22,%22OCE%22,%22Azure%20Dashboard%22],%22dashboardId%22:%22%22,%22v%22:1542136435389}"; byte[] content = ConvertPayloadToContentByteArray(payload); request.ContentLength = content.Length; using (Stream dataStream = request.GetRequestStream()) { dataStream.Write(content, 0, content.Length); dataStream.Close(); } OptionsRequest(); // Get response AzureResponse jsonResponse = GetRequestResponse(request); return(jsonResponse); }
public static AzureOverview Get(string azureLabel, DateTime startTime, DateTime endTime) { AzureOverview overview = new AzureOverview(azureLabel, startTime, endTime); Console.WriteLine(" ---- NODE DB BREAKDOWN ---- "); // Node / DB Breakdown AzurePayload requestPayload = new AzurePayload() { DB = "sqlazure1", CSL = GetNodeDBBreakdownCSL(azureLabel) }; AzureResponse response = AzureRequester.PostRequest(requestPayload); // find useful info AzureResponseTable azureTable = response.Tables.Find(table => table.Columns.Exists(column => column.ColumnName.Equals("database_name"))); foreach (List <dynamic> row in azureTable.Rows) { DBNode breakdown = new DBNode((string)row[0], (string)row[1], (string)row[2], (string)row[3], (string)row[4], (string)row[5]); overview.DBNodes.Add(breakdown); } Console.WriteLine(" ---- Average CPU % Per Pool Node ---- "); // Average CPU % per Pool Node requestPayload.CSL = GetPerNodeCSL(azureLabel, startTime, endTime, "avg_cpu_percent"); response = AzureRequester.PostRequest(requestPayload); // find useful info azureTable = response.Tables.Find(table => table.Columns.Exists(column => column.ColumnName.Equals("avg_cpu_percent"))); foreach (List <dynamic> row in azureTable.Rows) { AvgCPUPct cpuPct = new AvgCPUPct((DateTime)row[0], (string)row[1], (string)row[2], (string)row[3], (double)row[4]); overview.AddAvgCpuPct(cpuPct); } Console.WriteLine(" ---- Peak Worker % per Pool Node ---- "); // Peak Worker % per Pool Node requestPayload.CSL = GetPerNodeCSL(azureLabel, startTime, endTime, "peak_worker_percent"); response = AzureRequester.PostRequest(requestPayload); // find useful info azureTable = response.Tables.Find(table => table.Columns.Exists(column => column.ColumnName.Equals("peak_worker_percent"))); foreach (List <dynamic> row in azureTable.Rows) { PeakWorkPct peakPct = new PeakWorkPct((DateTime)row[0], (string)row[1], (string)row[2], (string)row[3], (double)row[4]); overview.AddPeakWorkerPct(peakPct); } return(overview); }