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: I600e2c33671a1c16545732cd64d1493678095198
Closes-Bug: #1719236
  • Loading branch information
ZhiqiangCui committed Apr 25, 2018
1 parent 1787870 commit 8f184ca
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/opserver/opserver.py
Expand Up @@ -488,6 +488,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 @@ -907,6 +908,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 @@ -1055,6 +1057,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 @@ -1085,6 +1089,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 @@ -2566,10 +2573,11 @@ 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.gevs += [
self._uvedbstream,
gevent.spawn(self.start_webserver),
gevent.spawn(self.start_uve_server),
]
Expand Down

0 comments on commit 8f184ca

Please sign in to comment.