{
    "name": "Applications",  
    "i18n_name" : "top_protos",
    "data_source" : "flows",
    "hourly": true,
    "chart" : [
	{
	    "chart_id" : "top_l7_categories", // Each id MUST be different
	    "chart_i18n_name" : "top_l7_cat",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "25rem",
		"min-height" : "25rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/top_l7_categories.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze"
	    },
	    "chart_gui_filter" : "l7cat", // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT L7_CATEGORY,SUM(TOTAL_BYTES) AS bytes FROM flows WHERE ($WHERE$) GROUP BY L7_CATEGORY ORDER BY bytes DESC",
	    "chart_type" : "polararea_apex_chart",
	    "chart_record_value" : "bytes",
	    "chart_record_label" : "L7_CATEGORY",
	    "chart_width" : 4, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_bytes", // JS tooltip event, optional feature
	    "chart_aggregate_low_data" : true,
	},{
	    "chart_id" : "top_l7_proto", // Each id MUST be different
	    "chart_i18n_name" : "top_l7_proto",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "25rem",
		"min-height" : "25rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/top_l7_proto.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze"
	    },
	    "chart_gui_filter" : "l7proto", // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT L7_PROTO,SUM(TOTAL_BYTES) AS bytes FROM flows WHERE ($WHERE$) GROUP BY L7_PROTO ORDER BY bytes DESC",
	    "chart_type" : "donut_apex_chart",
	    "chart_record_value" : "bytes",
	    "chart_aggregate_low_data" : true,
	    "chart_record_label" : "L7_PROTO",
	    "chart_width" : 4, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_bytes", // JS tooltip event, optional feature
	},{
	    "chart_id" : "top_l4_proto", // Each id MUST be different
	    "chart_i18n_name" : "top_l4_proto",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "25rem",
		"min-height" : "25rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/top_l4_proto.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze"
	    },
	    "chart_gui_filter" : "l4proto", // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT PROTOCOL,SUM(TOTAL_BYTES) AS bytes FROM flows WHERE ($WHERE$) GROUP BY PROTOCOL ORDER BY bytes DESC",
	    "chart_type" : "donut_apex_chart",
	    "chart_aggregate_low_data" : true,
	    "chart_record_value" : "bytes",
	    "chart_record_label" : "PROTOCOL",
	    "chart_width" : 4, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_bytes", // JS tooltip event, optional feature
	},{
	    "chart_id" : "qoe_score", // Each id MUST be different
	    "chart_i18n_name" : "qoe",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "25rem",
		"min-height" : "25rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/qoe_score.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze"
	    },
	    "chart_gui_filter" : "l4proto", // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT QOE_SCORE_RANGE as QOE_SCORE, COUNT(*) AS count FROM (SELECT CASE WHEN QOE_SCORE BETWEEN 1 AND 50 THEN 1 WHEN QOE_SCORE BETWEEN 51 AND 60 THEN 51 WHEN QOE_SCORE BETWEEN 61 AND 75 THEN 61 WHEN QOE_SCORE BETWEEN 76 AND 90 THEN 76 WHEN QOE_SCORE BETWEEN 91 AND 100 THEN 91 ELSE 0 END AS QOE_SCORE_RANGE FROM flows WHERE ($WHERE$)) f GROUP BY f.QOE_SCORE_RANGE ORDER BY count DESC",
	    "chart_type" : "donut_apex_chart",
	    "chart_aggregate_low_data" : false,
	    "chart_record_value" : "count",
	    "chart_record_label" : "QOE_SCORE",
	    "chart_width" : 4, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_value", // JS tooltip event, optional feature
	},{
	    "chart_id" : "highest_avg_flow_size_per_l7", // Each id MUST be different
	    "chart_i18n_name" : "highest_avg_flow_size_per_l7",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "25rem",
		"min-height" : "25rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/l7_proto_per_flow.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze"
	    },
	    "chart_gui_filter" : "l7proto", // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT L7_PROTO,avg(TOTAL_BYTES) AS avg_bytes FROM flows WHERE ($WHERE$) GROUP BY L7_PROTO ORDER BY avg_bytes DESC LIMIT 15",
	    "chart_type" : "bar_apex_chart",
	    "chart_i18n_extra_x_label" : "flow_size",
	    "chart_record_value" : "avg_bytes",
	    "chart_record_label" : "L7_PROTO",
	    "chart_width" : 8, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_bytes", // JS tooltip event, optional feature
	},{
	    "chart_id" : "l7_proto_per_flow", // Each id MUST be different
	    "chart_i18n_name" : "flow_count_per_l7",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "35rem",
		"min-height" : "35rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/l7_proto_per_flow.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze"
	    },
	    "chart_gui_filter" : "l7proto", // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT L7_PROTO,COUNT(*) AS flows FROM flows WHERE ($WHERE$) GROUP BY L7_PROTO ORDER BY flows DESC LIMIT 15",
	    "chart_type" : "treemap_apex_chart",
	    "chart_i18n_extra_x_label" : "flows",
	    "chart_record_value" : "flows",
	    "chart_record_label" : "L7_PROTO",
	    "chart_width" : 12, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_value", // JS tooltip event, optional feature
	},{
	    "chart_id" : "top_cli_per_proto", // Each id MUST be different
	    "chart_i18n_name" : "top_hosts_per_proto_in_flows",

	    "chart_css_styles" : { // CSS chart styles, optional feature
		"max-height" : "35rem",
		"min-height" : "35rem",
	    },
	    "chart_endpoint" : "/lua/pro/rest/v2/get/db/charts/top_cli_per_proto.lua",
	    "chart_events" : { // JS Events, optional feature
		"dataPointSelection" : "db_analyze_multiple_filters"
	    },
	    "chart_gui_filter" : [ "cli_ip", "l7proto" ], // Filter displayed in the GUI
	    "chart_sql_query" : "SELECT ADDR_FORMATTED, LABEL, L7_PROTO, COUNT(*) as flows FROM (SELECT IPv4NumToString(IPV4_SRC_ADDR) AS ADDR_FORMATTED, SRC_LABEL as LABEL, L7_PROTO FROM flows WHERE ($WHERE$) UNION ALL SELECT IPv6NumToString(IPV6_SRC_ADDR) AS ADDR_FORMATTED, SRC_LABEL as LABEL, L7_PROTO FROM flows WHERE ($WHERE$) UNION ALL SELECT IPv4NumToString(IPV4_DST_ADDR) AS ADDR_FORMATTED, DST_LABEL as LABEL, L7_PROTO FROM flows WHERE ($WHERE$) UNION ALL SELECT IPv6NumToString(IPV6_DST_ADDR) AS ADDR_FORMATTED, DST_LABEL as LABEL, L7_PROTO FROM flows WHERE ($WHERE$)) GROUP BY ADDR_FORMATTED, LABEL, L7_PROTO ORDER BY flows DESC LIMIT 50",
	    "chart_type" : "heatmap_apex_chart",
	    "horizontal_chart" : false,
	    "chart_i18n_extra_y_label" : "flows",
	    "chart_record_value" : "flows",
	    "chart_record_label" : [ "ADDR", "L7_PROTO" ],
	    "chart_show_label" : [ "LABEL" ],
	    "chart_standard_second_label_formatter" : true,
	    "chart_width" : 12, // Chart width, it can be a number between 1 and 12, optional feature
	    "chart_y_formatter" : "format_value", // JS tooltip event, optional feature
	}],
    "show_in_page" : "analysis",
}
