fuel-plugin-lma-collector/deployment_scripts/puppet/modules/lma_collector/manifests/logs/keystone_wsgi.pp
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

47 lines
1.8 KiB
Puppet

# Copyright 2015 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
#
# == Class lma_collector::logs::keystone_wsgi
#
class lma_collector::logs::keystone_wsgi (
$log_directory = $lma_collector::params::apache_log_directory,
) inherits lma_collector::params {
include lma_collector::service::log
$lua_modules_dir = $lma_collector::params::lua_modules_dir
heka::decoder::sandbox { 'keystone_wsgi':
config_dir => $lma_collector::params::log_config_dir,
filename => "${lma_collector::params::plugins_dir}/decoders/keystone_wsgi_log.lua",
config => {
apache_log_pattern => $lma_collector::params::apache_log_pattern,
},
module_directory => $lua_modules_dir,
notify => Class['lma_collector::service::log'],
}
heka::input::logstreamer { 'keystone_wsgi':
config_dir => $lma_collector::params::log_config_dir,
decoder => 'keystone_wsgi',
log_directory => $log_directory,
file_match => 'keystone_wsgi_(?P<Service>.+)_access\.log\.?(?P<Seq>\d*)$',
differentiator => "['keystone-wsgi-', 'Service']",
priority => '["^Seq"]',
require => Heka::Decoder::Sandbox['keystone_wsgi'],
notify => Class['lma_collector::service::log'],
}
}