Configuring Docker, Version 5.1.1

The Solution Package for Docker is an easy to configure and use monitoring system that gives you extensive visibility into the health and performance of your Docker Engines, Docker Containers, and the applications that rely on them. This section describes how to collect the Docker data that you want to monitor. 

Configuring Data Collection

The Solution Package for Docker relies on a customized version of the cAdvisor (Container Advisor) daemon that sends formatted JSON to an RTView data server. This daemon is provided as a Docker image. For more information on loading this image into Docker, see the README file in the /RTViewDataServerInfra/rtvapm/dockermon/agents/cadvisor-rtview directory. This part of the Docker configuration is required.

Changing the Default Port (Optional)

The default port used for data collection is defined in the “RTView Configuration Application” under Server Configuration > General > Ports.

To modify the default, perform the following:

  • Open the “RTView Configuration Application” and navigate to Server Configuration > General > GENERAL (tab) > Ports.

  • Specify the Docker rtvhttp data adapter port prefix to which you want to connect (to enable the Monitor to collect data). The last two numbers in the HTTP Port are automatically set to 75. You can click the SHOW PORT ASSIGNMENTS button to see the default port assignments. For example, if you specify 32 as the Port Prefix, then the combined port will be 3275.

  • SAVE your changes in the RTView Configuration Application.

  • To apply the changes you made, you must restart the data server, which can be done by clicking the  button that appears once changes have been saved. Clicking this button automatically restarts the data server and takes you back to the projects page, which will require you to wait for a couple of minutes for the data server to restart. Once the data server has restarted, you can select the project again to verify your changes. Note that this process only restarts the data server.

Configuring Collection of Historical Data (Optional)

You can specify the number of history rows to store in memory, the compaction rules, the duration before metrics are expired and deleted, and the different types of metrics that you want the Historian to store in the DATA STORAGE tab in the RTView Configuration Application. Once you have made all of your changes, you need to save your changes in the RTView Configuration Application and restart your data server for the changes to take place.

Defining the Storage of In-Memory History

You can modify the maximum number of history rows to store in memory in the DATA STORAGE tab. The History Rows property defines the maximum number of rows to store for the DockerContainer, DockerEngine, and DockerContainerEvent caches. The default settings for History Rows is 50,000. To update the default setting:

  • Navigate to the Solution Package Configuration > Docker > DATA STORAGE tab.
  • In the Size region, click the History Rows field and specify the desired number of rows.

Defining Compaction Rules

Data compaction, essentially, is taking large quantities of data and condensing it using a defined rule so that you store a reasonably sized sample of data instead of all of your data, thus preventing you from potentially overloading your database. The available fields are:

Condense Interval -- The time interval at which the cache history is condensed for the following caches: DockerContainer and DockerEngine. The default is 60 seconds.

Condense Raw Time -- The time span of raw data kept in the cache history table for the following caches: DockerContainer and DockerEngine. The default is 1200 seconds.

Doc History Time Span -- The time span of data kept in the cache history table for the following caches: DockerContainer and DockerEngine.

Event History Time Span -- The time span of event data kept in the cache history table for the following cache: DockerContainerEvent.

Compaction Rules -- This field defines the rules used to condense your historical data in the database for the following caches: DockerContainer and DockerEngine. By default, the columns kept in history will be aggregated by averaging rows with the following rule 1h -;1d 5m;2w 15m, which means the data from 1 hour will not be aggregated (1h - rule), the data over a period of 1 day will be aggregated every 5 minutes (1d 5m rule), and the data over a period of 2 weeks old will be aggregated every 15 minutes (2w 15m rule).

  • Navigate to the Solution Package Configuration > Docker > DATA STORAGE tab.
  • In the Compaction region, click the Condense Interval, Condense Raw Time, Doc History Time Span, Event History Time Span, and Compaction Rules fields and specify the desired settings.

Note: When you click in the Compaction Rules field, the Copy default text to clipboard link appears, which allows you copy the default text (that appears in the field) and paste it into the field. This allows you to easily edit the string rather than creating the string from scratch.

Defining Expiration and Deletion Duration for Docker Metrics

The data for each metric is stored in a specific cache and, when the data is not updated in a certain period of time, that data will either be marked as expired or, if it has been an extended period of time, it will be deleted from the cache altogether. By default, metric data will be set to expired when the data in the cache has not been updated within 45 seconds. Also, by default, if the data has not been updated in the cache within 3600 seconds, it will be removed from the cache. 

The following caches are impacted by settings in the Expire Time and Delete Time fields: DockerContainer and DockerEngines. To modify these defaults:

  • Navigate to the Solution Package Configuration > Docker > DATA STORAGE tab.
  • In the Duration region, click the Expire Time and Delete Time fields and specify the desired settings.

Enabling/Disabling Storage of Historical Data

The History Storage region allows you to select which metrics you want the Historian to store in the history database. By default, historical Containers (DockerContainer cache) and Engines (DockerEngine cache) are saved to the database. To disable the collection of this historical data, perform the following steps:

  • Navigate to the Solution Package Configuration > Docker > DATA STORAGE tab.
  • In the History Storage region, deselect the toggles for the metrics that you do not want to collect. Blue is enabled, gray is disabled.

Defining a Prefix for All History Table Names for Docker Metrics

The History Table Name Prefix field allows you to define a prefix that will be added to the database table names so that the Monitor can differentiate history data between data servers when you have multiple data servers with corresponding Historians using the same solution package(s) and database. In this case, each Historian needs to save to a different table, otherwise the corresponding data server will load metrics from both Historians on startup. Once you have defined the History Table Name Prefix, you will need to create the corresponding tables in your database as follows:

  • Locate the .sql template for your database under RTViewDataServerInfra/rtvapm/dockermon/dbconfig and make a copy of template.
  • Add the value you entered for the History Table Name Prefix to the beginning of all table names in the copied .sql template.
  • Use the copied .sql template to create the tables in your database.

Note: If you are using Oracle for your Historian Database, you must limit the History Table Name Prefix to 2 characters because Oracle does not allow table names greater than 30 characters (and the longest table name for the solution package is 28 characters).

To add the prefix:

  • Navigate to Solution Package Configuration > Docker > DATA STORAGE tab.
  • Click on the History Table Name Prefix field and enter the desired prefix name.