11.3. Tungsten Dashboard Configuration Best Practices

Important

*** There is a one-to-one relationship between Tungsten services and haproxy ports. See examples following this section. ***

  • Host and port are required for all clusters.

  • A cluster is marked as a composite parent if it has the "children" array, even if the array is empty.

  • A cluster is marked as a composite child if it has the "memberOf" key defined.

  • All Composite member (child) clusters require their own definitions so we know about the host and port for each.

  • All cluster service names MUST be unique. If you have clusters in different environments that have the same names, they will conflict.

  • Added in v1.0.7: To solve the above limitation that all cluster service names must be unique, add the sub-key actualName pointing to the "real" name of the service, and change the top-level cluster service name to some alias that you understand.

    For example, you have two clusters named "east", one in prod and the other in staging:

    
    "clusters": {
           "east_prod": {
                   "host":"localhost",
                   "port":"8091",
                   "actualName":"east"
           },
           "east_staging": {
                   "host":"localhost",
                   "port":"8092",
                   "actualName":"east"
           }
    },
    

    Important

    When using composite clusters, the children key (for the composite service) and the memberOf key (for the member cluster services) must point to the "alias" names, not the actualName value. For example:

    
    "clusters": {
           "global_prod": {
                   "host":"localhost",
                   "port":"8091",
                   "children": [ "east_prod","west_prod" ],
                   "actualName":"global"
           },
           "east_prod": {
                   "host":"localhost",
                   "port":"8092",
                   "memberOf":"global_prod"
                   "actualName":"east"
           },
           "west_prod": {
                   "host":"localhost",
                   "port":"8092",
                   "memberOf":"global_prod"
                   "actualName":"west"
           }
    },
              
    
  • Please note that the `host: localhost` should remain localhost because this tells the app to call the haproxy server on the GUI server node, which will then handle routing to the appropriate manager/database node.

  • You may add your own custom menu options to the tools menu by editing the menus->tools section in the json configuration.

  • By default the Auto-refresh feature is disabled (i.e. set to zero). You may enable autoRefreshDelay by setting it it to one of the Auto-Refresh time interval values.

  • By default, the list of Auto-Refresh time intervals is defined as 5, 10, 30, 60, 120 or 300 seconds. You may change that by using the autoRefreshList setting, i.e.:

     "autoRefreshList": [3,5,10,30,60,120,300,600] 

    Important

    PLEASE NOTE: autoRefreshList values less than 3 seconds are strongly discouraged.

  • Under normal circumstances, you should not need to get a lock, since all operations automatically attempt to obtain a lock for efficiency purposes. This has the side-effect of leaving your session in a locked state.

    There are two settings that help address this situation, autoUnlockHeartbeat and autoUnlockAll.

    You may set autoUnlockHeartbeat to 1 to automatically unlock after issuing a heartbeat command.

    You may set autoUnlockAll to 1 to automatically unlock after issuing any command.

  • You may set dashboardMaintenanceScreen to 1 to display a Maintenance-In-Progress message.

  • The default Tab Badge update rate is 30 seconds. You may disable it by setting tabUpdateRate to zero (0). You may change the refresh rate in seconds by specifying a non-zero value.

     "tabUpdateRate":60 
  • Use lockBaseDir to change the location of the temporary lock files. The default lockBaseDir is {WEBROOT}, making the default lock directory {WEBROOT}/locks/, (i.e. a lockBaseDir of /tmp will yield a lock directory of /tmp/locks).

     "lockBaseDir":"/tmp" 
  • Added in v1.0.7: Use msgFadeOutTimer to automatically close messages after the defined timeout in seconds. The default is 60 seconds.

     "msgFadeOutTimer":60 
  • Added in v1.0.8: Set disableConfigDisplay to 1 to prevent the menu choice for Tools -> Display Configuration from appearing.

     "disableTooltips":1 
  • Added in v1.0.8: Set disableTooltips to 1 to prevent the formatted hover-over help tooltips from appearing.

     "disableTooltips":1 
  • Added in v1.0.10: Use enableGrafana to display a button which opens Grafana in an iframe.

     "enableGrafana":1 
  • Added in v1.0.10: Use enablePrometheus to display a button which opens Prometheus in an iframe.

     "enablePrometheus":1 
  • Added in v1.0.8: Use windowTitle to change the browser window title from the default of "Tungsten Dashboard".

     "windowTitle":"Prod Env | Tungsten Dashboard" 
  • Added in v1.0.8: The sortByConfigOrderNotAlpha controls the Cluster View sort. By default the list of cluster services is sorted alphabetically. Set sortByConfigOrderNotAlpha to 1 for the cluster services to be displayed in the order listed in the config.php file.

     "sortByConfigOrderNotAlpha":1 
  • Added in v1.0.8: The enableRBAC setting controls the Role-Based Access Control (RBAC) feature. Disabled by default, set it to one and populate the list of read-write users via the sibling administrators setting.

    There are two roles:

    • Administrator - Full access

    • Operator - Read-only access

    When enableRBAC is set to one, all users not listed in the administrators setting are read-only Operators.

    When enabled, the user's current role will be displayed in the footer. Refresh the page to activate any changes to config.php.

    This feature requires Basic Auth to be properly configured on the Web server.

     "enableRBAC":1 

    Use the administrators setting to list the users with admin privs:

     "administrators": [ "adminUser1","adminUser2" ]