Commit Graph

27 Commits

Author SHA1 Message Date
Andreas Jaeger c929899400 Retire repository
Fuel repositories are all retired in openstack namespace, retire
remaining fuel repos in x namespace since they are unused now.

This change removes all content from the repository and adds the usual
README file to point out that the repository is retired following the
process from
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project

See also
http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011675.html

A related change is: https://review.opendev.org/699752 .

Change-Id: I8aded54f1b9f3b79f3a4bf8f607d3695b92f528b
2019-12-18 19:39:39 +01:00
Swann Croiset b19fd832da Correctly cleanup self-monitoring sandboxes
Change-Id: I88e794d7bbd4b056d86fcb6ca9a4cbf610370037
2017-01-25 14:46:28 +01:00
Swann Croiset c7dcbdcaf9 Deserialize aggregated HTTP in the metric collector
This patch adds a custom decoder to deserialize bulk metrics.
The deserialization of bulk_metric message is configurable per Logger and
is disabled by default.
Currently, only the HTTP metrics are deserialized (Logger: aggregated_http_metrics_filter)
To deserialize several Loggers, a list of Loggers separated by space can
be configured for the sandbox.

blueprint: keystone-performance-monitoring

Change-Id: I08e8c816d889f4b0917d766b000fb25330eff174
2016-08-19 12:23:22 +00:00
Swann Croiset 123a86590f Remove the remote Nagios alerting mode
This use case is not really supported because Nagios configuration is
too dependent on the LMA Collector plugin and in practice, no one
chooses this option.

DocImpact

Change-Id: Ia09efb40f476c1daec51530e2c0fb16bc6f99393
2016-05-24 17:05:49 +02:00
Swann Croiset a513e7aaea Factorize infra_alerting configuration
All logic is done once and persisted into hiera.

Change-Id: I352c17393eeba57b5bde460591c2db567c452c45
2016-05-24 16:59:01 +02:00
Swann Croiset ebac150f8a Separate the (L)og of the LMA collector
This change separates the processing of the logs/notifications and
metric/alerting into 2 dedicated hekad processes, these services are
named 'log_collector' and 'metric_collector'.

Both services are managed by Pacemaker on controller nodes and by Upstart on
other nodes.

All metrics computed by log_collector (HTTP response times and creation time
for instances and volumes) are sent directly to the metric_collector via TCP.
Elasticsearch output (log_collector) uses full_action='block' and the
TCP output uses full_action='drop'.

All outputs of metric_collector (InfluxDB, HTTP and TCP) use
full_action='drop'.

The buffer size configurations are:
* metric_collector:
  - influxdb-output buffer size is increased to 1Gb.
  - aggregator-output (tcp) buffer size is decreased to 256Mb (vs 1Gb).
  - nagios outputs (x3) buffer size are decreased to 1Mb.
* log_collector:
  - elasticsearch-output buffer size is decreased to 256Mb (vs 1Gb).
  - tcp-output buffer size is set to 256Mb.

Implements: blueprint separate-lma-collector-pipelines
Fixes-bug: #1566748

Change-Id: Ieadb93b89f81e944e21cf8e5a65f4d683fd0ffb8
2016-05-04 14:34:14 +02:00
Swann Croiset 9cb06879fe Increase timeout to 20s for Openstack collectd plugins
And decrease the max_retries from 3 to 2 to stay in the 50 seconds window.
This change allows to retrieve large number of objects and also avoids to
overload the system by performing 3 'zombies' requests every 50 seconds
without any metrics collected.

Partial-bug: #1554502
Change-Id: I60a7611bc82598831538da01245b87fb29a15c44
2016-03-09 18:25:30 +01:00
Swann Croiset 59d8fd8604 Specify explicitly Neutron log file names parsed by Hekad
Fixes-bug: #1546424
Change-Id: Icacfb8f7c6b81817856df468aeb592978a8d26e8
2016-02-19 15:44:18 +00:00
Simon Pasquier b5d7fa5f9e Create fuel_lma_collector module
This change introduces the fuel_lma_collector Puppet module. This new
module contains all the code which was in the lma_collector module and
relies on the way Fuel uses Puppet like the use of Hiera.

