Class StatusDashboardConfiguration

java.lang.Object
io.deephaven.status.dashboard.StatusDashboardConfiguration

public final class StatusDashboardConfiguration extends Object
Class to parse and contain status dashboard JSON configuration files. Multiple configuration files are allowed, specified by the property StatusDashboard.configuration.files. By default the status dashboard process retrieves the files from the configuration server, but two override properties are supported.
  • If READ_FROM_DISK_PROP is specified, then the JSON files will be read directly from disk.
  • If USE_ETCD_DIRECT_PROP is specified, then etcd will be directly used to read the JSON files.
Each configuration file must include the root ROOT_NODE. Under this, three different node types are allowed.
  • PQ_MONITORS_NODE specifies persistent queries to be monitored for status.
  • DATA_MONITORS_NODE specifies tables to be monitored for data lag.
  • MONITORED_CERTIFICATES_NODE specifies certificates to be monitored for expiration dates.
For persistent query and table monitoring, the persistent queries to be monitored can be specified with the following node types. At least one of these must always be specified. If the owner is specified, then for the PQ or table to be monitored the owner must match. If the owner isn't specified or matches, then if any of the names or name-regular-expressions match (or both are empty), the query matches.
  • PQ_OWNERS_NODE specifies the owner of persistent queries to be monitored.
  • PQ_NAMES_NODE specifies the name of a persistent query to be monitored.
  • PQ_NAME_MATCHES_NODE specifies a regular expression that will be matched against persistent query names.
For table monitoring,
  • TABLE_NAMES_NODE specifies the name of the table to be monitored.
  • TABLE_NAMES_MATCH_NODE specifies a regular expression to be matched against the tables the persistent query is publishing.
Additional persistent query and table-monitoring configuration options include:
  • The PROMETHEUS_PUBLISHER_PREFIX_NODE node may be specified to append a prefix to the published Prometheus persistent query gauges, in an individual PQ or data monitor node definition.
  • For table monitoring, the WATCHER_JOB_INTERVAL_MILLIS_NODE node specifies the time in milliseconds between Prometheus gauge updates (since many updates could be received for every table every second, it's better not to overwhelm the prometheus gauges). If not specified it defaults to WATCHER_JOB_INTERVAL_MILLIS_DEFAULT.
If multiple configurations result in the same persistent query or table being monitored, the configuration from the first one will be used. Certificate monitoring is under the CERTIFICATES_NODE node. Under this node:
  • The MONITORED_CERTIFICATES_NODE should include the certificates, in the format "Prometheus gauge name": "certificate property prefix".
  • The CERTIFICATE_JOB_INTERVAL_HOURS_NODE specifies the time in hours between certification expiration date checks. The default value is CERTIFICATE_JOB_INTERVAL_HOURS_DEFAULT.
  • Method Details

    • getDataWatchers

      public List<io.deephaven.status.dashboard.StatusDashboardConfiguration.WatcherDetails> getDataWatchers()
    • getPqWatchers

      public List<io.deephaven.status.dashboard.StatusDashboardConfiguration.WatcherDetails> getPqWatchers()
    • getCertificateDetails

      public io.deephaven.status.dashboard.StatusDashboardConfiguration.CertificateDetails getCertificateDetails()
    • getCertJobIntervalMillis

      public long getCertJobIntervalMillis()