/// <summary> /// Get the global monitors specified on the commandline /// </summary> /// <param name="apiKey"></param> /// <param name="client"></param> /// <param name="showMonitors"></param> public void GetGlobalMonitors(string apiKey, HttpClient client, List <string> argMonitors) { using (HttpResponseMessage response = client.Get("api?action=agentInfo&apikey=" + apiKey + "&output=xml&agentId=" + this.Id + "&loadTests=true")) { response.EnsureStatusIsSuccessful(); String data = response.Content.ReadAsString(); XDocument xml = XDocument.Parse(data); // copy the list of monitors from the command line List <string> showMonitors = new List <string>(argMonitors); // check if the list of monitors to show is 'all' or 'empty' if (showMonitors.Count == 0) { foreach (MonitorDefinition md in GlobalMonitor.GetMonitorDefinitions()) { showMonitors.Add(md.Metric); } } // Loop through the list of monitors to show and retrieve the monitor details foreach (string m in showMonitors) { // select the monitor having the name that is requested var allMonitors = from monitorNode in xml.Descendants(m) select new { Id = monitorNode.Element("id").Value, Name = Util.BaseMonitorName(monitorNode.Element("name").Value, '@') }; // create the monitor objects and copy in the values from the // XML results foreach (var a in allMonitors) { Monitor monitor = new GlobalMonitor(this); monitor.Id = a.Id; monitor.Name = a.Name; monitor.GetMetrics(apiKey, client); this.AddMonitor(monitor); } } } }
/// <summary> /// Get the global monitors specified on the commandline /// </summary> /// <param name="apiKey"></param> /// <param name="client"></param> /// <param name="showMonitors"></param> public void GetGlobalMonitors(string apiKey, HttpClient client, List<string> argMonitors) { using (HttpResponseMessage response = client.Get("api?action=agentInfo&apikey=" + apiKey + "&output=xml&agentId=" + this.Id + "&loadTests=true")) { response.EnsureStatusIsSuccessful(); String data = response.Content.ReadAsString(); XDocument xml = XDocument.Parse(data); // copy the list of monitors from the command line List<string> showMonitors = new List<string>(argMonitors); // check if the list of monitors to show is 'all' or 'empty' if (showMonitors.Count == 0) { foreach (MonitorDefinition md in GlobalMonitor.GetMonitorDefinitions()) showMonitors.Add(md.Metric); } // Loop through the list of monitors to show and retrieve the monitor details foreach (string m in showMonitors) { // select the monitor having the name that is requested var allMonitors = from monitorNode in xml.Descendants(m) select new { Id = monitorNode.Element("id").Value, Name = Util.BaseMonitorName(monitorNode.Element("name").Value, '@') }; // create the monitor objects and copy in the values from the // XML results foreach (var a in allMonitors) { Monitor monitor = new GlobalMonitor(this); monitor.Id = a.Id; monitor.Name = a.Name; monitor.GetMetrics(apiKey, client); this.AddMonitor(monitor); } } } }