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
|
||||
port = None
|
||||
differentiate_values = False
|
||||
differentiate_values_over_time = False
|
||||
lowercase_metric_names = False
|
||||
prefix = None
|
||||
types = {}
|
||||
postfix = None
|
||||
@ -88,9 +85,9 @@ def sanitize_field(field):
|
||||
return field
|
||||
|
||||
def kairosdb_config(c):
|
||||
global host, port, differentiate_values, differentiate_values_over_time, \
|
||||
prefix, postfix, host_separator, metric_separator, \
|
||||
lowercase_metric_names, protocol, tags
|
||||
global host, port, prefix, postfix, host_separator, \
|
||||
metric_separator, lowercase_metric_names, protocol, \
|
||||
tags
|
||||
|
||||
for child in c.children:
|
||||
if child.key == 'KairosDBHost':
|
||||
@ -100,14 +97,6 @@ def kairosdb_config(c):
|
||||
elif child.key == 'TypesDB':
|
||||
for v in child.values:
|
||||
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':
|
||||
lowercase_metric_names = True
|
||||
elif child.key == 'MetricPrefix':
|
||||
@ -141,8 +130,6 @@ def kairosdb_init():
|
||||
d = {
|
||||
'host': host,
|
||||
'port': port,
|
||||
'differentiate_values': differentiate_values,
|
||||
'differentiate_values_over_time': differentiate_values_over_time,
|
||||
'lowercase_metric_names': lowercase_metric_names,
|
||||
'sock': None,
|
||||
'lock': threading.Lock(),
|
||||
@ -253,39 +240,7 @@ def kairosdb_write(v, data=None):
|
||||
|
||||
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:
|
||||
line = 'put %s %d %f %s' % ( metric, time, new_value, tags)
|
||||
|
@ -32,10 +32,8 @@ collectd_python_plugin "kairosdb_writer" do
|
||||
opts = {"KairosDBHost"=>node['collectd']['server']['host'],
|
||||
"KairosDBPort"=>node['collectd']['server']['port'],
|
||||
"KairosDBProtocol"=>node['collectd']['server']['protocol'],
|
||||
"LowercaseMetricNames"=>"true",
|
||||
"Tags" => "host=#{node['fqdn']}\" \"role=OSROLE\" \"location=China.Beijing.TsingHua\" \"cluster=#{node['cluster']}",
|
||||
"TypesDB" => node['collectd']['types_db'],
|
||||
"DifferentiateCountersOverTime" => true
|
||||
}
|
||||
options(opts)
|
||||
end
|
||||
|
@ -31,13 +31,13 @@ cookbook_file File.join(node['collectd']['plugin_dir'], "rabbitmq_info.py") do
|
||||
notifies :restart, resources(:service => "collectd")
|
||||
end
|
||||
|
||||
node.override["collectd"]["mq"]["vhost"] = node["mq"]["vhost"]
|
||||
node.override["collectd"]["mq"]["vhost"] = node["openstack"]["mq"]["vhost"]
|
||||
|
||||
collectd_python_plugin "rabbitmq_info" do
|
||||
opts = { "Vhost" => node["collectd"]["mq"]["vhost"],
|
||||
"Api" => "http://localhost:15672/api/queues",
|
||||
"User" => "#{node["mq"]["user"]}",
|
||||
"Pass" => "#{node["mq"]["password"]}"
|
||||
"User" => "#{node["openstack"]["mq"]["user"]}",
|
||||
"Pass" => "#{node["openstack"]["mq"]["password"]}"
|
||||
}
|
||||
options(opts)
|
||||
end
|
||||
|
@ -8,7 +8,7 @@
|
||||
},
|
||||
"chef_type": "role",
|
||||
"run_list": [
|
||||
"recipe[collectd]"
|
||||
"recipe[collectd::client]"
|
||||
],
|
||||
"env_run_lists": {
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user