# Copyright (c) 2010 Flowerfire, Inc. All Rights Reserved. servers_alive_statistics = { plugin_version = "1.2.1" # ????-??-?? - 1.0 - ??? - Initial creation # 2011-05-12 - 1.1 - GMF - Added duration field calculated from difference of time with previous time. Fixed apostrophe parsing bug. # 2011-05-13 - 1.2 - GMF - Removed compute duration; time_difference already does this. # 2011-07-18 - 1.2.1 - MSG - Edited info lines. info.1.manufacturer = "Woodstone" info.1.device = "Servers Alive (Statistics)" info.1.version.1 = "" # The name of the log format log.format.format_label = "Servers Alive (Statistics) Log Format" log.miscellaneous.log_data_type = "network" log.miscellaneous.log_format_type = "other" # The log is in this format if any of the first ten lines match this regular expression log.format.autodetect_regular_expression = "^[^,]+,[0-9]+,[0-9]+,[0-9]+,[0-9]{8},[0-9]+,[0-9]{8},[0-9]+,[0-9]+$" # Logs fields are separated by a comma log.format.field_separator = "," # A log of data is called an event statistics.miscellaneous.entry_name = "events" # Literal apostrophes can appear in field values, and should not be treated as quotes log.format.treat_apostrophes_as_quotes = false # The format of dates and times in this log log.format.date_format = "yyyymmdd" log.format.time_format = "hhmm" # Log fields log.fields = { server_name = { label = "$lang_stats.field_labels.server_name" type = "flat" index = 1 subindex = 0 } # server_name uid = { label = "$lang_stats.field_labels.uid" type = "flat" index = 2 subindex = 0 } # uid current_state = { label = "$lang_stats.field_labels.current_state" type = "flat" index = 3 subindex = 0 } # current_state previous_state = { label = "$lang_stats.field_labels.previous_state" type = "flat" index = 4 subindex = 0 } # previous_state date = { label = "$lang_stats.field_labels.date" type = "date" index = 5 subindex = 0 hierarchy_dividers = "" left_to_right = true leading_divider = "false" } # date time = { label = "$lang_stats.field_labels.time" type = "time" index = 6 subindex = 0 hierarchy_dividers = "" left_to_right = true leading_divider = "false" } # time previous_date = { label = "$lang_stats.field_labels.previous_date" type = "flat" index = 7 subindex = 0 } # previous_date previous_time = { label = "$lang_stats.field_labels.previous_time" type = "flat" index = 8 subindex = 0 } # previous_time time_difference = { label = "$lang_stats.field_labels.time_difference" type = "flat" index = 9 subindex = 0 } # time_difference # duration = "" } # log.fields # Database fields database.fields = { date_time = { label = "$lang_stats.field_labels.date_time" log_field = "date_time" type = "string" suppress_top = 0 suppress_bottom = 3 display_format_type = "date_time" } # date_time day_of_week = { label = "$lang_stats.field_labels.day_of_week" log_field = "day_of_week" type = "string" suppress_top = 0 suppress_bottom = 2 display_format_type = "day_of_week" } # day_of_week hour_of_day = { label = "$lang_stats.field_labels.hour_of_day" log_field = "hour_of_day" type = "string" suppress_top = 0 suppress_bottom = 2 display_format_type = "hour_of_day" } # hour_of_day server_name = { label = "$lang_stats.field_labels.server_name" log_field = "server_name" type = "string" suppress_top = 0 suppress_bottom = 2 } # server_name uid = { label = "$lang_stats.field_labels.uid" log_field = "uid" type = "string" suppress_top = 0 suppress_bottom = 2 } # uid current_state = { label = "$lang_stats.field_labels.current_state" log_field = "current_state" type = "string" suppress_top = 0 suppress_bottom = 2 } # current_state previous_state = { label = "$lang_stats.field_labels.previous_state" log_field = "previous_state" type = "string" suppress_top = 0 suppress_bottom = 2 } # previous_state } # database.fields ## ## CATEGORY: Log Filters ## # Specifies one filter to accept or reject log entries # Format: lf log.parsing_filters.parse = ` # This is all unnecessary, because the time_difference already logs this value. Previous version wasn't multiplying it by 60, # which might explain why I added this code, thinking time_difference was something different. #echo("previous_date: " . previous_date); #echo("previous_time: " . previous_time); #echo("normalized date: " . normalize_date(substr(previous_date, 0, 4) . '-' . substr(previous_date, 4, 2) . '-' . substr(previous_date, 6, 2), 'auto')); #echo("normalized time: " . normalize_time(substr(previous_time, 0, 2) . ':' . substr(previous_time, 2, 2) . ':00', 'auto')); #v.normalized_previous_date = normalize_date(substr(previous_date, 0, 4) . '-' . substr(previous_date, 4, 2) . '-' . substr(previous_date, 6, 2), 'auto'); #v.normalized_previous_time = normalize_time(substr(previous_time, 0, 2) . ':' . substr(previous_time, 2, 2) . ':00', 'auto'); #v.previous_date_time = v.normalized_previous_date . ' ' . v.normalized_previous_time; #echo("v.previous_date_time: " . v.previous_date_time); #v.epoc_previous_date_time = date_time_to_epoc(v.previous_date_time); #echo("v.epoc_previous_date_time: " . v.epoc_previous_date_time); # #v.normalized_date = normalize_date(substr(date, 0, 4) . '-' . substr(date, 4, 2) . '-' . substr(date, 6, 2), 'auto'); #v.normalized_time = normalize_time(substr(time, 0, 2) . ':' . substr(time, 2, 2) . ':00', 'auto'); #v.date_time = v.normalized_date . ' ' . v.normalized_time; #echo("v.date_time: " . v.date_time); #v.epoc_date_time = date_time_to_epoc(v.date_time); #echo("v.epoc_date_time: " . v.epoc_date_time); # #v.date_time_difference = v.epoc_date_time - v.epoc_previous_date_time; #echo("v.date_time_difference: " . v.date_time_difference); #duration = v.date_time_difference; # time_difference is in minutes; multiple by 60 to get it in seconds time_difference = time_difference * 60; ` # log.parsing_filters.parse # Log Filters log.filters = { 1 = "convert_field_map('current_state', '1->down|2->possible down|3->unavailable|4->maintenance|5->up|6->unchecked|7->possible unavailable'); convert_field_map('previous_state', '1->down|2->possible down|3->unavailable|4->maintenance|5->up|6->unchecked|7->possible unavailable');" mark_entry = { label = '$lang_admin.log_filters.mark_entry_label' comment = '$lang_admin.log_filters.mark_entry_comment' value = 'events = 1;' } # mark_entry } # log.filters database.numerical_fields = { events = { label = "$lang_stats.field_labels.events" default = true requires_log_field = false type = "int" display_format_type = "integer" entries_field = true } # events duration = { default = true type = "float" display_format_type = duration_compact } # duration time_difference = { default = true type = "float" display_format_type = duration_compact } # time_difference } # database.numerical_fields create_profile_wizard_options = { date_time_tracking = true # How the reports should be grouped in the report menu report_groups = { date_time_group = "" server_name = true uid = true current_state = true previous_state = true previous_state_by_server_name = true } # report_groups } # create_profile_wizard_options not_supported = { visitors = true sessions = true individualhosts = true sessionpages = true pageviews = true bandwidth = true } # not_supported } # servers_alive_statistics