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")
::install_github("tsenegas/shinyproxyLogs") devtools
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>