Пример #1
0
        public DisplayMetricChart TryGetChart(string chartName)
        {
            string me = whoami();

            DisplayMetricChart chart = _metricManager.GetChart(chartName);

            if (chart != null)
            {
                MembershipHelper.CheckMembership(chart.GroupID, me);
                return(chart);
            }
            else
            {
                //check chart name format
                if (string.IsNullOrEmpty(chartName))
                {
                    return(null);
                }
                string[] split    = chartName.Split('_');
                string   group    = split[0];
                string   category = split.Length > 1 ? split[1] : null;
                string   counter  = split.Length > 2 ? split[2] : null;
                string   instance = split.Length > 3 ? split[3] : null;
                MembershipHelper.CheckMembership(group, me);

                //Try create chart if not exist
                List <MetricDataSet> datasets = _metricManager.QueryDataSet(group, category, counter, instance);
                if (datasets.Count == 0)
                {
                    return(null);
                }

                chart = _metricManager.CreateChart(chartName, group, chartName);
                foreach (var dataset in datasets)
                {
                    _metricManager.AddDataSet(chartName, dataset.Id, dataset.Instance, "line");
                }
                chart = _metricManager.GetChart(chartName);
            }
            return(chart);
        }