Ejemplo n.º 1
0
def dashlet_title(
    settings: Mapping[str, Any],
    metric: Tuple[str, Mapping[str, Any], Mapping[str, Any]],
) -> str:
    if not settings.get("show_title", True):
        return ""
    default_title = SingleMetricDashlet.default_display_title()
    _unused, metric_specs, metric_context = metric
    metric_name = metric_specs.get("title")
    return render_title_with_macros_string(
        {
            context_key: metric_context[metrics_key]
            for metrics_key, context_key in (
                ("host_name", "host"),
                ("service_description", "service"),
                ("site", "site"),
            ) if metrics_key in metric_context
        },
        settings["single_infos"],
        settings.get("title", default_title),
        default_title,
        **({
            "$METRIC_NAME$": metric_name
        } if metric_name else {}),
    )
Ejemplo n.º 2
0
    def generate_response_data(cls, properties, context, settings):
        site_id = context.get("site", {}).get("site")

        time_range, range_title = Timerange().compute_range(
            properties["time_range"])
        default_title = _("Top alerters - %s") % range_title

        elements = cls._collect_data(
            only_sites=[SiteId(site_id)] if site_id else None,
            since=time_range[0],
            limit=properties.get("limit_objects"),
        )

        return {
            "render_mode":
            "alert_statistics",
            # TODO: This should all be done inside the dashlet class once it is instantiated by the
            #  ajax call
            "title":
            render_title_with_macros_string(
                context,
                settings["single_infos"],
                settings.get("title", default_title),
                default_title,
            ),
            "title_url":
            settings.get("title_url"),
            "plot_definitions": [],
            "data": [e.serialize() for e in elements],
            "upper_bound":
            max([100] + [e.num_problems + 1 for e in elements]),
        }
Ejemplo n.º 3
0
    def generate_response_data(cls, properties, context, settings):
        if config.is_single_local_site():
            site_id: Optional[SiteId] = config.omd_site()
        else:
            site_filter = context.get("site", {}).get("site")
            site_id = SiteId(site_filter) if site_filter else None

        render_mode = "hosts" if site_id else "sites"

        if render_mode == "hosts":
            assert site_id is not None
            elements = cls._collect_hosts_data(site_id)
            default_title = _("Host overview")
        elif render_mode == "sites":
            elements = cls._collect_sites_data()
            default_title = _("Site overview")
        else:
            raise NotImplementedError()

        return {
            # TODO: This should all be done inside the dashlet class once it is instantiated by the
            #  ajax call
            "title":
            render_title_with_macros_string(
                context,
                settings["single_infos"],
                settings.get("title", default_title),
                default_title,
            ),
            "render_mode":
            render_mode,
            "plot_definitions": [],
            "data": [e.serialize() for e in elements],
        }
 def figure_title(cls, properties, context, settings) -> str:
     if not settings.get("show_title", False):
         return ""
     title = settings.get("title", "")
     return render_title_with_macros_string(
         title,
         macro_mapping_from_context(context, settings["single_infos"],
                                    title),
     )
Ejemplo n.º 5
0
 def figure_title(cls, properties, context, settings, metric_name: str) -> str:
     if not settings.get("show_title", False):
         return ""
     default_title = AverageScatterplotDashlet.default_display_title()
     return render_title_with_macros_string(
         context,
         settings["single_infos"],
         settings.get("title", default_title),
         default_title,
         **{"$METRIC_NAME$": metric_name},
     )
Ejemplo n.º 6
0
def bar_chart_title(properties, context, settings) -> str:
    if not settings.get("show_title", True):
        return ""

    chart_name = settings['type'].split("_")[0]
    deflt_title = default_bar_chart_title(properties['log_target'], chart_name)

    return render_title_with_macros_string(
        context,
        settings["single_infos"],
        settings.get("title", deflt_title),
        deflt_title,
    )
Ejemplo n.º 7
0
def bar_chart_title(properties, context, settings) -> str:
    if not settings.get("show_title", True):
        return ""

    chart_name = settings['type'].split("_")[0]
    deflt_title = default_bar_chart_title(properties['log_target'], chart_name)
    title = settings.get("title", deflt_title)
    macro_mapping = macro_mapping_from_context(context,
                                               settings["single_infos"], title)
    macro_mapping["$GRAPH_TITLE$"] = deflt_title

    return render_title_with_macros_string(
        title,
        macro_mapping,
    )
Ejemplo n.º 8
0
def dashlet_title(
    settings: Mapping[str, Any],
    metric_specs: Mapping[str, Any],
) -> str:
    if not settings.get("show_title", True):
        return ""
    title = settings.get("title", "")
    return render_title_with_macros_string(
        title,
        macro_mapping_from_context(
            {
                context_key: metric_specs[metrics_key]
                for metrics_key, context_key in (
                    ("host_name", "host"),
                    ("service_description", "service"),
                    ("site", "site"),
                ) if metrics_key in metric_specs
            },
            settings["single_infos"],
            title,
        ),
    )