Merge pull request #219 from corey-hammerton/issue-218
puppetboard/app: Enabling environment filtering on overview metrics
This commit is contained in:
@@ -133,32 +133,49 @@ def index(env):
|
|||||||
:type env: :obj:`string`
|
:type env: :obj:`string`
|
||||||
"""
|
"""
|
||||||
envs = environments()
|
envs = environments()
|
||||||
check_env(env, envs)
|
|
||||||
|
|
||||||
# TODO: Would be great if we could parallelize this somehow, doing these
|
|
||||||
# requests in sequence is rather pointless.
|
|
||||||
prefix = 'puppetlabs.puppetdb.query.population'
|
|
||||||
num_nodes = get_or_abort(
|
|
||||||
puppetdb.metric,
|
|
||||||
"{0}{1}".format(prefix, ':type=default,name=num-nodes'))
|
|
||||||
num_resources = get_or_abort(
|
|
||||||
puppetdb.metric,
|
|
||||||
"{0}{1}".format(prefix, ':type=default,name=num-resources'))
|
|
||||||
avg_resources_node = get_or_abort(
|
|
||||||
puppetdb.metric,
|
|
||||||
"{0}{1}".format(prefix, ':type=default,name=avg-resources-per-node'))
|
|
||||||
metrics = {
|
metrics = {
|
||||||
'num_nodes': num_nodes['Value'],
|
'num_nodes': 0,
|
||||||
'num_resources': num_resources['Value'],
|
'num_resources': 0,
|
||||||
'avg_resources_node': "{0:10.0f}".format(avg_resources_node['Value']),
|
'avg_resources_node': 0}
|
||||||
}
|
check_env(env, envs)
|
||||||
|
|
||||||
if env == '*':
|
if env == '*':
|
||||||
query = None
|
query = None
|
||||||
|
|
||||||
|
prefix = 'puppetlabs.puppetdb.query.population'
|
||||||
|
num_nodes = get_or_abort(
|
||||||
|
puppetdb.metric,
|
||||||
|
"{0}{1}".format(prefix, ':type=default,name=num-nodes'))
|
||||||
|
num_resources = get_or_abort(
|
||||||
|
puppetdb.metric,
|
||||||
|
"{0}{1}".format(prefix, ':type=default,name=num-resources'))
|
||||||
|
avg_resources_node = get_or_abort(
|
||||||
|
puppetdb.metric,
|
||||||
|
"{0}{1}".format(prefix, ':type=default,name=avg-resources-per-node'))
|
||||||
|
metrics['num_nodes'] = num_nodes['Value']
|
||||||
|
metrics['num_resources'] = num_resources['Value']
|
||||||
|
metrics['avg_resources_node'] = "{0:10.0f}".format(
|
||||||
|
avg_resources_node['Value'])
|
||||||
else:
|
else:
|
||||||
query = '["and", {0}]'.format(
|
query = '["and", {0}]'.format(
|
||||||
", ".join('["=", "{0}", "{1}"]'.format(field, env)
|
", ".join('["=", "{0}", "{1}"]'.format(field, env)
|
||||||
for field in ['catalog_environment', 'facts_environment']))
|
for field in ['catalog_environment', 'facts_environment']))
|
||||||
|
num_nodes = get_or_abort(
|
||||||
|
puppetdb._query,
|
||||||
|
'nodes',
|
||||||
|
query='["extract", [["function", "count"]],["and", {0}]]'.format(
|
||||||
|
",".join('["=", "{0}", "{1}"]'.format(field, env)
|
||||||
|
for field in ['catalog_environment', 'facts_environment'])))
|
||||||
|
num_resources = get_or_abort(
|
||||||
|
puppetdb._query,
|
||||||
|
'resources',
|
||||||
|
query='["extract", [["function", "count"]],' \
|
||||||
|
'["=", "environment", "{0}"]]'.format(
|
||||||
|
env))
|
||||||
|
metrics['num_nodes'] = num_nodes[0]['count']
|
||||||
|
metrics['num_resources'] = num_resources[0]['count']
|
||||||
|
metrics['avg_resources_node'] = "{0:10.0f}".format(
|
||||||
|
(num_resources[0]['count'] / num_nodes[0]['count']))
|
||||||
|
|
||||||
nodes = get_or_abort(puppetdb.nodes,
|
nodes = get_or_abort(puppetdb.nodes,
|
||||||
query=query,
|
query=query,
|
||||||
|
|||||||
Reference in New Issue
Block a user