The dynamic pollster feature allows system administrators to
create/update pollsters on the fly (without changing code). The system
reads YAML configures that are found in ``pollsters_definitions_dirs``,
which has the default at ``/etc/ceilometer/pollsters.d``. Each YAML file
in the dynamic pollster feature can use the following attributes to
define a dynamic pollster:
* ``name`` -- mandatory field. It specifies the name/key of the dynamic
pollster. For instance, a pollster for magnum can use the name
``dynamic.magnum.cluster``;
* ``sample_type``: mandatory field; it defines the sample type. It must
be one of the values: ``gauge``, ``delta``, ``cumulative``;
* ``unit``: mandatory field; defines the unit of the metric that is
being collected. For magnum, for instance, one can use ``cluster`` as
the unit or some other meaningful String value;
* ``value_attribute``: mandatory attribute; defines the attribute in the
JSON response from the URL of the component being polled. In our magnum
example, we can use ``status`` as the value attribute;
* ``endpoint_type``: mandatory field; defines the endpoint type that is
used to discover the base URL of the component to be monitored; for
magnum, one can use ``container-infra``. Other values are accepted such
as ``volume`` for cinder endpoints, ``object-store`` for swift, and so
on;
* ``url_path``: mandatory attribute. It defines the path of the request
that we execute on the endpoint to gather data. For example, to gather
data from magnum, one can use ``v1/clusters/detail``;
* ``metadata_fields``: optional field. It is a list of all fields that
the response of the request executed with ``url_path`` that we want to
retrieve. As an example, for magnum, one can use the following values:
```
metadata_fields:
- "labels"
- "updated_at"
- "keypair"
- "master_flavor_id"
- "api_address"
- "master_addresses"
- "node_count"
- "docker_volume_size"
- "master_count"
- "node_addresses"
- "status_reason"
- "coe_version"
- "cluster_template_id"
- "name"
- "stack_id"
- "created_at"
- "discovery_url"
- "container_version"
```
* ``skip_sample_values``: optional field. It defines the values that
might come in the ``value_attribute`` that we want to ignore. For
magnun, one could for instance, ignore some of the status it has for
clusters. Therefore, data is not gathered for clusters in the defined
status.
```
skip_sample_values:
- "CREATE_FAILED"
- "DELETE_FAILED"
```
* ``value_mapping``: optional attribute. It defines a mapping for the
values that the dynamic pollster is handling. This is the actual value
that is sent to Gnocchi or other backends. If there is no mapping
specified, we will use the raw value that is obtained with the use of
``value_attribute``. An example for magnum, one can use:
```
value_mapping:
CREATE_IN_PROGRESS: "0"
CREATE_FAILED: "1"
CREATE_COMPLETE: "2"
UPDATE_IN_PROGRESS: "3"
UPDATE_FAILED: "4"
UPDATE_COMPLETE: "5"
DELETE_IN_PROGRESS: "6"
DELETE_FAILED: "7"
DELETE_COMPLETE: "8"
RESUME_COMPLETE: "9"
RESUME_FAILED: "10"
RESTORE_COMPLETE: "11"
ROLLBACK_IN_PROGRESS: "12"
ROLLBACK_FAILED: "13"
ROLLBACK_COMPLETE: "14"
SNAPSHOT_COMPLETE: "15"
CHECK_COMPLETE: "16"
ADOPT_COMPLETE: "17"
```
* ``default_value_mapping``: optional parameter. The default value for
the value mapping in case the variable value receives data that is not
mapped to something in the ``value_mapping`` configuration. This
attribute is only used when ``value_mapping`` is defined. Moreover, it
has a default of ``-1``.
Change-Id: I5f0614518a9e304b86b74aa5bb0f9667d2a3a787
Signed-off-by: Rafael Weingärtner <rafael@apache.org>
stestr is recommended by OpenStack Project Testing Interface for running tests
[1]. This change migrates to stestr for running unit tests and coverage
job. Modified `cover` env allows running it as Zuul job and visualising
its results in Gerrit.
[1] https://governance.openstack.org/tc/reference/pti/python.html#python-test-running
Change-Id: I9e8b79d7a18cd36946daff10abb1a2f43b1aa3a1
Since these folders are generated during build (and to be ignored).
.gitignore is also sorted for easier maintenance.
Change-Id: I324f89264a523f9bf99c7311eb12e76cb0673b4b
Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
Pylint usage pattern is to take a look on a diff for pylint results between
previous code version and current patch. It's needed to critical issues only.
Change-Id: I4fc2ae732a7eaef2bc7bfacfd111ef849d003268
Several files were removed from the doc sources and config, so there are a
few folders in .gitignore, which are not needed anymore. Also there was a
build directory referenced and the only build directory is under the doc
folder, so this was corrected also.
Change-Id: I60f25d282caa813b3bfc790988578b9882ba95ab
Since we have removed the ceilometer.conf.sample file and added
tox -e genconfig to generate it, we should no longer track it.
Change-Id: I66a03eb2672941ba5115bf0adb9fb0c944f68e4d
Closes-Bug: #1320150
- add .testr.conf (in base dir and nova_tests)
- remove all references to nose
- adjust paths: A couple of tests would assume the current directory
was ./tests/ but it is now ./
- don't run the tests in parallel as the db tests have one connection
per test class.
nova_tests hackery:
It seems testtools/testr imports everything and I just don't see a way of
running things in tests/ and nova_tests/ seperately but in one .test.conf.
So if you want to use testr directly you will need to:
testr run
cd nova_tests
testr run
part of bug 1177924
Change-Id: I41875dcf94463fa5f9c07a7840c37089226c59ad
Update the instructions for installing ceilometer by hand
instead of using devstack.
bug 1070404
bug 1071494
Change-Id: I617e0467b40f218e5811da7b39db76c6eb466da6
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Some of the docstrings pulled into the API documentation
were malformatted, so fix those. Also include the API
documentation in a toctree so it is linked in the
"Contributing" section of the documentation.
Change-Id: I8eef6007045d5426299dadb67303102855c15dc2
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Following http://wiki.openstack.org/Translations to integrate transifex
translation into ceilometer and to fix bug 1082805.
This is the ground work to enable translation jobs using transifex and
Jenkin's in ceilometer. We added the empty file
ceilometer/locale/ceilometer.pot to avoid the failure of the Jenkin'
translation-jobs because git doesn't allow empty directory to be added
into the repository.
We still need to do the following things once this patch gets accepted:
1. Make the transifex ceilometer project
(https://www.transifex.com/projects/p/ceilometer/) as part of the
openstack transifex project hub and give access to the transifex
openstack Jenkins account.
2. Add the translation-jobs into openstack/openstack-ci-puppet for
ceilometer.
3. Recheck and/or clean the LOG.foobar strings in ceilometer so that
only the useful and necessary strings would be extracted into the .pot
file.
NOTE:
1. Don't use '_' as the variable name for "don't care", since it clashes
with gettext module.
2. Wrap the string with the underscore function to make it ready for
translation, e.g.
internationalized_string = _("I'm internationalized!")
LOG.debug(_('I speak the language of %(language)s'), locals())
Change-Id: I9732e424b374afa8f0650baf4e3537109e7520d1
Some of our documentation dependencies were not listed in
test-requires, so the venv environment in tox needs to be
updated to include them.
Then the build_sphinx command looks for configuration settings
in setup.cfg, so those need to be added.
When Sphinx runs in this way, it ends up creating
RST files for every module it finds in the source tree
so it can document the internal APIs. Those generated files
can be ignored by git.
Change-Id: I21b5f9c6c4d4201893bb3bf87f0b61a053b968f5
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
1. Add the version module from openstack.common.
2. Create a ceilometer/version.py to set up the
version info.
3. Update setup.py from openstack.common.
4. Update documentation build to use the version module
directly instead of running setup.py to get the version.
5. Update setup.py to use the new version module.
Change-Id: I9d8be62b8ece75090bf335d27adb59a46e3d6263
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
- Update the openstack.common.setup module
- Update our openstack-common.conf to include setup.py
in future updates
- Use the common setup command class so the sdist command
generates an AUTHORS file and ChangeLog
Change-Id: I4469f0feaea5bb67022c6077bbea43110384f31b
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
The tox setup does not work on Ubuntu Precise for some reason,
but running nose directly does. This update tweaks the stand-alone
script run_tests.sh to mimic the behavior of tox. It also
adds the "cover" directory created by the coverage plugin to nose
to the list of files being ignored by git.
Change-Id: I65224cf4bf75e6b7fc0207b3545c466bdac5a35c
Implement a Counter class for use by notification plugins.
Define a base class for Notification plugins.
Define a dispatcher class for notification events to be passed to the plugins.
Add a notification plugin for instance creation and "instance" counters.
Add a reusable function for turning a Counter into a metering event dictionary.
Change-Id: Iaa626b98e1a661ed31cc8b8e95263c111df20888