ceilometer-collector have error for collecting metering data for system stats.
Here is the log:
2014-10-08 15:36:55.152 10618 DEBUG ceilometer.dispatcher.database [-] metering data hardware.system_stats.io.incoming.blocks for localhost @ 2014-10-08T10:06:47Z: 114197404 record_metering_data /opt/stack/ceilometer/ceilometer/dispatcher/database.py:55
2014-10-08 15:36:55.177 10618 ERROR oslo.db.sqlalchemy.exc_filters [-] DBAPIError exception wrapped from (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND meter.unit = 'blocks'' at line 3") 'SELECT meter.id \nFROM meter \nWHERE meter.name = %s AND meter.type = %s AND meter.unit = %s' ('hardware.system_stats.io.incoming.blocks', [u'cumulative'], 'blocks')
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters Traceback (most recent call last):
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py", line 59, in _handle_dbapi_exception
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters e, statement, parameters, cursor, context)
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters exc_info
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters reraise(type(exception), exception, tb=exc_tb)
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters context)
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters cursor.execute(statement, parameters)
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters self.errorhandler(self, exc, value)
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters raise errorclass, errorvalue
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters ProgrammingError: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND meter.unit = 'blocks'' at line 3") 'SELECT meter.id \nFROM meter \nWHERE meter.name = %s AND meter.type = %s AND meter.unit = %s' ('hardware.system_stats.io.incoming.blocks', [u'cumulative'], 'blocks')
2014-10-08 15:36:55.177 10618 TRACE oslo.db.sqlalchemy.exc_filters
2014-10-08 15:36:55.283 10618 ERROR ceilometer.dispatcher.database [-] Failed to record metering data: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND meter.unit = 'blocks'' at line 3") 'SELECT meter.id \nFROM meter \nWHERE meter.name = %s AND meter.type = %s AND meter.unit = %s' ('hardware.system_stats.io.incoming.blocks', [u'cumulative'], 'blocks')
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database Traceback (most recent call last):
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/opt/stack/ceilometer/ceilometer/dispatcher/database.py", line 66, in record_metering_data
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database self.storage_conn.record_metering_data(meter)
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/opt/stack/ceilometer/ceilometer/storage/impl_sqlalchemy.py", line 334, in record_metering_data
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database data['counter_unit'])
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/opt/stack/ceilometer/ceilometer/storage/impl_sqlalchemy.py", line 258, in _create_meter
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database meter.c.unit == unit))).first()
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database params)
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database compiled_sql, distilled_params
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database context)
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py", line 125, in _handle_dbapi_exception
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database six.reraise(type(newraise), newraise, sys.exc_info()[2])
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/compat/handle_error.py", line 102, in _handle_dbapi_exception
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database per_fn = fn(ctx)
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/exc_filters.py", line 323, in handler
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database context.is_disconnect)
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database File "/usr/local/lib/python2.7/dist-packages/oslo/db/sqlalchemy/exc_filters.py", line 278, in _raise_for_remaining_DBAPIError
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database raise exception.DBError(error)
2014-10-08 15:36:55.283 10618 TRACE ceilometer.dispatcher.database DBError: (ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND meter.unit = 'blocks'' at line 3") 'SELECT meter.id \nFROM meter \nWHERE meter.name = %s AND meter.type = %s AND meter.unit = %s' ('hardware.system_stats.io.incoming.blocks', [u'cumulative'], 'blocks')
Reviewed: https:/ /review. openstack. org/126871 /git.openstack. org/cgit/ openstack/ ceilometer/ commit/ ?id=f8f63d4b15c e68797d6e16943b d85efb19a77752
Committed: https:/
Submitter: Jenkins
Branch: master
commit f8f63d4b15ce687 97d6e16943bd85e fb19a77752
Author: Samta <email address hidden>
Date: Wed Oct 8 16:27:12 2014 +0530
Fix recording failure for system pollster
The parameter "cumulative" was interpreted as a list and could
not be recognized as a valid Type for SQL query hence failing
to record the data for the pollster.
The presence of ',' operator in the pollster class after the term
CUMULATIVE caused it to be treated as a list
This is corrected to interpret the field as a string which will
be successfully recorded to the meter database.
Change-Id: I10a69134a7f0c4 2a3e6c0d9bb7568 e8d8fd2a932
Closes-Bug: 1378742