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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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()
         )
Ejemplo n.º 4
0
 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 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()
         )
Ejemplo n.º 6
0
 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] = {}
Ejemplo n.º 7
0
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()
    ]
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
 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
Ejemplo n.º 10
0
 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
Ejemplo n.º 11
0
 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
Ejemplo n.º 12
0
 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
Ejemplo n.º 13
0
 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
Ejemplo n.º 14
0
 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
Ejemplo n.º 16
0
 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()
Ejemplo n.º 17
0
 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()
Ejemplo n.º 19
0
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()]