Change-Id: Ibfe97e745742b3f9718f873a8d564ed87476f334
Implements: blueprint lma-without-fuel
2016-02-12 10:42:42 +01:00
Éric Lemoine 471bbc362a Comply to puppet-collectd#391
This change aims to be more compatible with
https://github.com/voxpupuli/puppet-collectd/pull/391, where the
module.conf.erb template does not add quotes around strings.

With this change the adapt_collectd_python_plugin_config function no
longer adds quotes, and lma_collector::collectd::python users are
responsible for adding quotes around strings.

In this way, when a new version of puppet-collectd is released, we
can just remove the adapt_collectd_python_plugin_config function and
things should just work without further changes.

Change-Id: I74501d4fc5a5ed097312975d56fc47ef587de837
2016-01-19 08:42:29 +01:00
Éric Lemoine 4ef310a2c3 Work-around collectd::plugin::python::module limitation
This adds a Ruby function to work-around a limitation in the
collectd::plugin::python::module defined type.

See https://github.com/voxpupuli/puppet-collectd/issues/390.

Change-Id: I76a38c8b6bfdd041ebf2a077f4a6151ea889e074
2016-01-19 08:42:29 +01:00
Éric Lemoine b6c3c1d62d Add lma_collector::collectd::openstack
This adds an lma_collector::collectd::openstack define that, when
declared, configures collectd to collect statistics from an OpenStack
service endpoint.

Usage example:

lma_collector::collectd::openstack { 'nova':
  keystone_url => 'http://example.com/keystone'
}

Works for 'nova', 'cinder', 'glance', 'keystone', and 'neutron'.

Change-Id: I200a1b3de3b2385292e7b17489621382dc2b2e62
2016-01-11 16:33:59 +01:00
Éric Lemoine 3706e5758d Add lma_collector::collectd::python
This adds an lma_collector::collectd::python define to use to
configure collectd Python plugins.

This define will eventually replace
lma_collector::collectd::python_script.

This define is not documented in the README.md file as it won't be
exposed to module users. Instead, wrapper classes/defines will be
added.

Usage example:

lma_collector::collectd::python { 'rabbitmq_info': }

This will configure a collectd Python plugin for the rabbitmq_info.py
Python script.

Change-Id: I997360166c2f121e1b2690578c8e5e92e1b9ad0e
Partially Implements: blueprint lma-without-fuel
2016-01-08 10:39:34 +01:00
Éric Lemoine e7ee247854 Fix OpenStack logstreamer differentiator
Using "/" as the separator in the Heka logstreamer differentiator
prevents the logstreamer from creating a journal file. This is
because the logstreamer uses the Logger name produced by the
differentiator as the journal file name.

This change fixes the problem by changing the differentiator separator
from "/" to "_".

Change-Id: Iaf838f0e5df370df24f0d9d63a9bf13e37aa4bbe
Closes-Bug: #1530326
2016-01-04 14:45:47 +01:00
Éric Lemoine 813f111880 Read OpenStack logs from OpenStack log files
Notes about this change:

* The nova, neutron, cinder, glance, heat, keystone, horizon and murano logs
  are now read from /var/log/<service> (where <service> is the OpenStack
  service name). So we no longer rely on rsyslog for these services.
* We make an exception for Swift which only writes its logs to syslog. So we
  still assume Rsyslog and the Fuel-defined Rsyslog log pattern for Swift.
* The "heka" user is now part of the "keystone" group. This is for Heka to be
  able to read the Keystone logs from /var/log/keystone.
* We used to read Keystone logs from two different places, namely
  /var/log/keystone-all.log and /var/log/user.log. This is no longer the case.
  The Keystone logs are read from the files in /var/log/keystone.

Things to do next (with separate changes):

* Correctly parse Tracebacks (which are multi-line).
* Correctly parse other multi-line logs (Command: logs from
  neutron.agent.linux.utils for example).
* Add an Heka message field to store the Python module name.
* Document the new defined types in the module's README.md file.
* Move patterns in openstack_log.lua to patterns.lua and add unit-tests.
* Read Keystone HTTP logs from /var/log/apache2/keystone_wsgi_*_access.log to
  still be able to generate HTTP metrics for Keystone.

Change-Id: I667376030bff054e8ce9921d92f202e06f71269f
Implements: blueprint lma-without-fuel
Closes-Bug: #1520330
Related-Bug: #1525247
2015-12-16 11:36:31 +01:00
Simon Pasquier 1caa6fa350 Implement flexible cluster policies
This change introduces the GSE cluster policies in the GSE filer.

