def GET(self): try: url_param = [ i for i in web.ctx['path'].split('/') if i not in ['', 'api', 'config'] ] except: error_msg = "URl not Found" raise web.notfound(error_msg) result = {} if len(url_param) == 0: result[METRICS] = configurator.get_collectd_config() result[LOGGING] = configurator.get_fluentd_config() elif url_param[0] == SUPPORTED_PLUGINS: result[METRICS] = configurator.get_supported_metrics_plugins() result[LOGGING] = configurator.get_supported_logging_plugins() elif url_param[0] == SUPPORTED_TARGETS: result = configurator.get_supported_targets() elif url_param[0] == "mapping": result[METRICS] = configurator.get_collectd_plugins_mapping() result[LOGGING] = configurator.get_fluentd_plugins_mapping() result[TARGETS] = configurator.get_supported_targets_mapping() elif url_param[0] == "params": user_data = web.input(metrics_plugins="", logging_plugins="", targets="") metric_plugin_instances = [] target_instances = [] logging_plugin_instances = [] # print user_data if user_data.metrics_plugins: metric_plugin_instances = user_data.metrics_plugins.split(",") result[METRICS] = configurator.get_metrics_plugins_params( metric_plugin_instances) if user_data.targets: target_instances = user_data.targets.split(",") result[TARGETS] = configurator.get_targets_params( target_instances) if user_data.logging_plugins: logging_plugin_instances = user_data.logging_plugins.split(",") result[LOGGING] = configurator.get_logging_plugins_params( logging_plugin_instances) if not (user_data.metrics_plugins or user_data.targets or user_data.logging_plugins): result[METRICS] = configurator.get_metrics_plugins_params( metric_plugin_instances) result[LOGGING] = configurator.get_logging_plugins_params( logging_plugin_instances) result[TARGETS] = configurator.get_targets_params( target_instances) else: error_msg = "URl not Found" raise web.notfound(error_msg) return json.dumps(result)
def GET(self): try: url_param = [i for i in web.ctx['path'].split('/') if i not in ['', 'api', 'config']] except: error_msg = "URl not Found" raise web.notfound(error_msg) result = {} try: import platform if float(".".join([platform.python_version_tuple()[0], platform.python_version_tuple()[1]])) < 2.6: result["distro"] = " ".join(platform.dist()) else: result["distro"] = " ".join(platform.linux_distribution()) except: result["distro"] = None if len(url_param) == 0: result[METRICS] = configurator.get_collectd_config() result[LOGGING] = configurator.get_fluentd_config() elif url_param[0] == SUPPORTED_PLUGINS: result[METRICS] = configurator.get_supported_metrics_plugins() result[LOGGING] = configurator.get_supported_logging_plugins() elif url_param[0] == SUPPORTED_TARGETS: result = configurator.get_supported_targets() elif url_param[0] == "mapping": result[METRICS] = configurator.get_collectd_plugins_mapping() result[LOGGING] = configurator.get_fluentd_plugins_mapping() result[TARGETS] = configurator.get_supported_targets_mapping() elif url_param[0] == "params": user_data = web.input(metrics_plugins="", logging_plugins="", targets="") metric_plugin_instances = [] target_instances = [] logging_plugin_instances = [] # print user_data if user_data.metrics_plugins: metric_plugin_instances = user_data.metrics_plugins.split(",") result[METRICS] = configurator.get_metrics_plugins_params(metric_plugin_instances) if user_data.targets: target_instances = user_data.targets.split(",") result[TARGETS] = configurator.get_targets_params(target_instances) if user_data.logging_plugins: logging_plugin_instances = user_data.logging_plugins.split(",") result[LOGGING] = configurator.get_logging_plugins_params(logging_plugin_instances) if not (user_data.metrics_plugins or user_data.targets or user_data.logging_plugins): result[METRICS] = configurator.get_metrics_plugins_params(metric_plugin_instances) result[LOGGING] = configurator.get_logging_plugins_params(logging_plugin_instances) result[TARGETS] = configurator.get_targets_params(target_instances) else: error_msg = "URl not Found" raise web.notfound(error_msg) return json.dumps(result)
def add_agent_config(service, dict): ''' Find the input config for the plugin fieldname:defaultvalue :param service: name of the service :param dict: poller_dict as the input :return: ''' dict["agentConfig"] = {} agentConfig = {} agentConfig["config"] = {} for key, value in service_plugin_mapping.items(): if(key == service): agentConfig["name"] = value break config = configurator.get_metrics_plugins_params(agentConfig["name"]) for item in config["plugins"]: if(item.get("config") and item.get("name") == agentConfig["name"]): #Config specific to jvm plugin if(agentConfig["name"] == "jvm" or agentConfig["name"] == "kafka_jmx"): agentConfig["config"]["process"] = service break for item1 in item["config"]: agentConfig["config"][item1["fieldName"]] = item1["defaultValue"] #In apache plugin replace the port default value with the listening ports for apache/httpd, #if there are multiple listening ports for the PID assosciate the first port with the PID if(service == "apache"): if(len(dict["ports"]) != 0): agentConfig["config"]["port"] = dict["ports"][0] if(agentConfig["config"]["port"] == "443"): agentConfig["config"]["secure"] = "true" dict["agentConfig"].update(agentConfig) return dict
def add_agent_config(service, service_dict=None): ''' Find the input config for the plugin fieldname:defaultvalue :param service: name of the service :param dict: poller_dict as the input :return: ''' if not service_dict: service_dict = dict() service_dict["agentConfig"] = {} agent_config = {} agent_config["config"] = {} for key, value in SERVICE_PLUGIN_MAPPING.items(): if key == service: agent_config["name"] = value break config = configurator.get_metrics_plugins_params(agent_config["name"]) for item in config["plugins"]: if item.get("config") and item.get("name") == agent_config["name"]: if agent_config["name"] == "kafkatopic": agent_config["config"]["process"] = service for parameter in item["config"]: agent_config["config"][ parameter["fieldName"]] = parameter["defaultValue"] break for parameter in item["config"]: agent_config["config"][ parameter["fieldName"]] = parameter["defaultValue"] # In apache plugin replace the port default value with the listening ports for apache/httpd, # if there are multiple listening ports for the PID assosciate the first # port with the PID if service == "apache": if service_dict["ports"]: agent_config["config"]["port"] = service_dict["ports"][0] if agent_config["config"]["port"] == "443": agent_config["config"]["secure"] = "true" # topstats agent plugin is on demand (only explicit operations i.e. start/stop is allowed) # topstats plugin start/stop is not part of bulk operation elif service == "topstats": service_dict["agentConfig"]["on_demand"] = True else: service_dict["agentConfig"]["on_demand"] = False service_dict["agentConfig"].update(agent_config) logger.debug("Returning add_agent_config with {0}".format(service_dict)) return service_dict
def add_poller_config(service, dict): dict["pollerConfig"] = {} pollerConfig = {} pollerConfig["config"] = {} for key, value in service_plugin_mapping.items(): if (key == service): pollerConfig["name"] = value break config = configurator.get_metrics_plugins_params(pollerConfig["name"]) for item in config["plugins"]: if(item.get("config") and item.get("name") == pollerConfig["name"]): for item1 in item["config"]: pollerConfig["config"][item1["fieldName"]] = item1["defaultValue"] dict["pollerConfig"].update(pollerConfig) return dict
def add_agent_config(service, service_dict): ''' Find the input config for the plugin fieldname:defaultvalue :param service: name of the service :param dict: poller_dict as the input :return: ''' service_dict["agentConfig"] = {} agent_config = {} agent_config["config"] = {} for key, value in SERVICE_PLUGIN_MAPPING.items(): if key == service: agent_config["name"] = value break #print service #print SERVICE_PLUGIN_MAPPING.keys() config = configurator.get_metrics_plugins_params(agent_config["name"]) for item in config["plugins"]: if item.get("config") and item.get("name") == agent_config["name"]: # Config specific to jvm plugin if agent_config["name"] == "jvm": agent_config["config"]["process"] = service break if agent_config["name"] == "kafkatopic": agent_config["config"]["process"] = service for parameter in item["config"]: agent_config["config"][ parameter["fieldName"]] = parameter["defaultValue"] break for parameter in item["config"]: agent_config["config"][ parameter["fieldName"]] = parameter["defaultValue"] # In apache plugin replace the port default value with the listening ports for apache/httpd, # if there are multiple listening ports for the PID assosciate the first # port with the PID if service == "apache": if len(service_dict["ports"]) != 0: agent_config["config"]["port"] = service_dict["ports"][0] if agent_config["config"]["port"] == "443": agent_config["config"]["secure"] = "true" service_dict["agentConfig"].update(agent_config) return service_dict
def add_poller_config(service, service_dict): ''' Add poller config ''' service_dict["pollerConfig"] = {} poller_config = {} poller_config["config"] = {} for key, value in SERVICE_PLUGIN_MAPPING.items(): if key == service: poller_config["name"] = value break config = configurator.get_metrics_plugins_params(poller_config["name"]) for item in config["plugins"]: if item.get("config") and item.get("name") == poller_config["name"]: for item1 in item["config"]: poller_config["config"][item1["fieldName"]] = item1["defaultValue"] service_dict["pollerConfig"].update(poller_config) return service_dict