Skip to content
This repository has been archived by the owner on Sep 9, 2022. It is now read-only.

GlassBrokerApp

John Patton edited this page Aug 15, 2018 · 11 revisions

Glass-Broker-App

Glass-Broker-App is an implementation of the neic-glass3 libraries that reads input, station, and configuration updates from HazDev Broker topics, and writes output and station information requests to HazDev Broker topics.

Building

To build glass-broker-app, set the BUILD_GLASS-BROKER-APP option equal to true (1) in the cmake command or GUI. Building glass-broker-app requires dependencies, such as hazdev-broker and librdkafka.

Configuration

An example configuration for glass-broker-app is available in the glass-broker-app params directory

Glass-Broker-App

{
	"Configuration":"glass-broker-app",
	"LogLevel":"debug",
	"ConfigDirectory":"./params",
	"InitializeFile":"glass_initialize.d",
	"StationList":"stationlist.d",
	"GridFiles":[
		"glass_ak_grid.d",
	],
	"InputConfig":"glass_input.d",
	"OutputConfig":"glass_output.d"
}
  • LogLevel - Sets the logging level, trace, debug, info, warning, error, criticalerror
  • ConfigDirectory - Path to directory containing the other glass subcomponent configuration files
  • InitializeFile - Configuration file containing the GLASS3 Algorithm configuration
  • StationList - File containing the initial GLASS3 station list
  • GridFiles - One or more files defining detection grids
  • InputConfig - Configuration file containing the input configuration
  • OutputConfig - Configuration file containing the output configuration

Input

{
	"Configuration":"GlassInput",
	"HazdevBrokerConfig": {
		"Type":"ConsumerConfig",
		"Properties":{
			"client.id":"glass3Default",
			"group.id":"1",
			"metadata.broker.list":"<HazDev Brokers>",
			"enable.auto.commit":"false"
		}
	},
	"HazdevBrokerTopicConfig": {
		"Type":"TopicConfig",
		"Properties":{
			"auto.commit.enable":"false",
			"auto.offset.reset":"latest"
		}
	},
	"Topics":["Dev-RayPicker-1", "Station-Data"],
	"QueueMaxSize":1000,
	"DefaultAgencyID":"US",
	"DefaultAuthor":"glassConverter"
}
  • HazdevBrokerConfig - The HazDev Broker configuration to use for input, see HazDev-Broker
  • HazdevBrokerTopicConfig - The HazDev Broker topic configuration to use, see HazDev-Broker
  • Topics - The HazDev Broker topic(s) to receive input data from
  • QueueMaxSize - The maximum size of the input queue
  • DefaultAgencyID - The default agency identifier to use when converting data to json
  • DefaultAuthor - The default author to use when converting data to json

Output

{
	"Configuration":"GlassOutput",
	"PublishOnExpiration":false,
	"PublicationTimes":[20,180],
	"HazdevBrokerConfig": {
		"Type":"ProducerConfig",
		"Properties":{
		  "client.id":"glass3Default",
			"group.id":"0",
			"metadata.broker.list":"<HazDev Brokers>",
			"retries":"0"
		}
	},
	"OutputTopic":"Glass3-Default",
	"StationRequestTopic":"Station-Lookup",
	"SiteListDelay":7200,
	"StationFile":"./params/stationlist.d",
	"OutputAgencyID":"US",
	"OutputAuthor":"glass"
}
  • PublishOnExpiration - Flag indicating whether to always publish a final version of a detection when it expires out of glass
  • PublicationTimes - The time(s), in seconds since the detections was first found, to publish
  • HazdevBrokerConfig - The HazDev Broker configuration to use for output, see HazDev-Broker
  • OutputTopic - The HazDev Broker topic to write output to.
  • StationRequestTopic - Optional HazDev Broker topic to request station information.
  • SiteListDelay - Optional delay between writing updated station files to disk
  • StationFile - Optional file name of updated station file
  • OutputAgencyID - The agency identifier to use when generating output data
  • OutputAuthor - The author to use when generating output data

GLASS3 Algorithm

For neic-glass3 algorithmic configuration, see GLASS 3 Configuration.

Running

To run glass-broker-app, use the following command: glass-broker-app <configfile> [logname] [noconsole] where <configfile> is the required path the the glass.d configuration file, [logname] is an optional command that when present specifies the log file name (useful if more than one glass-broker-app is running on a system), and [noconsole] is an optional command that when present suppresses all console messages from glass-broker-app.

Clone this wiki locally