Chapter 6 Metrics

shinyapps.io captures and provides a variety of metrics to help you gain insight into the use of your applications and your account in general. The metrics include active hours by application, number of connections, CPU, memory and network usage, and the number of worker processes. Metrics are retained for a period of 90 days.

6.1 Account metrics

Account metrics are viewable within the shinyapps.io dashboard under Account -> Usage. The default view is the number of hours used in the current subscription cycle, with a breakdown of the applications used and their contribution to the active hours. You can change the date ranges by using the drop down to select: 1 Day, 1 Week, 1 Month, or 3 month views.

6.2 Application metrics

Each application’s metrics are available under the Metrics tab within the application’s view on the shinyapps.io dashboard.

Many of the metrics described here are available for download as a dataframe through the use of the rsconnect::showMetrics API.

## Example of loading user CPU metrics
df <- rsconnect::showMetrics("docker_container_cpu",
                             c("usage_in_usermode"),
                             server="shinyapps.io")
Table 6.1: Available series and metrics
Series Metric Description
docker_container_cpu usage_in_usermode CPU usage in user space in nanoseconds
docker_container_cpu usage_in_kernelmode CPU usage in system time in nanoseconds
docker_container_net tx_bytes Network traffic transmitted from the application instances
docker_container_net rx_bytes Network traffic received by the application instances
docker_container_mem total_rss The amount of memory that does not correspond to anything on disk: stacks, heaps, and anonymous memory maps
docker_container_mem total_cache The amount of memory used that can be associated precisely with a block on a block device
container_status connect_count The number of connections
container_status connect_procs The number of worker processes

6.3 Tracking user and session information

Every new browser that accesses an application will create a user session. The client data and user information (if it is an authenticated user) are accessible within your shiny application and can be logged to third party data stores (databases, log aggregation services, or web analytics platforms) as your needs require.

For authenticated applications, user name information is accessible through the session$user variable and can be used to customize your application’s behavior. If you are interested in customizing your application based on the identity of the user, please refer to the user permissions article on the shiny developer center

6.3.1 Google Analytics

Shiny applications use standard HTML, CSS and JavaScript technologies on the front end so you can track your application’s usage using your favorite web analytics platform. Most of these platforms will require the insertion of a piece of JavaScript on the pages that are rendered.

For an example of integrating a shiny application with Google Analytics, please see the using Google Analytics with shiny article. The techniques described there will be very similar for other web analytics tools.