public ActionResult SQLCPUSpark(string node) { var instance = SQLInstance.Get(node); if (instance == null) { return(ContentNotFound("SQLNode not found with name = '" + node + "'")); } var chart = GetSparkChart(20, 100); var dataPoints = instance.CPUHistoryLastHour; var area = GetSparkChartArea(noLine: true); area.AxisY.Maximum = 100; area.AxisX.Minimum = DateTime.UtcNow.AddHours(-1).ToOADate(); area.AxisX.Maximum = DateTime.UtcNow.ToOADate(); var series = GetSparkSeries("PercentCPU"); chart.Series.Add(series); if (dataPoints.HasData()) { foreach (var cpu in dataPoints.Data) { series.Points.Add(new DataPoint(cpu.EventTime.ToOADate(), cpu.ProcessUtilization)); } } chart.ChartAreas.Add(area); return(chart.ToResult()); }
public ActionResult SQLCPUSpark(string node) { var instance = SQLInstance.Get(node); if (instance == null) { return(ContentNotFound($"SQLNode not found with name = '{node}'")); } var chart = GetSparkChart(height: 20, width: 100, max: 100); var dataPoints = instance.CPUHistoryLastHour; var area = chart.ChartAreas.First(); area.AxisX.Minimum = DateTime.UtcNow.AddHours(-1).ToOADate(); area.AxisX.Maximum = DateTime.UtcNow.ToOADate(); area.AxisX.LineColor = Color.Transparent; if (dataPoints.HasData()) { var series = chart.Series.First(); foreach (var cpu in dataPoints.Data) { series.Points.Add(new DataPoint(cpu.EventTime.ToOADate(), cpu.ProcessUtilization)); } } return(chart.ToResult()); }
public ActionResult Active(string node, SQLInstance.ActiveSearchOptions options, SQLInstance.ActiveSearchOptions.ShowSleepingSessionOptions?sleeping = null, bool?system = false, bool?details = false) { if (sleeping.HasValue) { options.IncludeSleepingSessions = sleeping.Value; } if (system.HasValue) { options.IncludeSystemSessions = system.Value; } if (details.HasValue) { options.GetAdditionalInfo = details.Value; } var i = SQLInstance.Get(node); var vd = new DashboardModel { View = SQLViews.Active, CurrentInstance = i, ActiveSearchOptions = options }; return(View("Operations.Active", vd)); }
public ActionResult InstanceSummary(string node, string type) { var i = SQLInstance.Get(node); if (i == null) { return(ContentNotFound("Could not find instance " + node)); } switch (type) { case "connections": return(View("Instance.Connections", i)); case "errors": return(View("Instance.Errors", i)); case "memory": return(View("Instance.Memory", i)); case "jobs": return(View("Instance.Jobs", i)); default: return(ContentNotFound("Unknown summary view requested")); } }
public ActionResult InstanceSummary(string node, string type) { var i = SQLInstance.Get(node); if (i == null) { return(NoInstanceRedirect(node)); } switch (type) { case "configuration": return(View("Instance.Configuration", i)); case "connections": return(View("Instance.Connections", i)); case "errors": return(View("Instance.Errors", i)); case "memory": return(View("Instance.Memory", i)); case "jobs": return(View("Instance.Jobs", i)); case "db-files": return(View("Instance.DBFiles", i)); default: return(ContentNotFound("Unknown summary view requested")); } }
public async Task <ActionResult> KillQueryAsync(string node, int sid) { var i = SQLInstance.Get(node); await i.KillAsync(sid); Response.Redirect("?node=" + node); return(null); }
public ActionResult Databases(string node) { var vd = new DashboardModel { View = DashboardModel.Views.Databases, CurrentInstance = SQLInstance.Get(node) }; return(View("Dashboard", vd)); }
public ActionResult DatabaseTables(string node, string database) { var vd = new DatabasesModel { Instance = SQLInstance.Get(node), Database = database }; return(View("Databases.Modal.Tables", vd)); }
private OperationsActiveModel GetOperationsActiveModel(string node, SQLInstance.ActiveSearchOptions options) { var i = SQLInstance.Get(node); return(new OperationsActiveModel { View = SQLViews.Active, CurrentInstance = i, ActiveSearchOptions = options }); }
public ActionResult Connections(string node) { var i = SQLInstance.Get(node); var vd = new DashboardModel { View = SQLViews.Connections, CurrentInstance = i }; return(View(vd)); }
public ActionResult Kill(string node, string database, int sid) { var activeSearchOptions = new SQLInstance.ActiveSearchOptions(); var i = SQLInstance.Get(node); var activeOps = i.GetActiveOperations(activeSearchOptions); var model = activeOps.Data.FirstOrDefault(x => x.SessionId == sid); ViewData["node"] = node; ViewData["sid"] = sid; return(View("Operations.Active.Kill", model)); }
public ActionResult SQLRemovePlan(string node, string handle) { var planHandle = HttpServerUtility.UrlTokenDecode(handle); var instance = SQLInstance.Get(node); if (instance == null) { return(JsonError("Could not find server " + node)); } var result = instance.RemovePlan(planHandle); return(result != 0 ? Json(true) : JsonError("There was an error removing the plan from cache")); }
public ActionResult Databases(string node) { var i = SQLInstance.Get(node); var vd = new DashboardModel { View = SQLViews.Databases, CurrentInstance = i, Refresh = 2 * 60 }; return(View(vd)); }
public ActionResult Instance(string node) { var i = SQLInstance.Get(node); var vd = new InstanceModel { View = SQLViews.Instance, Refresh = node.HasValue() ? 10 : 5, CurrentInstance = i }; return(View("Instance", vd)); }
private OperationsTopModel GetOperationsModel(string node, SQLInstance.TopSearchOptions options) { var i = SQLInstance.Get(node); options.SetDefaults(); return(new OperationsTopModel { View = SQLViews.Top, CurrentInstance = i, TopSearchOptions = options }); }
public async Task <ActionResult> Connections(string node) { var i = SQLInstance.Get(node); var vd = new DashboardModel { View = SQLViews.Connections, CurrentInstance = i, Cache = i?.Connections, Connections = i == null ? null : await i.Connections.GetData().ConfigureAwait(false) }; return(View(vd)); }
public ActionResult TopDetail(string node, string handle, int?offset = null) { var planHandle = HttpServerUtility.UrlTokenDecode(handle); var i = SQLInstance.Get(node); var vd = new OperationsTopDetailModel { Instance = i, Op = i.GetTopOperation(planHandle, offset).Data }; return(View("Operations.Top.Detail", vd)); }
public ActionResult Instance(string node) { var i = SQLInstance.Get(node); var vd = new DashboardModel { View = SQLViews.Instance, StandaloneInstances = SQLInstance.AllStandalone, Refresh = node.HasValue() ? 10 : 5, CurrentInstance = i }; return(View("Instance", vd)); }
public ActionResult Top(string node, SQLInstance.TopSearchOptions options, bool?detailed = false) { options.SetDefaults(); var vd = new DashboardModel { View = DashboardModel.Views.Top, Detailed = detailed.GetValueOrDefault(), CurrentInstance = SQLInstance.Get(node), TopSearchOptions = options }; return(View("Dashboard", vd)); }
public ActionResult TopPlan(string node, string handle) { var planHandle = HttpServerUtility.UrlTokenDecode(handle); var i = SQLInstance.Get(node); var op = i.GetTopOperation(planHandle).Data; if (op == null) { return(ContentNotFound("Plan was not found.")); } var ms = new MemoryStream(Encoding.UTF8.GetBytes(op.QueryPlan)); return(File(ms, "text/xml", $"QueryPlan-{Math.Abs(handle.GetHashCode())}.sqlplan")); }
public ActionResult DatabaseDetail(string node, string database, string view, string objectName) { var i = SQLInstance.Get(node); var vd = new DatabasesModel { Instance = i, Database = database, ObjectName = objectName }; switch (view) { case "backups": vd.View = DatabasesModel.Views.Backups; return(View("Databases.Modal.Backups", vd)); case "restores": vd.View = DatabasesModel.Views.Restores; return(View("Databases.Modal.Restores", vd)); case "storage": vd.View = DatabasesModel.Views.Storage; return(View("Databases.Modal.Storage", vd)); case "tables": vd.View = DatabasesModel.Views.Tables; return(View("Databases.Modal.Tables", vd)); case "views": vd.View = DatabasesModel.Views.Views; return(View("Databases.Modal.Views", vd)); case "unusedindexes": vd.View = DatabasesModel.Views.UnusedIndexes; return(View("Databases.Modal.UnusedIndexes", vd)); case "missingindexes": vd.View = DatabasesModel.Views.MissingIndexes; return(View("Databases.Modal.MissingIndexes", vd)); case "storedprocedures": vd.View = DatabasesModel.Views.StoredProcedures; return(View("Databases.Modal.StoredProcedures", vd)); } return(View("Databases.Modal.Tables", vd)); }
public ActionResult TopPlan(string node, string handle) { var planHandle = HttpServerUtility.UrlTokenDecode(handle); var i = SQLInstance.Get(node); var op = i.GetTopOperation(planHandle).Data; if (op == null) { return(ContentNotFound("Plan was not found.")); } var ms = new MemoryStream(Encoding.UTF8.GetBytes(op.QueryPlan)); var dt = DateTime.Now.ToString("yyyyMMddHHmm"); return(File(ms, "text/xml", $"QueryPlan-{dt}-{op.CompiledOnDatabase}-{op.StoredProcedure}.sqlplan")); }
public ActionResult Connections(string node, bool refresh = false) { var instance = SQLInstance.Get(node); if (refresh && instance != null) { instance.Connections.Purge(); } var vd = new DashboardModel { View = DashboardModel.Views.Connections, CurrentInstance = instance }; return(View("Dashboard", vd)); }
public ActionResult TopDetail(string node, string handle, int?offset = null) { var planHandle = HttpServerUtility.UrlTokenDecode(handle); var instance = SQLInstance.Get(node); if (instance == null) { return(ContentNotFound("Server " + node + " not found.")); } var vd = new OpsTopDetailModel { Instance = instance, Op = instance.GetTopOperation(planHandle, offset).Data }; return(View("Operations.Top.Detail", vd)); }
public ActionResult SQLCPUSpark(string node) { var instance = SQLInstance.Get(node); if (instance == null) { return(ContentNotFound($"SQLNode not found with name = '{node}'")); } var start = DateTime.UtcNow.AddHours(-1); var points = instance.ResourceHistory.Data?.Where(p => p.EventTime >= start).ToList(); if (points == null || points.Count == 0) { return(EmptySparkSVG()); } return(SparkSVG(points, 100, p => p.ProcessUtilization, start)); }
public ActionResult Instance(string node, bool ajax = false) { var instance = SQLInstance.Get(node); if (instance == null && ajax) { return(ContentNotFound("Instance " + node + " was not found.")); } var vd = new DashboardModel { StandaloneInstances = SQLInstance.AllStandalone, Refresh = node.HasValue() ? 10 : 5, View = DashboardModel.Views.Instance, CurrentInstance = instance }; return(View(ajax ? "Instance" : "Dashboard", vd)); }
public ActionResult DatabaseDetail(string node, string database, string view) { var vd = new DatabasesModel { Instance = SQLInstance.Get(node), Database = database }; switch (view) { case "tables": vd.View = DatabasesModel.Views.Tables; return(View("Databases.Modal.Tables", vd)); case "views": vd.View = DatabasesModel.Views.Views; return(View("Databases.Modal.Views", vd)); } return(View("Databases.Modal.Tables", vd)); }
public ActionResult Top(string node, SQLInstance.TopSearchOptions options, bool?detailed = false) { var i = SQLInstance.Get(node); options.SetDefaults(); var vd = new OperationsTopModel { View = SQLViews.Top, Detailed = detailed.GetValueOrDefault(), CurrentInstance = i, TopSearchOptions = options }; if (i != null) { var cache = i.GetTopOperations(options); vd.TopOperations = cache.SafeData(true); vd.ErrorMessage = cache.ErrorMessage; } return(View("Operations.Top", vd)); }
public ActionResult StopAgentJob(string node, Guid guid) { var instance = SQLInstance.Get(node); return(Json(instance.StopJob(guid))); }
public ActionResult ToggleAgentJob(string node, Guid guid, bool enable) { var instance = SQLInstance.Get(node); return(Json(instance.ToggleJob(guid, enable))); }