# Copyright (c) 2013 Flowerfire, Inc. All Rights Reserved. retrospect = { plugin_version = "1.0" info.1.manufacturer = "Retrospect" info.1.device = "Retrospect" info.1.version.1 = "8.5" # 2013-12-23 - GMF - 1.0 - Initial creation # The name of the log format log.format.format_label = "Retrospect Log Format" log.miscellaneous.log_data_type = "other" log.miscellaneous.log_format_type = "application" # The log is in this format if any of the first ten lines match this regular expression # BackupParseStreams: stream header read: (dsi. 256 256) 1 0 0 0 0 # 11/19/2013 3:47:44 PM: Execution completed successfully log.format.autodetect_regular_expression = "^( BackupParseStreams|- [0-9]+/[0-9]+/[0-9][0-9][0-9][0-9] [0-9]+:[0-9][0-9]:[0-9][0-9] [AP]M: Execution completed successfully)" log.format.parse_only_with_filters = true # Log fields log.fields = { date = "" time = "" backup_point = "" server = "" error_message = "" backups = "" errors = "" duration = "" bytes = "" files = "" } # log.fields log.parsing_filters.parse = ` if (matches_regular_expression(current_log_line(), "^-? ([0-9/]+) ([0-9:]+ [AP]M): (.*)$")) then ( set_collected_field('', 'date', $1); set_collected_field('', 'time', $2); v.remainder = $3; if (matches_regular_expression(v.remainder, "^Copying ([^ ]+) on (.*)$")) then ( set_collected_field('', 'backup_point', $1); set_collected_field('', 'server', $2); ); else if (matches_regular_expression(v.remainder, "^Execution completed successfully")) then ( set_collected_field('', 'backups', 1); ); ); # Completed: 42 files, 1.2 GB else if (matches_regular_expression(current_log_line(), "^ Completed: ([0-9]+) files, ([^,]+),")) then ( set_collected_field('', 'files', $1); v.bytes = $2; if (matches_regular_expression(v.bytes, '^([0-9]+) KB')) then set_collected_field('', 'bytes', 1024 * $1); else if (matches_regular_expression(v.bytes, '^([0-9]+) MB')) then set_collected_field('', 'bytes', 1024 * 1024 * $1); else if (matches_regular_expression(v.bytes, '^([0-9]+) GB')) then set_collected_field('', 'bytes', 1024 * 1024 * $1); else if (matches_regular_expression(v.bytes, '^([0-9]+) TB')) then set_collected_field('', 'bytes', 1024 * 1024 * 1024 * $1); ); # Completed # Duration: 00:06:18 (00:02:33 idle/loading/preparing) else if (matches_regular_expression(current_log_line(), "^ Duration: ([0-9]+):([0-9]+):([0-9]+) ")) then ( set_collected_field('', 'duration', ($1 * 60*60) + ($2 * 60) + $3); accept_collected_entry('', false); ); #- 11/21/2013 4:00:06 PM: Copying $[*!20612,,14,+3]OS (C:)$[3] on Hyper-V-Server2$[4] #$[*20751] Writer "ASR Writer" backup failed, error -1001 ( unknown Windows OS error). # 11/21/2013 4:12:04 PM: Snapshot stored, 180.7 MB # 11/21/2013 4:12:09 PM: Execution completed successfully^@$[130295232063300000] # Completed: 1415 files, 1.0 GB, with 30% compression # Performance: 347.1 MB/minute # Duration: 00:12:02 (00:09:05 idle/loading/preparing) else if (matches_regular_expression(current_log_line(), "^[$][[][*][0-9]+[]] (.*)")) then ( set_collected_field('', 'errors', 1); if (get_collected_field('', 'error_message') ne "(empty)") then set_collected_field('', 'error_message', get_collected_field('', 'error_message') . '; ' . $1); else set_collected_field('', 'error_message', $1); ); ` # Database fields database.fields = { date_time = "" day_of_week = "" hour_of_day = "" backup_point = "" server = "" error_message = "" } # database.fields database.numerical_fields = { backups = { default = true } errors = "" duration = { integer_bits = 64 display_format_type = "duration_compact" } # duration files = "" bytes = { type = "int" integer_bits = 64 display_format_type = "bandwidth" } } # database.numerical_fields create_profile_wizard_options = { # How the reports should be grouped in the report menu report_groups = { date_time_group = "" } # report_groups } # create_profile_wizard_options } # retrospect