Change-Id: Ia78366f84f4a3437b807e7715c70815946f67640
2015-10-29 15:34:53 +01:00
Swann Croiset 99a0eda493 Add Nagios support for AFD node status
Co-Authored-By: Swann Croiset <scroiset@mirantis.com>
Co-Authored-By: Simon Pasquier <spasquier@mirantis.com>
Depends-On: Ie5f45d023489dbfaef4af4bbec204210eb242066

Change-Id: I759320c739777c15afc55428e5660bde0fb03815
2015-10-21 16:39:50 +02:00
Swann Croiset cc33df77a0 Update GSE status to Nagios
* remove useless suffix ".status"
* use Lua module msg_interpolate to get service name
* rename Puppet resource s/nagios/gse_nagios/
* add unit test

Co-Authored-By: Swann Croiset <scroiset@mirantis.com>
Co-Authored-By: Simon Pasquier <spasquier@mirantis.com>
Depends-On: Ideeaffd87a0a52375900da51129822ec65c6024c

Change-Id: Ifbb93522b341228afe6eec665030bc0c2efdbae5
2015-10-21 16:39:31 +02:00
Jenkins fbca43ad66 Merge "Add warm up period to GSE filters" 2015-10-12 16:04:16 +00:00
Simon Pasquier 3481c4305c Add warm up period to GSE filters
Otherwise the GSE filters emit UNKNOW status when Heka is started.

Change-Id: I07734b405d18c6b4c81f3dbf16b96253bac3e578
2015-10-09 16:01:07 +02:00
Swann Croiset ddc08d6d90 Fix rake tests
* replace 'pending' by 'skip' directive
* fix typo

Change-Id: I522a9caec83a7e240f56ac5fb1f3ac135848729e
2015-10-09 15:21:47 +02:00
Simon Pasquier d49b5fb1c8 Rework the GSE filters
This change modifies the implementation of the GSE filters. The main
differences are:

- level-1 dependencies define now the members of a cluster and the
  status of a cluster is defined by the highest severity among all
  members.
- level-2 dependencies are now known as 'hints', they define
  relationships between clusters (eg, Nova depends on Keystone) but
  have no influence on the status of a cluster.

Change-Id: I58bd79463de78b04b9bad92d02e3fb0da4bacdf4
2015-10-09 11:23:09 +02:00
Simon Pasquier d4985e292f Disable rpsec test instead of commenting it
Change-Id: I4e90a90f6f41fded5021e4a0986ab4b1df518938
2015-09-30 10:41:45 +02:00
Swann Croiset 02d2860b04 Deactivate one broken puppet test
With stlib <= 4.9 this test doesn't pass. Will be reactivated with the
update of stdlib > 4.9
see comment in lma_collector/manifests/hiera_data.pp

Change-Id: I2e3a8b30c61fdb34dfa9166c6f12dca6d566e1e4
2015-09-23 11:20:00 +02:00
Simon Pasquier 5c7ddad02a Add a new datasource to Hiera
This change modifies the Hiera configuration to add a datasource for
the LMA collector (located at /etc/hiera/override/lma_collector.yaml').

It also modifies the Puppet manifests to use hiera_hash() instead of
hiera() when looking up hashes: this ensures that hashes are merged with
the 'deeper-merge' strategy. Otherwise the 'lma_collector' key in
/etc/astute.yaml would be hidden.

Change-Id: Ia9fd3505aae05f63dfae99fc4bac11e831b63133
2015-09-22 13:42:11 +00:00
Simon Pasquier 1954515c10 Configure the GSE cluster filters
This change configures the 3 GSE cluster filters:

  - one filter for the service clusters (nova-api, ...) that consumes
    AFD service events.
  - one filter for the node clusters (controller, ...) that consumes
    AFD node events.
  - one filter for the meta clusters (nova, ...) that consumes events
    emitted by the 2 previous filters.

Change-Id: I25d21c4f3ad2ea57175faecdfbe4b93561f621d8
Implements: blueprint alerting-lma-collector
2015-09-17 16:27:49 +02:00
Simon Pasquier de882d154d Add tests for lma_collector::collectd resources
Change-Id: Iaf4985e99a984a5283c5d97249be3ef1c71f1096
2015-08-24 12:08:34 +02:00