164 lines
4.9 KiB
Python
Executable File
164 lines
4.9 KiB
Python
Executable File
# Contians the arg parser options.
|
|
"""Contains the arg parser options."""
|
|
|
|
|
|
import argparse
|
|
import sys
|
|
|
|
|
|
def get_builder_args():
|
|
"""
|
|
Gets the arguments passed in to the aom_builder main call
|
|
|
|
:return: parser object
|
|
"""
|
|
parser = argparse.ArgumentParser(
|
|
description="Generates a valid yaml file "
|
|
"for alerting on metrics. If you are "
|
|
"familiar with the yaml structure for an "
|
|
"alert you don't have to use this builder,"
|
|
" it's just convenient")
|
|
parser.add_argument('-q', '--query', help="The Kariosdb query string to "
|
|
"use")
|
|
parser.add_argument(
|
|
'-i', '--interval', type=int, default=60, help="The "
|
|
"interval that the check will This value is in seconds")
|
|
parser.add_argument('-t', '--threshold', '--upperthreshold', help="The "
|
|
"upper threshold is the value that when reached will "
|
|
"cause an depending on the threshold logic. "
|
|
"Use in conjunction with lower threshold to define a "
|
|
"normal band.")
|
|
parser.add_argument(
|
|
'-b',
|
|
'--lowerthreshold',
|
|
help="The lower threshold is the value that when reached will cause an "
|
|
"alert depending on the threshold logic"
|
|
"Use in conjunction with upper threshold to define a normal band.")
|
|
parser.add_argument(
|
|
'-m',
|
|
'--measure',
|
|
choices=[
|
|
'gt',
|
|
'lt',
|
|
'eq'],
|
|
help="The measure to use to compare the "
|
|
"threshold to the values of the alerts")
|
|
parser.add_argument(
|
|
'-a',
|
|
'--alert_config',
|
|
help='A valid Yaml representation of your alerting block')
|
|
parser.add_argument(
|
|
'-l',
|
|
'--log_level',
|
|
type=int,
|
|
default=0,
|
|
help="The log level for the aom_builder run. "
|
|
"[0=Error, 1=Info, 2=Debug]")
|
|
parser.add_argument(
|
|
'-p',
|
|
'--port',
|
|
type=int,
|
|
default=8080,
|
|
help="The port to run the webapp on")
|
|
|
|
return args_to_dict(parser)
|
|
|
|
|
|
def get_tester_service_args():
|
|
"""
|
|
Gets arguments passed into aom_tester.py
|
|
Returns: parser object
|
|
"""
|
|
parser = argparse.ArgumentParser(
|
|
description="Parameters to start the alerting on metrics dummy tester "
|
|
"service")
|
|
parser.add_argument(
|
|
'-l',
|
|
'--log_level',
|
|
type=int,
|
|
default=0,
|
|
help="The log level for the aom_service app"
|
|
"[0=Error, 1=Info, 2=Debug]")
|
|
parser.add_argument(
|
|
'-a',
|
|
'--alert_configs',
|
|
default=None,
|
|
help="If provided will override the folder location read from the "
|
|
"config with the value passed in. Is helpful for testing and "
|
|
"troubleshooting alerts")
|
|
parser.add_argument(
|
|
'--hostname',
|
|
help="If provided, will override the actual hostname check with this "
|
|
"value")
|
|
parser.add_argument(
|
|
'-p',
|
|
'--port',
|
|
type=int,
|
|
default=8080,
|
|
help="The port to run the webapp on")
|
|
return args_to_dict(parser)
|
|
|
|
|
|
def get_service_args():
|
|
"""
|
|
Gets arguments passed into aom_service.py
|
|
Returns: parser object
|
|
"""
|
|
parser = argparse.ArgumentParser(
|
|
description="Parameters to start the alerting on metrics service")
|
|
parser.add_argument(
|
|
'-l',
|
|
'--log_level',
|
|
type=int,
|
|
default=0,
|
|
help="The log level for the aom_service app"
|
|
"[0=Error, 1=Info, 2=Debug]")
|
|
parser.add_argument(
|
|
'-a',
|
|
'--alert_configs',
|
|
default=None,
|
|
help="If provided will override the folder location read from the "
|
|
"config with the value passed in. Is helpful for testing and "
|
|
"troubleshooting alerts")
|
|
parser.add_argument(
|
|
'--alert_routing_lookup',
|
|
default=None,
|
|
help="If provided will override the folder used to fetch the alerts "
|
|
"lookup configuration.")
|
|
parser.add_argument(
|
|
'-o',
|
|
'--override',
|
|
action='store_true',
|
|
help="Overrides the check leader election value")
|
|
parser.add_argument(
|
|
'--hostname',
|
|
help="If provided, will override the actual hostname check with this "
|
|
"value")
|
|
parser.add_argument(
|
|
'-p',
|
|
'--port',
|
|
type=int,
|
|
default=8080,
|
|
help="The port to run the webapp on")
|
|
return args_to_dict(parser)
|
|
|
|
|
|
def args_to_dict(parsed_args):
|
|
"""
|
|
Converts the argument parser object to a dict
|
|
Args:
|
|
parsed_args: Arg parser object
|
|
Returns:
|
|
Dictionary of arguments
|
|
"""
|
|
try:
|
|
arg_list = parsed_args.parse_args()
|
|
# RETURN A DICT OF ARGUMENTS
|
|
arg_dict = dict()
|
|
for val in vars(arg_list):
|
|
arg_dict[val] = getattr(arg_list, val)
|
|
return arg_dict
|
|
except argparse.ArgumentError:
|
|
parsed_args.print_help()
|
|
sys.exit(1)
|