Skip to content

Commit

Permalink
Add new config option use_aggregated_uve_db
Browse files Browse the repository at this point in the history
Provide an option to enable/disable serve UVE queries from the aggregated
UVE db. In a scale setup, HA event (alarm-gen down), alarm-gen may take a
long time to aggregate the UVEs depending on the number of UVEs, number
of partitions it owns, etc., So, enabling this option would reduce the
down time in case of HA events (collector down - time taken for generators
 to connect to the new collector and resync the UVEs, alarm-gen down - no
impact on UVE queries, only the alarms would be reevaluated)

Change-Id: Id2efdb4ec6a600697442e081042a903a01812dd9
Closes-Bug: #1719236
  • Loading branch information
ZhiqiangCui committed Apr 25, 2018
1 parent b264125 commit a101ea5
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/opserver/opserver.py
Expand Up @@ -640,6 +640,7 @@ def _reject_auth_headers(self):
def __init__(self, args_str=' '.join(sys.argv[1:])):
self.gevs = []
self._args = None
self._usecache = True
self._parse_args(args_str)
print args_str

Expand Down Expand Up @@ -1068,6 +1069,7 @@ def _parse_args(self, args_str=' '.join(sys.argv[1:])):
'admin_port' : OpServerAdminPort,
'cloud_admin_role' : CLOUD_ADMIN_ROLE,
'api_server_use_ssl': False,
'use_aggregated_uve_db' : 'true',
}
defaults.update(SandeshConfig.get_default_options(['DEFAULTS']))
redis_opts = {
Expand Down Expand Up @@ -1192,6 +1194,8 @@ def _parse_args(self, args_str=' '.join(sys.argv[1:])):
help="Port with local auth for admin access")
parser.add_argument("--api_server_use_ssl",
help="Use SSL to connect with API server")
parser.add_argument("--use_aggregated_uve_db",
help="enable/disbale read uve from aggregated uve db")
SandeshConfig.add_parser_arguments(parser)
self._args = parser.parse_args(remaining_argv)
if type(self._args.collectors) is str:
Expand Down Expand Up @@ -1219,6 +1223,9 @@ def _parse_args(self, args_str=' '.join(sys.argv[1:])):
auth_conf_info['admin_port'] = self._args.admin_port
auth_conf_info['api_servers'] = self._args.api_server
self._args.auth_conf_info = auth_conf_info
if self._args.use_aggregated_uve_db.lower() == 'false' or\
self._args.use_aggregated_uve_db == '0':
self._usecache = False
self._args.conf_file = args.conf_file
self._args.sandesh_config = \
SandeshConfig.from_parser_arguments(self._args)
Expand Down Expand Up @@ -2487,11 +2494,12 @@ def get_agp(self):
return self.agp

def run(self):
self._uvedbstream.start()
if self._usecache:
self._uvedbstream.start()
self.gevs.append(self._uvedbstream)
self.send_analytics_api_info_uve()

self.gevs += [
self._uvedbstream,
gevent.spawn(self.start_webserver),
gevent.spawn(self.start_uve_server),
gevent.spawn(self.monitor_analytics_db)
Expand Down

0 comments on commit a101ea5

Please sign in to comment.