def run(self, accessor, opts): """Ask fake Graphite Web for points. See command.CommandBase. """ # import here to make sure everything is setup. os.environ['DJANGO_SETTINGS_MODULE'] = 'graphite.settings' accessor.connect() from django.conf import settings as django_settings # Disable carbon link (enabled by default) django_settings.CARBONLINK_HOSTS = [] # Make sure logging goes to stderr django_settings.LOG_FILE_INFO = '-' django_settings.LOG_FILE_EXCEPTION = '-' django_settings.LOG_FILE_CACHE = '-' django_settings.LOG_FILE_RENDERING = '-' from graphite import util as graphite_util from biggraphite.plugins import graphite settings = bg_utils.settings_from_confattr(opts, prefix='') metadata_cache = bg_utils.cache_from_settings(accessor, settings) metadata_cache.open() if opts.profile == "flamegraph": flamegraph.start_profile_thread(fd=open("./perf.log", "w")) finder = graphite.Finder( directories=[], accessor=accessor, metadata_cache=metadata_cache ) time_start = graphite_util.timestamp(opts.time_start) time_end = graphite_util.timestamp(opts.time_end) output_csv = opts.output_csv results = finder.fetch(opts.patterns, time_start, time_end) for i, result in enumerate(results): # Change the output to match something that display_metrics # can work with. metric = _FakeMetric(result['path']) time_start, time_end, step = result['time_info'] points = [] for i, v in enumerate(result['values']): v = 0 if v is None else v points.append((time_start + step * i, v)) result = ( points, time_start, time_end, step ) if not opts.no_output: self._display_metric(metric, result, output_csv)
def setUp(self): super(TestFinder, self).setUp() for metric_name in "a", "a.a", "a.b.c", "x.y": metric = bg_test_utils.make_metric(metric_name) self.accessor.create_metric(metric) self.finder = bg_graphite.Finder(accessor=self.accessor, metadata_cache=self.metadata_cache)
def setUp(self): super(TestReader, self).setUp() self.accessor.connect() self.accessor.create_metric(self._METRIC) self.accessor.insert_points(self._METRIC, self._POINTS) self.accessor.flush() self.finder = bg_graphite.Finder( accessor=self.accessor, metadata_cache=self.metadata_cache, ) self.carbonlink = self.finder.carbonlink() self.reader = bg_graphite.Reader(self.accessor, self.metadata_cache, self.carbonlink, _METRIC_NAME)
def setUp(self): super(TestReader, self).setUp() self.accessor.connect() self.accessor.create_metric(self._METRIC) self.accessor.insert_points(self._METRIC, self._POINTS) self.accessor.flush() self.finder = bg_graphite.Finder(accessor=self.accessor, metadata_cache=self.metadata_cache) # Make sure that carbonlink is enabled. from django.conf import settings as django_settings django_settings.CARBONLINK_HOSTS = ["localhost:12345"] self.carbonlink = self.finder.carbonlink() self.reader = bg_graphite.Reader(self.accessor, self.metadata_cache, self.carbonlink, _METRIC_NAME)