def gen_json_from_data(self, data, context): json_data = super(Dashboard, self).gen_json_from_data(data, context) nav = {'type': 'timepicker'} json_data.update({'title': data.get('title', self.name), 'nav': [nav]}) if 'time' in data: json_data['time'] = { 'from': data['time']['from'], 'to': data['time']['to'] } if 'tags' in data: json_data['tags'] = data.get('tags') if 'time_options' in data: nav['time_options'] = data.get('time_options', []) if 'refresh_intervals' in data: nav['refresh_intervals'] = data.get('refresh_intervals', []) if 'refresh' in data: json_data['refresh'] = data.get('refresh') if get_component_type(Rows) in data: json_data['rows'] = self.registry.create_component( Rows, data).gen_json() if get_component_type(Templates) in data: json_data['templating'] = { 'list': self.registry.create_component(Templates, data).gen_json(), 'enable': True } return json_data
def gen_json_from_data(self, data, context): json_data = super(Dashboard, self).gen_json_from_data(data, context) nav = { 'type': 'timepicker' } json_data.update({ 'title': data.get('title', self.name), 'nav': [ nav ] }) if 'time' in data: json_data['time'] = { 'from': data['time']['from'], 'to': data['time']['to'] } if 'tags' in data: json_data['tags'] = data.get('tags') if 'time_options' in data: nav['time_options'] = data.get('time_options', []) if 'refresh_intervals' in data: nav['refresh_intervals'] = data.get('refresh_intervals', []) if 'refresh' in data: json_data['refresh'] = data.get('refresh') if get_component_type(Rows) in data: json_data['rows'] = self.registry.create_component(Rows, data).gen_json() if get_component_type(Templates) in data: json_data['templating'] = { 'list': self.registry.create_component(Templates, data).gen_json(), 'enable': True } return json_data
def gen_item_json(self, items, result_list): try: super(Targets, self).gen_item_json(items, result_list) except UnregisteredComponentError: result_list.append( self.registry.create_component(GraphiteTarget, {get_component_type(GraphiteTarget): items}).gen_json() )
def gen_json_from_data(self, data, context): panel_json = super(SingleStat, self).gen_json_from_data(data, context) panel_json.update({ 'type': 'singlestat', 'title': data.get('title', None), 'span': data.get('span', None), 'targets': map(lambda v: {'target': v}, data.get('targets', [])), 'nullPointMode': data.get('nullPointMode', 'null'), 'valueName': data.get('valueName', 'current') }) if 'sparkline' in data: panel_json['sparkline'] = { 'show': True, 'full': data['sparkline'].get('full', False), 'lineColor': data['sparkline'].get('lineColor', 'rgb(31, 120, 193)'), 'fillColor': data['sparkline'].get('fillColor', 'rgba(31, 118, 189, 0.18)') } if 'colors' not in data: panel_json['colors'] = [ 'rgba(50, 172, 45, 0.97)', 'rgba(237, 129, 40, 0.89)', 'rgba(245, 54, 54, 0.9)' ] if 'valueMaps' in data: panel_json['valueMaps'] = [{'value': value, 'op': '=', 'text': text} for value, text in data['valueMaps'].iteritems()] if get_component_type(Links) in data: panel_json['links'] = self.registry.create_component(Links, data).gen_json() return panel_json
def __init__(self): super(ComponentRegistry, self).__init__() self._types = {} self._components = {} for clazz in _get_subclasses(ComponentBase): logger.info('Loading component type %s', clazz) self._types[get_component_type(clazz)] = clazz self._components[clazz] = {}
def _initialize_exporters(exporter_names, exporter_types, config): exporters = dict([(get_component_type(exporter), exporter) for exporter in exporter_types]) exporters = dict([(name[:-9], exporter) for name, exporter in exporters.items() if name[:-9] in exporter_names]) return [ exporter(**config.get_config(name)) for (name, exporter) in exporters.items() ]
def __init__(self, data, registry): """ :type registry: ComponentRegistry """ super(ComponentBase, self).__init__() self.data = data[get_component_type(type(self))] if self.data is None: self.data = {} self.name = data.get('name') self.registry = registry
def gen_json_from_data(self, data, context): row_json = super(Row, self).gen_json_from_data(data, context) row_json.update({ 'title': data.get('title', ''), 'height': data.get('height', '250px'), 'showTitle': data.get('showTitle', False), 'collapse': data.get('collapse', False), 'panels': [] }) if get_component_type(Panels) in data: row_json['panels'] = self.registry.create_component(Panels, data).gen_json() return row_json
def gen_json_from_data(self, data, context): component_type = get_component_type(type(self)) if self.name: logger.debug("Processing component '%s' with name '%s' from template '%s'", component_type, context.expand_placeholders(self.name), self.name) else: logger.debug("Processing anonymous component '%s'", component_type) json = {} for field in self._copy_fields: if field in data: json[field] = data[field] return json
def gen_json_from_data(self, data, context): panel_json = super(Graph, self).gen_json_from_data(data, context) panel_json.update({ 'type': 'graph', 'title': self.data.get('title', None), 'span': self.data.get('span', None), 'datasource': self.data.get('datasource', 'default'), 'nullPointMode': self.data.get('nullPointMode', 'null') }) targets = self.data.get('targets', []) if targets: panel_json['targets'] = targets elif 'target' in self.data: targets.append(self.data['target']) panel_json['targets'] = map(lambda v: {'target': v}, targets) if 'grid' in self.data: panel_json['grid'] = { 'leftMax': self.data['grid'].get('leftMax', None), 'rightMax': self.data['grid'].get('rightMax', None), 'leftMin': self.data['grid'].get('leftMin', None), 'rightMin': self.data['grid'].get('rightMin', None), 'threshold1': self.data['grid'].get('threshold1', None), 'threshold2': self.data['grid'].get('threshold2', None) } if 'legend' in self.data: panel_json['legend'] = { 'show': self.data['legend'].get('show', True), 'values': self.data['legend'].get('values', False), 'min': self.data['legend'].get('min', False), 'max': self.data['legend'].get('max', False), 'current': self.data['legend'].get('current', False), 'total': self.data['legend'].get('total', False), 'avg': self.data['legend'].get('avg', False), 'alignAsTable': self.data['legend'].get('alignAsTable', False), 'hideEmpty': self.data['legend'].get('hideEmpty', False) } if 'tooltip' in self.data: panel_json['tooltip'] = { 'value_type': self.data['tooltip'].get('value_type', 'individual'), 'shared': self.data['tooltip'].get('shared', False), } if 'seriesOverrides' in self.data: overrides = [] for override in self.data['seriesOverrides']: for alias, settings in override.iteritems(): to_add = {'alias': alias} to_add.update(settings) overrides.append(to_add) panel_json['seriesOverrides'] = overrides if get_component_type(Links) in self.data: panel_json['links'] = self.registry.create_component(Links, self.data).gen_json() return panel_json
def gen_json_from_data(self, data, context): panel_json = super(Graph, self).gen_json_from_data(data, context) panel_json.update({ 'type': 'graph', 'title': self.data.get('title', None), 'span': self.data.get('span', None), }) targets = self.data.get('targets', []) if 'target' in self.data: targets.append(self.data['target']) panel_json['targets'] = map(lambda v: {'target': v}, targets) panel_json['nullPointMode'] = self.data.get('nullPointMode', 'null') if 'grid' in self.data: panel_json['grid'] = { 'leftMax': self.data['grid'].get('leftMax', None), 'rightMax': self.data['grid'].get('rightMax', None), 'leftMin': self.data['grid'].get('leftMin', None), 'rightMin': self.data['grid'].get('rightMin', None) } if 'legend' in self.data: panel_json['legend'] = { 'show': self.data['legend'].get('show', True), 'values': self.data['legend'].get('values', False), 'min': self.data['legend'].get('min', False), 'max': self.data['legend'].get('max', False), 'current': self.data['legend'].get('current', False), 'total': self.data['legend'].get('total', False), 'avg': self.data['legend'].get('avg', False), 'alignAsTable': self.data['legend'].get('alignAsTable', False), 'hideEmpty': self.data['legend'].get('hideEmpty', False) } if 'tooltip' in self.data: panel_json['tooltip'] = { 'value_type': self.data['tooltip'].get('value_type', 'individual'), 'shared': self.data['tooltip'].get('shared', False), } if get_component_type(Links) in self.data: panel_json['links'] = self.registry.create_component(Links, self.data).gen_json() return panel_json
def gen_json_from_data(self, data, context): panel_json = super(SingleStat, self).gen_json_from_data(data, context) panel_json.update({ 'type': 'singlestat', 'title': data.get('title', None), 'span': data.get('span', None), 'targets': map(lambda v: {'target': v}, data.get('targets', [])), 'nullPointMode': data.get('nullPointMode', 'null'), 'valueName': data.get('valueName', 'current') }) if 'sparkline' in data: panel_json['sparkline'] = { 'show': True, 'full': data['sparkline'].get('full', False), 'lineColor': data['sparkline'].get('lineColor', 'rgb(31, 120, 193)'), 'fillColor': data['sparkline'].get('fillColor', 'rgba(31, 118, 189, 0.18)') } if 'valueMaps' in data: panel_json['valueMaps'] = [{'value': value, 'op': '=', 'text': text} for value, text in data['valueMaps'].iteritems()] if get_component_type(Links) in data: panel_json['links'] = self.registry.create_component(Links, data).gen_json() return panel_json
def gen_json_from_data(self, data, context): panel_json = super(SingleStat, self).gen_json_from_data(data, context) panel_json.update({ 'type': 'singlestat', 'title': data.get('title', None), 'span': data.get('span', None), 'nullPointMode': data.get('nullPointMode', 'null'), 'valueName': data.get('valueName', 'current') }) panel_json['targets'] = self.registry.create_component(Targets, data).gen_json() if 'targets' in data else [] if 'sparkline' in data: panel_json['sparkline'] = { 'show': True, 'full': data['sparkline'].get('full', False), 'lineColor': data['sparkline'].get('lineColor', 'rgb(31, 120, 193)'), 'fillColor': data['sparkline'].get('fillColor', 'rgba(31, 118, 189, 0.18)') } if 'gauge' in data: panel_json['gauge'] = { 'show': True, 'minValue': data['gauge'].get('minValue', 0), 'maxValue': data['gauge'].get('maxValue', 100), 'thresholdMarkers': data['gauge'].get('thresholdMarkers', True), 'thresholdLabels': data['gauge'].get('thresholdLabels', False) } if 'colors' not in data: panel_json['colors'] = [ 'rgba(50, 172, 45, 0.97)', 'rgba(237, 129, 40, 0.89)', 'rgba(245, 54, 54, 0.9)' ] if 'valueMaps' in data: panel_json['valueMaps'] = [{'value': value, 'op': '=', 'text': text} for value, text in data['valueMaps'].items()] if get_component_type(Links) in data: panel_json['links'] = self.registry.create_component(Links, data).gen_json() return panel_json
def _create_component(self, panel_json, clazz, data): if get_component_type(clazz) in data: panel_json[get_component_type( clazz)] = self.registry.create_component(clazz, data).gen_json()
def __init__(self, data, registry, item_base_class): super(JsonListGenerator, self).__init__(data, registry) self.component_item_types = [get_component_type(clazz) for clazz in _get_subclasses(item_base_class)]
def _create_component(self, panel_json, clazz, data): if get_component_type(clazz) in data: panel_json[get_component_type(clazz)] = self.registry.create_component(clazz, data).gen_json()
def _initialize_exporters(exporter_names, exporter_types, config): exporters = dict([(get_component_type(exporter), exporter) for exporter in exporter_types]) exporters = dict([(name[:-9], exporter) for name, exporter in exporters.iteritems() if name[:-9] in exporter_names]) return [exporter(**config.get_config(name)) for (name, exporter) in exporters.iteritems()]