Source code for insights.parsers.gnocchi

"""
OpenStack gnocchi related files or commands
===========================================

Module for the processing of gnocchi related files and commands.
This module provides parsers:

GnocchiConf - file ``/etc/gnocchi.gnocchi.conf``
------------------------------------------------

GnocchiMetricdLog - file ``gnocchi-metricd.log`` or ``metricd.log``
-------------------------------------------------------------------
"""

from insights.core import IniConfigFile, LogFileOutput
from insights.core.filters import add_filter
from insights.core.plugins import parser
from insights.specs import Specs


add_filter(Specs.gnocchi_conf, "[")


[docs] @parser(Specs.gnocchi_conf) class GnocchiConf(IniConfigFile): """ Gnocchi configuration parser class, based on the ``IniConfigFile`` class. The gnocchi configuration file is a standard '.ini' file and this parser uses the ``IniConfigFile`` class to read it. Sample configuration:: [DEFAULT] log_dir = /var/log/gnocchi [api] auth_mode = keystone max_limit = 1000 [archive_policy] [indexer] url = mysql+pymysql://gnocchi:exampleabckeystring@192.168.0.1/gnocchi?charset=utf8 [metricd] workers = 2 [oslo_middleware] [oslo_policy] policy_file = /etc/gnocchi/policy.json [statsd] resource_id = 5e3fcbe2-7aab-475d-b42c-abcdefgh user_id = e0ca4711-1128-422c-abd6-abcdefgh project_id = af0c88e8-90d8-4795-9efe-abcdefgh archive_policy_name = high flush_delay = 10 [storage] driver = file file_basepath = /var/lib/gnocchi [keystone_authtoken] auth_uri=http://192.168.0.1:5000/v3 auth_type=password auth_version=v3 auth_url=http://192.168.0.1:35357 username=gnocchi password=yourpassword23432 user_domain_name=Default project_name=services project_domain_name=Default Examples: >>> type(conf) <class 'insights.parsers.gnocchi.GnocchiConf'> >>> sorted(conf.sections()) == sorted([u'api', u'archive_policy', u'indexer', u'metricd', u'oslo_middleware', u'oslo_policy', u'statsd', u'storage', u'keystone_authtoken']) True >>> 'storage' in conf True >>> conf.has_option('indexer', 'url') True >>> conf.get('indexer', 'url') == u'mysql+pymysql://gnocchi:exampleabckeystring@192.168.0.1/gnocchi?charset=utf8' True >>> conf.getint("statsd", "flush_delay") 10 """ pass
[docs] @parser(Specs.gnocchi_metricd_log) class GnocchiMetricdLog(LogFileOutput): """ Provide access to metricd.log using the LogFileOutput parser class. This log file is a standard log parser based on the LogFileOutput class. From OpenStack 12, the log ``metricd.log`` is renamed to ``gnocchi-metricd.log`` Sample log file:: 2017-04-12 03:10:53.076 14550 INFO gnocchi.cli [-] 0 measurements bundles across 0 metrics wait to be processed. 2017-04-12 03:12:53.078 14550 INFO gnocchi.cli [-] 0 measurements bundles across 0 metrics wait to be processed. 2017-04-12 03:14:53.080 14550 INFO gnocchi.cli [-] 0 measurements bundles across 0 metrics wait to be processed. 2017-04-13 21:06:11.676 114807 ERROR tooz.drivers.redis ToozError: Cannot extend an unlocked lock Examples: >>> 'measurements bundles across 0 metrics wait to be processed' in log True >>> log.get('ERROR') [{'raw_message': '2017-04-13 21:06:11.676 114807 ERROR tooz.drivers.redis ToozError: Cannot extend an unlocked lock'}] >>> from datetime import datetime >>> list(log.get_after(datetime(2017, 4, 12, 19, 36, 38))) [{'raw_message': '2017-04-13 21:06:11.676 114807 ERROR tooz.drivers.redis ToozError: Cannot extend an unlocked lock'}] """ pass