Merge "fix collectd integration bug" into dev/experimental
This commit is contained in:
commit
3f8eaf756c
@ -21,9 +21,6 @@ from traceback import format_exc
|
|||||||
|
|
||||||
host = None
|
host = None
|
||||||
port = None
|
port = None
|
||||||
differentiate_values = False
|
|
||||||
differentiate_values_over_time = False
|
|
||||||
lowercase_metric_names = False
|
|
||||||
prefix = None
|
prefix = None
|
||||||
types = {}
|
types = {}
|
||||||
postfix = None
|
postfix = None
|
||||||
@ -88,9 +85,9 @@ def sanitize_field(field):
|
|||||||
return field
|
return field
|
||||||
|
|
||||||
def kairosdb_config(c):
|
def kairosdb_config(c):
|
||||||
global host, port, differentiate_values, differentiate_values_over_time, \
|
global host, port, prefix, postfix, host_separator, \
|
||||||
prefix, postfix, host_separator, metric_separator, \
|
metric_separator, lowercase_metric_names, protocol, \
|
||||||
lowercase_metric_names, protocol, tags
|
tags
|
||||||
|
|
||||||
for child in c.children:
|
for child in c.children:
|
||||||
if child.key == 'KairosDBHost':
|
if child.key == 'KairosDBHost':
|
||||||
@ -100,14 +97,6 @@ def kairosdb_config(c):
|
|||||||
elif child.key == 'TypesDB':
|
elif child.key == 'TypesDB':
|
||||||
for v in child.values:
|
for v in child.values:
|
||||||
kairosdb_parse_types_file(v)
|
kairosdb_parse_types_file(v)
|
||||||
# DeriveCounters maintained for backwards compatibility
|
|
||||||
elif child.key == 'DeriveCounters':
|
|
||||||
differentiate_values = True
|
|
||||||
elif child.key == 'DifferentiateCounters':
|
|
||||||
differentiate_values = True
|
|
||||||
elif child.key == 'DifferentiateCountersOverTime':
|
|
||||||
differentiate_values = True
|
|
||||||
differentiate_values_over_time = True
|
|
||||||
elif child.key == 'LowercaseMetricNames':
|
elif child.key == 'LowercaseMetricNames':
|
||||||
lowercase_metric_names = True
|
lowercase_metric_names = True
|
||||||
elif child.key == 'MetricPrefix':
|
elif child.key == 'MetricPrefix':
|
||||||
@ -141,8 +130,6 @@ def kairosdb_init():
|
|||||||
d = {
|
d = {
|
||||||
'host': host,
|
'host': host,
|
||||||
'port': port,
|
'port': port,
|
||||||
'differentiate_values': differentiate_values,
|
|
||||||
'differentiate_values_over_time': differentiate_values_over_time,
|
|
||||||
'lowercase_metric_names': lowercase_metric_names,
|
'lowercase_metric_names': lowercase_metric_names,
|
||||||
'sock': None,
|
'sock': None,
|
||||||
'lock': threading.Lock(),
|
'lock': threading.Lock(),
|
||||||
@ -253,38 +240,6 @@ def kairosdb_write(v, data=None):
|
|||||||
|
|
||||||
metric = '.'.join(path_fields)
|
metric = '.'.join(path_fields)
|
||||||
|
|
||||||
# perform data normalization for COUNTER and DERIVE points
|
|
||||||
if (isinstance(value, (float, int)) and
|
|
||||||
data['differentiate_values'] and
|
|
||||||
(ds_type == 'COUNTER' or ds_type == 'DERIVE')):
|
|
||||||
# we have an old value
|
|
||||||
if metric in data['values']:
|
|
||||||
old_time, old_value = data['values'][metric]
|
|
||||||
|
|
||||||
# overflow
|
|
||||||
if value < old_value:
|
|
||||||
v_type_max = v_type[i][3]
|
|
||||||
if v_type_max == 'U':
|
|
||||||
# this is funky. pretend as if this is the first data point
|
|
||||||
new_value = None
|
|
||||||
else:
|
|
||||||
v_type_min = str_to_num(v_type[i][2])
|
|
||||||
v_type_max = str_to_num(v_type[i][3])
|
|
||||||
new_value = v_type_max - old_value + value - v_type_min
|
|
||||||
else:
|
|
||||||
new_value = value - old_value
|
|
||||||
|
|
||||||
if (isinstance(new_value, (float, int)) and
|
|
||||||
data['differentiate_values_over_time']):
|
|
||||||
interval = time - old_time
|
|
||||||
if interval < 1:
|
|
||||||
interval = 1
|
|
||||||
new_value = new_value / interval
|
|
||||||
|
|
||||||
# update previous value
|
|
||||||
data['values'][metric] = ( time, value )
|
|
||||||
|
|
||||||
else:
|
|
||||||
new_value = value
|
new_value = value
|
||||||
|
|
||||||
if new_value is not None:
|
if new_value is not None:
|
||||||
|
@ -32,10 +32,8 @@ collectd_python_plugin "kairosdb_writer" do
|
|||||||
opts = {"KairosDBHost"=>node['collectd']['server']['host'],
|
opts = {"KairosDBHost"=>node['collectd']['server']['host'],
|
||||||
"KairosDBPort"=>node['collectd']['server']['port'],
|
"KairosDBPort"=>node['collectd']['server']['port'],
|
||||||
"KairosDBProtocol"=>node['collectd']['server']['protocol'],
|
"KairosDBProtocol"=>node['collectd']['server']['protocol'],
|
||||||
"LowercaseMetricNames"=>"true",
|
|
||||||
"Tags" => "host=#{node['fqdn']}\" \"role=OSROLE\" \"location=China.Beijing.TsingHua\" \"cluster=#{node['cluster']}",
|
"Tags" => "host=#{node['fqdn']}\" \"role=OSROLE\" \"location=China.Beijing.TsingHua\" \"cluster=#{node['cluster']}",
|
||||||
"TypesDB" => node['collectd']['types_db'],
|
"TypesDB" => node['collectd']['types_db'],
|
||||||
"DifferentiateCountersOverTime" => true
|
|
||||||
}
|
}
|
||||||
options(opts)
|
options(opts)
|
||||||
end
|
end
|
||||||
|
@ -31,13 +31,13 @@ cookbook_file File.join(node['collectd']['plugin_dir'], "rabbitmq_info.py") do
|
|||||||
notifies :restart, resources(:service => "collectd")
|
notifies :restart, resources(:service => "collectd")
|
||||||
end
|
end
|
||||||
|
|
||||||
node.override["collectd"]["mq"]["vhost"] = node["mq"]["vhost"]
|
node.override["collectd"]["mq"]["vhost"] = node["openstack"]["mq"]["vhost"]
|
||||||
|
|
||||||
collectd_python_plugin "rabbitmq_info" do
|
collectd_python_plugin "rabbitmq_info" do
|
||||||
opts = { "Vhost" => node["collectd"]["mq"]["vhost"],
|
opts = { "Vhost" => node["collectd"]["mq"]["vhost"],
|
||||||
"Api" => "http://localhost:15672/api/queues",
|
"Api" => "http://localhost:15672/api/queues",
|
||||||
"User" => "#{node["mq"]["user"]}",
|
"User" => "#{node["openstack"]["mq"]["user"]}",
|
||||||
"Pass" => "#{node["mq"]["password"]}"
|
"Pass" => "#{node["openstack"]["mq"]["password"]}"
|
||||||
}
|
}
|
||||||
options(opts)
|
options(opts)
|
||||||
end
|
end
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
},
|
},
|
||||||
"chef_type": "role",
|
"chef_type": "role",
|
||||||
"run_list": [
|
"run_list": [
|
||||||
"recipe[collectd]"
|
"recipe[collectd::client]"
|
||||||
],
|
],
|
||||||
"env_run_lists": {
|
"env_run_lists": {
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user