add_bandwidth_reports = { label = "Add Bandwidth Detail Reports" comment = "This adds specialised bandwidth reporting for gateway devices. This snapon requires that the date/time database field supress below is set to 4. A total bytes database field is optional." config_snapon_category = "sa_engineering" version = "1.0" # 01/06/2015 - 1.0 - GAS - Initial creation parameters = { sent_bytes_field = { parameter_value = "" validation_type = "string" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.sent_bytes_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # sent_bytes_field received_bytes_field = { parameter_value = "" validation_type = "string" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.received_bytes_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # received_bytes_field have_total_bytes_field = { parameter_value = "false" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.have_total_bytes_field.form_element_label" form_element_type = "checkbox" description = "" } # have_total_bytes_field total_bytes_field = { parameter_value = "" validation_type = "string" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.total_bytes_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" # Display this only when its checkbox is checked condition = "have_total_bytes_field" } # total_bytes_field source_field = { parameter_value = "" validation_type = "string" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.source_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # source_field destination_field = { parameter_value = "" validation_type = "string" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.destination_field.form_element_label" form_element_type = "select" select_options_source = "database_fields" description = "" } # destination_field report_group_name = { parameter_value = "Bandwidth in detail" final_node_name = "report_group" validation_type = "string" form_element_label = "$lang_admin.snapons.add_bandwidth_reports.parameters.report_group_name.form_element_label" form_element_type = "text" form_element_width = "380" } # report_group_name } # parameters parameters_form = { group_1 = { description = "$lang_admin.snapons.add_bandwidth_reports.parameters_form.group_1.description" parameters = { sent_bytes_field = true received_bytes_field = true have_total_bytes_field = true total_bytes_field = true source_field = true destination_field = true report_group_name = true } # parameters } # group 1 } # parameters_form attach_operations = { add_aggregating_field_report_field = { type = "add_report_fields" fields = { hour = { label = "{=capitalize(expand(lang_stats.field_labels.hour))=}" column_label = "" column_info = "" database_field = "date_time" display_format_type = "date_time" subitems_level = 4 } # hour sent_bps = { category = "" column_alignment = "" column_info = "" column_label = "Sent (bps)" custom_display_format_type = "" custom_display_format_type_export = "" display_format_type = "bandwidth" display_format_type_export = "" expression = "(cell_by_name('{= @parameters{'sent_bytes_field'}{'parameter_value'} =}')*8)/3600" label = "Sent (bps)" percent_calculation = "sum" show_average_value = "true" show_max_value = "true" show_min_value = "true" show_remainder_value = "true" show_total_value = "true" skip_escaping = "false" sort_by_before_expression_evaluation = "" sort_direction_before_expression_evaluation = "" type = "float" database_field = "" } # sent_bps rcvd_bps = { column_label = "Received (bps)" display_format_type = "bandwidth" expression = "(cell_by_name('{= @parameters{'received_bytes_field'}{'parameter_value'} =}')*8)/3600" label = "Received (bps)" percent_calculation = "sum" show_average_value = "true" show_max_value = "true" show_min_value = "true" show_remainder_value = "true" show_total_value = "true" skip_escaping = "false" type = "float" database_field = "" } # rcvd_bps total_bps = { column_label = "Total (bps)" display_format_type = "bandwidth" expression = "(cell_by_name('total_bytes')*8)/3600" label = "Total (bps)" percent_calculation = "sum" show_average_value = "true" show_max_value = "true" show_min_value = "true" show_remainder_value = "true" show_total_value = "true" skip_escaping = "false" type = "float" database_field = "" } # total_bps } # fields } # add_aggregating_field_report_field # Add bandwidth reports add_reports = { type = "add_reports" reports = { hour = { label = "Hours" report_elements = { hour = { label = "Hours" type = "table" show_graphs = "true" show_table = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "" sort_by = "hour" sort_direction = "ascending" graphs = { graph_type = "bar" y_axis_height = "80" x_axis_length = "400" show_percent_on_y_axis = "false" sort_all_descending = "false" show_chrono_graph = "true" show_legend = "false" } # graphs columns = { 0 = { report_field = "hour" show_column = true } # 0 1 = { report_field = "duration" show_column = true show_percent_column = false show_bar_column = false show_graph = false } # 1 2 = { report_field = "accesses" show_column = true show_percent_column = false show_bar_column = false show_graph = false } # 2 3 = { report_field = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" show_column = true show_percent_column = false show_bar_column = false show_graph = false } # 3 4 = { report_field = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" show_column = true show_percent_column = false show_bar_column = false show_graph = false } # 4 5 = { report_field = "total_bytes" show_column = true show_percent_column = false show_bar_column = false show_graph = true add_in_snapon = "{= @parameters{'have_total_bytes_field'}{'parameter_value'} =}" } # 5 6 = { report_field = "unique_source_ips" show_column = true show_percent_column = false show_bar_column = false show_graph = false } # 6 } # columns } # hour } # report_elements } # hour bandwidth_src = { label = "Source" report_elements = { src_by_sent = { label = "Source (sent bytes)" type = "table" sort_by = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" report_link = "src" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" columns = { src.report_field = "src" sent = { report_field = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" show_bar_column = true } # sent } # columns } # src_by_sent src_by_rcvd = { label = "Source (rcvd bytes)" type = "table" sort_by = "rcvd" filter.expression = "" show_header_bar = "true" report_link = "src" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" columns = { src.report_field = "src" rcvd = { report_field = "rcvd" show_bar_column = true } # rcvd } # columns } # src_by_rcvd src_by_total = { label = "Source (total bytes)" type = "table" sort_by = "total_bytes" filter.expression = "" show_header_bar = "true" report_link = "src" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" columns = { src.report_field = "src" total_bytes = { report_field = "total_bytes" show_bar_column = true } # total_bytes } # columns add_in_snapon = "{= @parameters{'have_total_bytes_field'}{'parameter_value'} =}" } # src_by_total } # report_elements } # bandwidth_src bandwidth_dst = { label = "Destination" report_elements = { dst_by_sent = { label = "Destination ({= @parameters{'sent_bytes_field'}{'parameter_value'} =} bytes)" type = "table" sort_by = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" report_link = "dst" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" columns = { dst.report_field = "dst" sent = { report_field = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" show_bar_column = true } # sent } # columns } # dst_by_sent dst_by_rcvd = { label = "Destination (rcvd bytes)" type = "table" sort_by = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" display_side_by_side = "true" report_link = "dst" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" columns = { dst.report_field = "dst" rcvd = { report_field = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" show_bar_column = true } # rcvd } # columns } # dst_by_rcvd dst_by_total = { label = "Destination (total bytes)" type = "table" sort_by = "total_bytes" filter.expression = "" show_header_bar = "true" report_link = "dst" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" columns = { dst.report_field = "dst" total_bytes = { report_field = "total_bytes" show_bar_column = true } # total_bytes } # columns add_in_snapon = "{= @parameters{'have_total_bytes_field'}{'parameter_value'} =}" } # dst_by_total } # report_elements } # bandwidth_dst bandwidth_over_time = { label = "Bandwidth over time" description = "These graphs show bandwidth over time split daily and hourly. The hourly figures also show bps for that hour (e.g. sum(sent)*8/3600)" report_elements = { bandwidth_by_day_sent = { label = "Daily (sent)" type = "table" sort_by = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" report_link = "day" display_side_by_side = "false" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" show_graphs = "true" show_table = "false" graphs = { graph_type = "bar" show_chrono_graph = "true" y_axis_height = "160" x_axis_length = "200" show_percent_on_y_axis = "false" sort_all_descending = "false" } # graphs columns = { day.report_field = "day" sent = { report_field = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" show_bar_column = true show_graph = true } # sent } # columns } # bandwidth_by_day_sent bandwidth_by_day_rcvd = { label = "Daily (rcvd)" type = "table" sort_by = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" report_link = "day" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" show_graphs = "true" show_table = "false" graphs = { graph_type = "bar" show_chrono_graph = "true" y_axis_height = "160" x_axis_length = "200" show_percent_on_y_axis = "false" sort_all_descending = "false" } # graphs columns = { day.report_field = "day" rcvd = { report_field = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" show_bar_column = true show_graph = true } # rcvd } # columns } # bandwidth_by_day_rcvd bandwidth_by_day_total = { label = "Daily (total)" type = "table" sort_by = "total_bytes" filter.expression = "" show_header_bar = "true" report_link = "day" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" show_graphs = "true" show_table = "false" graphs = { graph_type = "bar" show_chrono_graph = "true" y_axis_height = "160" x_axis_length = "200" show_percent_on_y_axis = "false" sort_all_descending = "false" } # graphs columns = { day.report_field = "day" total_bytes = { report_field = "total_bytes" show_bar_column = true show_graph = true } # total_bytes } # columns add_in_snapon = "{= @parameters{'have_total_bytes_field'}{'parameter_value'} =}" } # bandwidth_by_day_total bandwidth_by_hour_sent = { label = "Hourly (sent)" type = "table" sort_by = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" report_link = "hour" display_side_by_side = "false" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" show_graphs = "true" show_table = "false" graphs = { graph_type = "bar" show_chrono_graph = "true" y_axis_height = "160" x_axis_length = "200" show_percent_on_y_axis = "false" sort_all_descending = "false" } # graphs columns = { hour.report_field = "hour" sent = { report_field = "{= @parameters{'sent_bytes_field'}{'parameter_value'} =}" show_graph = true show_bar_column = true } # sent sent_bps = { report_field = "sent_bps" show_column = true show_percent_column = false show_bar_column = false show_graph = true } # sent_bps } # columns } # bandwidth_by_hour_sent bandwidth_by_hour_rcvd = { label = "Hourly (rcvd)" type = "table" sort_by = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" filter.expression = "" show_header_bar = "true" report_link = "hour" display_side_by_side = "true" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" show_graphs = "true" show_table = "false" graphs = { graph_type = "bar" show_chrono_graph = "true" y_axis_height = "160" x_axis_length = "200" show_percent_on_y_axis = "false" sort_all_descending = "false" } # graphs columns = { hour.report_field = "hour" rcvd = { report_field = "{= @parameters{'received_bytes_field'}{'parameter_value'} =}" show_graph = true show_bar_column = true } # rcvd rcvd_bps = { report_field = "rcvd_bps" show_column = true show_percent_column = false show_bar_column = false show_graph = true } # rcvd_bps } # columns } # bandwidth_by_hour_rcvd bandwidth_by_hour_total = { label = "Hourly (total)" type = "table" sort_by = "total_bytes" filter.expression = "" show_header_bar = "true" report_link = "hour" display_side_by_side = "false" display_graphs_side_by_side = "true" maximum_table_bar_graph_length = "100" show_graphs = "true" show_table = "false" graphs = { graph_type = "bar" show_chrono_graph = "true" y_axis_height = "160" x_axis_length = "200" show_percent_on_y_axis = "false" sort_all_descending = "false" } # graphs columns = { hour.report_field = "hour" total_bytes = { report_field = "total_bytes" show_graph = true show_bar_column = true } # total_bytes total_bps = { report_field = "total_bps" show_graph = true show_bar_column = true } # total_bps } # columns add_in_snapon = "{= @parameters{'have_total_bytes_field'}{'parameter_value'} =}" } # bandwidth_by_hour_total } # report_elements } # bandwidth_over_time } # reports reports_menu = { bandwidth_group = { label = "{= @parameters{'report_group_name'}{'parameter_value'} =}" move_to_top = true items = { bandwidth_src = { report = "bandwidth_src" } # bandwidth_src bandwidth_dst = { report = "bandwidth_dst" } # bandwidth_dst bandwidth_over_time = { report = "bandwidth_over_time" } # bandwidth_over_time } # items } # bandwidth_group date_time_group = { items = { hour = { report = "hour" } # hour } # items } # date_time_group } # reports_menu } # add_reports } # attach_operations } # add_bandwidth_reports