Provides functions to parse and analyze logs generated by 'ShinyProxy' containers. It extracts metadata from log file names, reads log contents, and computes summary statistics (such as the total number of lines and lines containing error messages), facilitating efficient monitoring and debugging of 'ShinyProxy' deployments.
shinyproxyLogs is an R package designed to simplify the process of parsing and analyzing log files generated by ShinyProxy containers. The package provides a set of functions that allow users to extract metadata from log filenames and compute summary statistics from log content. This helps system administrators and developers quickly identify issues such as errors, warnings, and fatal events in their ShinyProxy logs.
The primary goal of shinyproxyLogs is to automate and streamline the log analysis process for ShinyProxy environments. Specifically, the package:
specId, proxyId, startupTime, and logType from the log file
names.Access Rights: To use shinyproxyLogs, you must have the necessary
access rights to the shinyproxy folder. This folder contains the logs
from the ShinyProxy container, and without proper permissions, the
package will not be able to read or process the log files. Please ensure
that you have the required read and access permissions to the ShinyProxy
logs directory before using this package.
You can install the development version of shinyproxyLogs like so:
install.packages("devtools")
devtools::install_github("tsenegas/shinyproxyLogs")
This is a basic example which shows you how to solve a common problem:
library(shinyproxyLogs)
## basic example code
analyze_logs(path_container_logs = '../../shinyproxy/shinyproxy/container-logs/logs/')
#> $file_info
#> # A tibble: 30 × 10
#> specId proxyId startupTime logType filePath numLines numErrorLines
#> <chr> <chr> <chr> <chr> <chr> <int> <int>
#> 1 01_hello 07b3eece-65d8… 05_Feb_202… stderr ../../s… 3 0
#> 2 01_hello 07b3eece-65d8… 05_Feb_202… stdout ../../s… 20 0
#> 3 01_hello 34da9fa1-5e3b… 13_Feb_202… stderr ../../s… 3 0
#> 4 01_hello 34da9fa1-5e3b… 13_Feb_202… stdout ../../s… 20 0
#> 5 01_hello 9128a3d1-e722… 09_Feb_202… stderr ../../s… 3 0
#> 6 01_hello 9128a3d1-e722… 09_Feb_202… stdout ../../s… 20 0
#> 7 01_hello d1ea989c-4bde… 09_Feb_202… stderr ../../s… 3 0
#> 8 01_hello d1ea989c-4bde… 09_Feb_202… stdout ../../s… 20 0
#> 9 06_tabsets 30c5e8cf-9c16… 13_Feb_202… stderr ../../s… 3 0
#> 10 06_tabsets 30c5e8cf-9c16… 13_Feb_202… stdout ../../s… 20 0
#> # ℹ 20 more rows
#> # ℹ 3 more variables: numWarningLines <int>, numFatalLines <int>,
#> # numInfoLines <int>
#>
#> $summary
#> # A tibble: 15 × 9
#> specId proxyId startupTime stdout_lines stderr_lines total_error_lines
#> <chr> <chr> <chr> <int> <int> <int>
#> 1 01_hello 07b3ee… 05_Feb_202… 20 3 0
#> 2 01_hello 34da9f… 13_Feb_202… 20 3 0
#> 3 01_hello 9128a3… 09_Feb_202… 20 3 0
#> 4 01_hello d1ea98… 09_Feb_202… 20 3 0
#> 5 06_tabsets 30c5e8… 13_Feb_202… 20 3 0
#> 6 06_tabsets f80074… 05_Feb_202… 20 3 0
#> 7 crash_simula… 0801f3… 05_Feb_202… 20 4 0
#> 8 crash_simula… 10e989… 05_Feb_202… 20 3 0
#> 9 crash_simula… 206d99… 05_Feb_202… 20 9 2
#> 10 crash_simula… 278b89… 13_Feb_202… 20 11 2
#> 11 crash_simula… 2b58f9… 09_Feb_202… 20 3 0
#> 12 crash_simula… 34e115… 05_Feb_202… 20 4 0
#> 13 crash_simula… 43c8bf… 05_Feb_202… 20 8 2
#> 14 crash_simula… e0399e… 05_Feb_202… 20 7 0
#> 15 crash_simula… e65af8… 05_Feb_202… 20 3 0
#> # ℹ 3 more variables: total_warning_lines <int>, total_fatal_lines <int>,
#> # total_info_lines <int>