diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index ea90996..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-Gemfile.lock
-.bundled_gems/
-log/
-junit/
-.vagrant/
diff --git a/Gemfile b/Gemfile
deleted file mode 100644
index 019213a..0000000
--- a/Gemfile
+++ /dev/null
@@ -1,15 +0,0 @@
-source 'https://rubygems.org'
-
-if File.exists?('/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper')
- gem_checkout_method = {:path => '/home/zuul/src/git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'}
-else
- gem_checkout_method = {:git => 'https://git.openstack.org/openstack-infra/puppet-openstack_infra_spec_helper'}
-end
-gem_checkout_method[:require] = false
-
-group :development, :test, :system_tests do
- gem 'puppet-openstack_infra_spec_helper',
- gem_checkout_method
-end
-
-# vim:ft=ruby
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index d645695..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- 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.
diff --git a/README.md b/README.md
index 617a68f..ec889a9 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,9 @@
-# OpenStack Graphite Module
+This project is no longer maintained.
-## Overview
+The contents of this repository are still available in the Git
+source code management system. To see the contents of this
+repository before it reached its end of life, please check out the
+previous commit with "git checkout HEAD^1".
-Configures Graphite.
+For any further questions, please email
+service-discuss@lists.opendev.org or join #opendev on OFTC.
diff --git a/Rakefile b/Rakefile
deleted file mode 100644
index ff1f0d7..0000000
--- a/Rakefile
+++ /dev/null
@@ -1,8 +0,0 @@
-require 'rubygems'
-require 'puppetlabs_spec_helper/rake_tasks'
-require 'puppet-lint/tasks/puppet-lint'
-PuppetLint.configuration.fail_on_warnings = true
-PuppetLint.configuration.send('disable_80chars')
-PuppetLint.configuration.send('disable_autoloader_layout')
-PuppetLint.configuration.send('disable_class_inherits_from_params_class')
-PuppetLint.configuration.send('disable_class_parameter_defaults')
diff --git a/bindep.txt b/bindep.txt
deleted file mode 100644
index 7cdd58e..0000000
--- a/bindep.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-# This is a cross-platform list tracking distribution packages needed by tests;
-# see http://docs.openstack.org/infra/bindep/ for additional information.
-
-libxml2-devel [test platform:rpm]
-libxml2-dev [test platform:dpkg]
-libxslt-devel [test platform:rpm]
-libxslt1-dev [test platform:dpkg]
-ruby-devel [test platform:rpm]
-ruby-dev [test platform:dpkg]
-zlib1g-dev [test platform:dpkg]
-zlib-devel [test platform:rpm]
diff --git a/files/carbon-cache.init b/files/carbon-cache.init
deleted file mode 100644
index 54fe98b..0000000
--- a/files/carbon-cache.init
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/bin/bash
-### BEGIN INIT INFO
-# Provides: carbon-cache
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Carbon Cache
-# Description: Carbon Cache
-### END INIT INFO
-
-CARBON_DAEMON="cache"
-NAME="carbon-${CARBON_DAEMON}"
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-INSTANCES=`grep "^\[${CARBON_DAEMON}" /etc/graphite/carbon.conf | cut -d \[ -f 2 | cut -d \] -f 1 | cut -d : -f 2`
-
-function die {
- echo $1
- exit 1
-}
-
-start(){
- for INSTANCE in ${INSTANCES}; do
- if [ "${INSTANCE}" == "${CARBON_DAEMON}" ]; then
- INSTANCE="a";
- fi;
- echo "Starting carbon-${CARBON_DAEMON}:${INSTANCE}..."
- /usr/local/bin/carbon-${CARBON_DAEMON}.py --config /etc/graphite/carbon.conf --instance=${INSTANCE} start;
-
- if [ $? -eq 0 ]; then
- echo "success"
- else
- echo "failure"
- fi;
- echo ""
- done;
-}
-
-stop(){
- for INSTANCE in ${INSTANCES}; do
- if [ "${INSTANCE}" == "${CARBON_DAEMON}" ]; then
- INSTANCE="a";
- fi;
- echo "Stopping carbon-${CARBON_DAEMON}:${INSTANCE}..."
- /usr/local/bin/carbon-${CARBON_DAEMON}.py --config /etc/graphite/carbon.conf --instance=${INSTANCE} stop
-
- if [ `sleep 3; /usr/bin/pgrep -f "carbon-${CARBON_DAEMON}.py --instance=${INSTANCE}" | /usr/bin/wc -l` -gt 0 ]; then
- echo "Carbon did not stop yet. Sleeping longer, then force killing it...";
- sleep 20;
- /usr/bin/pkill -9 -f "carbon-${CARBON_DAEMON}.py --instance=${INSTANCE}";
- fi;
-
- if [ $? -eq 0 ]; then
- echo "success"
- else
- echo "failure"
- fi;
- echo ""
- done;
-}
-
-status(){
- for INSTANCE in ${INSTANCES}; do
- if [ "${INSTANCE}" == "${CARBON_DAEMON}" ]; then
- INSTANCE="a";
- fi;
- /usr/local/bin/carbon-${CARBON_DAEMON}.py --config /etc/graphite/carbon.conf --instance=${INSTANCE} status;
- done;
-}
-
-case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status
- ;;
- restart|reload)
- stop
- start
- ;;
- *)
- echo $"Usage: $0 {start|stop|restart|status}"
- exit 1
-esac
-
diff --git a/files/graphite-init-db.py b/files/graphite-init-db.py
deleted file mode 100644
index 119572a..0000000
--- a/files/graphite-init-db.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2012 Hewlett-Packard Development Company, L.P.
-#
-# 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.
-
-import os
-# Must happen before django imports
-os.environ.setdefault("DJANGO_SETTINGS_MODULE", "graphite.settings")
-
-import sys
-import ConfigParser
-
-import django
-from django.core import management
-from django.contrib.auth import models as auth_models
-
-django.setup()
-
-config = ConfigParser.ConfigParser()
-config.read(os.path.expanduser(sys.argv[1]))
-
-USER = config.get('admin', 'user')
-EMAIL = config.get('admin', 'email')
-PASS = config.get('admin', 'password')
-
-management.call_command('syncdb', interactive=False)
-
-try:
- auth_models.User.objects.get(username=USER)
- print 'Admin user already exists.'
-except auth_models.User.DoesNotExist:
- print 'Creating admin user'
- auth_models.User.objects.create_superuser(USER, EMAIL, PASS)
diff --git a/files/statsd.default b/files/statsd.default
deleted file mode 100644
index fd509c5..0000000
--- a/files/statsd.default
+++ /dev/null
@@ -1,2 +0,0 @@
-DAEMON_ARGS="/opt/statsd/stats.js /etc/statsd/config.js"
-CHDIR="/opt/statsd"
diff --git a/files/statsd.init b/files/statsd.init
deleted file mode 100644
index 7a9dda2..0000000
--- a/files/statsd.init
+++ /dev/null
@@ -1,157 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: statsd
-# Required-Start: $network $local_fs
-# Required-Stop:
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-### END INIT INFO
-
-# Do NOT "set -e"
-
-PATH=$PATH:/usr/local/bin:/usr/bin:/bin
-NODE_BIN=$(which nodejs||which node)
-
-if [ ! -x "$NODE_BIN" ]; then
- echo "Can't find executable nodejs or node in PATH=$PATH"
- exit 1
-fi
-
-# PATH should only include /usr/* if it runs after the mountnfs.sh script
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-DESC="StatsD"
-NAME=statsd
-DAEMON=$NODE_BIN
-DAEMON_ARGS="/usr/share/statsd/stats.js /etc/statsd/localConfig.js 2>&1 >> /var/log/statsd/statsd.log "
-PIDFILE=/var/run/$NAME.pid
-SCRIPTNAME=/etc/init.d/$NAME
-CHDIR="/usr/share/statsd"
-USER=statsd
-
-# Exit if the package is not installed
-# [ -x "$DAEMON" ] || exit 0
-
-# Read configuration variable file if it is present
-[ -r /etc/default/$NAME ] && . /etc/default/$NAME
-
-# Load the VERBOSE setting and other rcS variables
-. /lib/init/vars.sh
-
-# Define LSB log_* functions.
-# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
-. /lib/lsb/init-functions
-
-#
-# Function that starts the daemon/service
-#
-do_start()
-{
- # Return
- # 0 if daemon has been started
- # 1 if daemon was already running
- # 2 if daemon could not be started
- start-stop-daemon --start --quiet -m --pidfile $PIDFILE -c $USER --startas $DAEMON --background --test > /dev/null \
- || return 1
- start-stop-daemon --start --quiet -m --pidfile $PIDFILE -c $USER --startas $DAEMON --background --chdir $CHDIR -- \
- $DAEMON_ARGS > /dev/null 2> /var/log/$NAME-stderr.log \
- || return 2
- # Add code here, if necessary, that waits for the process to be ready
- # to handle requests from services started subsequently which depend
- # on this one. As a last resort, sleep for some time.
-}
-
-#
-# Function that stops the daemon/service
-#
-do_stop()
-{
- # Return
- # 0 if daemon has been stopped
- # 1 if daemon was already stopped
- # 2 if daemon could not be stopped
- # other if a failure occurred
- start-stop-daemon --stop --quiet --retry=0/0/KILL/5 --pidfile $PIDFILE
- RETVAL="$?"
- [ "$RETVAL" = 2 ] && return 2
- # Wait for children to finish too if this is a daemon that forks
- # and if the daemon is only ever run from this initscript.
- # If the above conditions are not satisfied then add some other code
- # that waits for the process to drop all resources that could be
- # needed by services started subsequently. A last resort is to
- # sleep for some time.
- start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
- [ "$?" = 2 ] && return 2
- # Many daemons don't delete their pidfiles when they exit.
- rm -f $PIDFILE
- return "$RETVAL"
-}
-
-#
-# Function that sends a SIGHUP to the daemon/service
-#
-do_reload() {
- #
- # If the daemon can reload its configuration without
- # restarting (for example, when it is sent a SIGHUP),
- # then implement that here.
- #
- start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
- return 0
-}
-
-case "$1" in
- start)
- [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
- do_start
- case "$?" in
- 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
- esac
- ;;
- stop)
- [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
- do_stop
- case "$?" in
- 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
- 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
- esac
- ;;
- #reload|force-reload)
- #
- # If do_reload() is not implemented then leave this commented out
- # and leave 'force-reload' as an alias for 'restart'.
- #
- #log_daemon_msg "Reloading $DESC" "$NAME"
- #do_reload
- #log_end_msg $?
- #;;
- restart|force-reload)
- #
- # If the "reload" option is implemented then remove the
- # 'force-reload' alias
- #
- log_daemon_msg "Restarting $DESC" "$NAME"
- do_stop
- case "$?" in
- 0|1)
- do_start
- case "$?" in
- 0) log_end_msg 0 ;;
- 1) log_end_msg 1 ;; # Old process is still running
- *) log_end_msg 1 ;; # Failed to start
- esac
- ;;
- *)
- # Failed to stop
- log_end_msg 1
- ;;
- esac
- ;;
- *)
- #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
- echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
- exit 3
- ;;
-esac
-
-:
diff --git a/manifests/init.pp b/manifests/init.pp
deleted file mode 100644
index 71d3247..0000000
--- a/manifests/init.pp
+++ /dev/null
@@ -1,375 +0,0 @@
-# == Class: graphite
-#
-class graphite(
- $graphite_admin_email,
- $graphite_admin_password,
- $graphite_admin_user,
- $storage_schemas = [
- {
- 'name' => 'carbon',
- 'pattern' => '^carbon\.',
- 'retentions' => '60:90d',
- },
- {
- 'name' => 'stats.timers',
- 'pattern' => '^stats.timers.*',
- 'retentions' => '10s:8h,60s:7d,1h:90d,1d:1y',
- },
- {
- 'name' => 'stats',
- 'pattern' => '^stats.*',
- 'retentions' => '10s:8h,60s:7d,1h:1y,1d:5y',
- },
- {
- 'name' => 'default',
- 'pattern' => '.*',
- 'retentions' => '60:90d',
- }
- ],
- $vhost_name = $::fqdn,
- # Have statsd listen on '::' which, thanks to dual-stack,
- # gets ipv4 and ipv6 connections.
- $statsd_ipv6_listen = true,
-
- $ssl_cert_file = '',
- $ssl_chain_file = '',
- $ssl_key_file = '',
-) {
- $packages = [ 'python-django',
- 'python-django-tagging',
- 'python-cairo',
- 'nodejs',
- 'python-tz' ]
-
- include ::httpd
- include ::pip
-
- include ::httpd::mod::wsgi
-
- # The Apache mod_version module only needs to be enabled on Ubuntu 12.04
- # as it comes compiled and enabled by default on newer OS, including CentOS
- if !defined(Httpd::Mod['version']) and $::operatingsystem == 'Ubuntu' and $::operatingsystemrelease == '12.04' {
- httpd::mod { 'version': ensure => present }
- }
-
- package { $packages:
- ensure => present,
- }
-
- if $::operatingsystemrelease == '12.04' {
- # pin version because of https://github.com/graphite-project/graphite-web/issues/650
- $graphite_rev = '7f8c33da809e2938df55c1ff57ab5329d8d7b878'
- }
- else {
- $graphite_rev = '0.9.x'
- }
-
- vcsrepo { '/opt/graphite-web':
- ensure => present,
- provider => git,
- revision => $graphite_rev,
- source => 'https://github.com/graphite-project/graphite-web.git',
- }
-
- # Install data to /usr/local/share because it's example data and
- # we don't want pip to know about our real data location
- exec { 'install_graphite_web' :
- command => 'pip install --install-option="--install-scripts=/usr/local/bin" --install-option="--install-lib=/usr/local/lib/python2.7/dist-packages" --install-option="--install-data=/usr/local/share/graphite" /opt/graphite-web',
- path => '/usr/local/bin:/usr/bin:/bin',
- refreshonly => true,
- subscribe => Vcsrepo['/opt/graphite-web'],
- require => [Class['pip'],
- Exec['install_carbon'],
- File['/var/lib/graphite/storage']]
- }
-
- vcsrepo { '/opt/carbon':
- ensure => latest,
- provider => git,
- revision => '0.9.x',
- source => 'https://github.com/graphite-project/carbon.git',
- }
-
- # Install data to /usr/local/share because it's example data and
- # we don't want pip to know about our real data location
- exec { 'install_carbon' :
- command => 'pip install --install-option="--install-scripts=/usr/local/bin" --install-option="--install-lib=/usr/local/lib/python2.7/dist-packages" --install-option="--install-data=/usr/local/share/graphite" /opt/carbon',
- path => '/usr/local/bin:/usr/bin:/bin',
- refreshonly => true,
- subscribe => Vcsrepo['/opt/carbon'],
- require => [Class['pip'],
- Exec['install_whisper'],
- File['/var/lib/graphite/storage']]
- }
-
- vcsrepo { '/opt/whisper':
- ensure => latest,
- provider => git,
- revision => 'master',
- source => 'https://github.com/graphite-project/whisper.git',
- }
-
- if ! defined(Package['build-essential']) {
- package { 'build-essential':
- ensure => present,
- }
- }
-
- exec { 'install_whisper' :
- command => 'pip install /opt/whisper',
- path => '/usr/local/bin:/usr/bin:/bin/',
- refreshonly => true,
- subscribe => Vcsrepo['/opt/whisper'],
- require => [
- Class['pip'],
- Package['build-essential'],
- ],
- }
-
- user { 'statsd':
- ensure => present,
- home => '/home/statsd',
- shell => '/bin/bash',
- gid => 'statsd',
- managehome => true,
- require => Group['statsd'],
- }
-
- group { 'statsd':
- ensure => present,
- }
-
- file { '/var/lib/graphite':
- ensure => directory,
- }
-
- file { '/var/lib/graphite/webapp':
- ensure => directory,
- require => [File['/var/lib/graphite']],
- }
-
- file { '/var/lib/graphite/webapp/content':
- ensure => directory,
- source => '/opt/graphite-web/webapp/content',
- recurse => true,
- require => [File['/var/lib/graphite/webapp'],
- Vcsrepo['/opt/graphite-web']],
- }
-
- file { '/var/lib/graphite/storage':
- ensure => directory,
- owner => 'www-data',
- group => 'www-data',
- require => [Class['httpd'],
- File['/var/lib/graphite']]
- }
-
- file { '/var/lib/graphite/storage/log':
- ensure => directory,
- owner => 'www-data',
- group => 'www-data',
- require => File['/var/lib/graphite/storage'],
- }
-
- file { '/var/lib/graphite/storage/rrd':
- ensure => directory,
- owner => 'www-data',
- group => 'www-data',
- require => File['/var/lib/graphite/storage'],
- }
-
- file { '/var/lib/graphite/storage/whisper':
- ensure => directory,
- owner => 'www-data',
- group => 'www-data',
- require => File['/var/lib/graphite/storage'],
- }
-
- file { '/var/log/graphite':
- ensure => directory,
- owner => 'www-data',
- group => 'www-data',
- require => Class['httpd'],
- }
-
- file { '/var/log/graphite/carbon-cache-a':
- ensure => directory,
- owner => 'www-data',
- group => 'www-data',
- require => File['/var/log/graphite'],
- }
-
- include ::logrotate
- logrotate::file { 'graphite-carbon':
- log => '/var/log/graphite/carbon-cache-a/*.log',
- options => [
- 'compress',
- 'nocreate',
- 'missingok',
- 'rotate 7',
- 'daily',
- 'notifempty',
- 'sharedscripts',
- ],
- }
-
- file { '/etc/graphite':
- ensure => directory,
- }
-
- exec { 'graphite_sync_db':
- user => 'www-data',
- command => 'python /usr/local/bin/graphite-init-db.py /etc/graphite/admin.ini',
- cwd => '/usr/local/lib/python2.7/dist-packages/graphite',
- path => '/bin:/usr/bin',
- onlyif => 'test ! -f /var/lib/graphite/storage/graphite.db',
- require => [ Exec['install_graphite_web'],
- File['/var/lib/graphite'],
- Class['httpd'],
- File['/usr/local/lib/python2.7/dist-packages/graphite/local_settings.py'],
- File['/usr/local/bin/graphite-init-db.py'],
- File['/etc/graphite/admin.ini']],
- }
-
- if $ssl_cert_file != '' {
- $http_template = 'graphite/graphite.ssl.vhost.erb'
- } else {
- $http_template = 'graphite/graphite.vhost.erb'
- }
-
- ::httpd::vhost { $vhost_name:
- port => 80,
- priority => '50',
- docroot => '/var/lib/graphite/webapp',
- template => $http_template,
- }
-
- if !defined(Httpd::Mod['headers']) {
- ::httpd::mod { 'headers':
- ensure => present,
- }
- }
-
- vcsrepo { '/opt/statsd':
- ensure => latest,
- provider => git,
- source => 'https://github.com/etsy/statsd.git',
- }
-
- file { '/etc/statsd':
- ensure => directory,
- }
-
- file { '/etc/statsd/config.js':
- owner => 'statsd',
- group => 'statsd',
- mode => '0444',
- content => template('graphite/config.js.erb'),
- require => File['/etc/statsd'],
- }
-
- file { '/etc/graphite/carbon.conf':
- mode => '0444',
- content => template('graphite/carbon.conf.erb'),
- require => File['/etc/graphite'],
- }
-
- # later versions of django require a different wsgi loader; swap it
- # in here for > trusty
- case $::operatingsystem {
- 'Ubuntu': {
- if versioncmp($::operatingsystemrelease, '14.04') <= 0 {
- $django_wsgi_template = 'graphite.wsgi.erb'
- }
- else {
- $django_wsgi_template = 'graphite.wsgi.django17.erb'
- }
- }
- default: {
- fail('Platform not supported')
- }
- }
-
- file { '/etc/graphite/graphite.wsgi':
- mode => '0444',
- content => template("graphite/${django_wsgi_template}"),
- require => File['/etc/graphite'],
- }
-
- file { '/etc/graphite/storage-schemas.conf':
- mode => '0444',
- content => template('graphite/storage-schemas.conf.erb'),
- require => File['/etc/graphite'],
- }
-
- file { '/etc/graphite/storage-aggregation.conf':
- mode => '0444',
- content => template('graphite/storage-aggregation.conf.erb'),
- require => File['/etc/graphite'],
- }
-
- file { '/usr/local/lib/python2.7/dist-packages/graphite/local_settings.py':
- mode => '0444',
- content => template('graphite/local_settings.py.erb'),
- require => Exec['install_graphite_web'],
- }
-
- file { '/usr/local/bin/graphite-init-db.py':
- mode => '0555',
- source => 'puppet:///modules/graphite/graphite-init-db.py'
- }
-
- file { '/etc/graphite/admin.ini':
- mode => '0400',
- owner => 'www-data',
- group => 'www-data',
- content => template('graphite/admin.ini'),
- require => [ File['/etc/graphite'],
- Class['httpd']],
- }
-
- file { '/etc/init.d/carbon-cache':
- mode => '0555',
- source => 'puppet:///modules/graphite/carbon-cache.init'
- }
-
- file { '/etc/init.d/statsd':
- mode => '0555',
- source => 'puppet:///modules/graphite/statsd.init'
- }
-
- file { '/etc/default/statsd':
- mode => '0444',
- source => 'puppet:///modules/graphite/statsd.default'
- }
-
- service { 'carbon-cache':
- name => 'carbon-cache',
- enable => true,
- hasrestart => true,
- require => [File['/etc/init.d/carbon-cache'],
- File['/etc/graphite/carbon.conf'],
- Exec['install_carbon']],
- }
-
- service { 'statsd':
- name => 'statsd',
- enable => true,
- hasrestart => true,
- require => [File['/etc/init.d/statsd'],
- File['/etc/statsd/config.js'],
- Vcsrepo['/opt/statsd']],
- }
-
- # remove any stats that haven't been updated for ~9 months and
- # remove empty dirs
- cron { 'remove_old_stats':
- user => 'root',
- hour => '2',
- minute => '0',
- command => 'find /var/lib/graphite/storage/whisper -type f -mtime +270 -name \*.wsp -delete; find /var/lib/graphite/storage/whisper -depth -type d -empty -delete > /dev/null',
- environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
- }
-
-}
-
diff --git a/metadata.json b/metadata.json
deleted file mode 100644
index db41213..0000000
--- a/metadata.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "openstackinfra-graphite",
- "version": "0.0.1",
- "author": "OpenStack CI",
- "summary": "Puppet module for Graphite",
- "license": "Apache 2.0",
- "source": "https://git.openstack.org/openstack-infra/puppet-graphite.git",
- "project_page": "http://docs.openstack.org/infra/system-config/",
- "issues_url": "https://storyboard.openstack.org/#!/project/774",
- "dependencies": [
- ]
-}
diff --git a/spec/acceptance/basic_spec.rb b/spec/acceptance/basic_spec.rb
deleted file mode 100644
index 8dbd680..0000000
--- a/spec/acceptance/basic_spec.rb
+++ /dev/null
@@ -1,154 +0,0 @@
-require 'puppet-openstack_infra_spec_helper/spec_helper_acceptance'
-
-describe 'puppet-graphite module', :if => ['debian', 'ubuntu'].include?(os[:family]) do
- def pp_path
- base_path = File.dirname(__FILE__)
- File.join(base_path, 'fixtures')
- end
-
- def default_puppet_module
- module_path = File.join(pp_path, 'default.pp')
- File.read(module_path)
- end
-
- def postconditions_puppet_module
- module_path = File.join(pp_path, 'postconditions.pp')
- File.read(module_path)
- end
-
- it 'should work with no errors' do
- apply_manifest(default_puppet_module, catch_failures: true)
- end
-
- it 'should be idempotent' do
- apply_manifest(default_puppet_module, catch_changes: true)
- end
-
- it 'should enable the services' do
- apply_manifest(postconditions_puppet_module, catch_failures: true)
- end
-
- describe 'required packages' do
- required_packages = [
- package('python-django'),
- package('python-django-tagging'),
- package('python-cairo'),
- package('nodejs')
- ]
-
- required_packages.each do |package|
- describe package do
- it { should be_installed }
- end
- end
- end
-
- describe 'required files' do
- required_git_repos = [
- file('/opt/graphite-web/.git'),
- file('/opt/carbon/.git'),
- file('/opt/whisper/.git'),
- file('/opt/statsd/.git'),
- ]
- required_git_repos.each do |git_directory|
- describe git_directory do
- it { should be_directory }
- end
- end
-
- required_graphite_directories = [
- file('/var/lib/graphite/storage/log'),
- file('/var/lib/graphite/storage/rrd'),
- file('/var/lib/graphite/storage/whisper'),
- file('/var/log/graphite'),
- file('/var/log/graphite/carbon-cache-a'),
- ]
- required_graphite_directories.each do |graphite_directory|
- describe graphite_directory do
- it { should be_directory }
- it { should be_owned_by 'www-data' }
- it { should be_grouped_into 'www-data' }
- end
- end
-
- describe file('/etc/logrotate.d/graphite-carbon') do
- its(:content) { should include '/var/log/graphite/carbon-cache-a/*.log' }
- end
-
- describe file('/etc/statsd/config.js') do
- it { should be_file }
- it { should be_owned_by 'statsd' }
- it { should be_grouped_into 'statsd' }
- its(:content) { should include 'graphitePort: 2003' }
- its(:content) { should include "address: '::'" }
-
- end
-
- describe file('/etc/graphite/carbon.conf') do
- it { should be_file }
- its(:content) { should include 'USER = www-data' }
- end
-
- describe file('/etc/graphite/graphite.wsgi') do
- it { should be_file }
- its(:content) { should include "sys.path.append('/var/lib/graphite/webapp')" }
- end
-
- describe file('/etc/graphite/storage-schemas.conf') do
- it { should be_file }
- its(:content) { should include '["carbon"]' }
- end
-
- describe file('/etc/graphite/storage-aggregation.conf') do
- it { should be_file }
- its(:content) { should include '[stats_counts]' }
- end
-
- describe file('/usr/local/lib/python2.7/dist-packages/graphite/local_settings.py') do
- it { should be_file }
- its(:content) { should include "CONF_DIR = '/etc/graphite/'" }
- end
-
- describe file('/usr/local/bin/graphite-init-db.py') do
- it { should be_file }
- its(:content) { should include "management.call_command('syncdb', interactive=False)" }
- end
-
- describe file('/etc/graphite/admin.ini') do
- it { should be_file }
- it { should be_owned_by 'www-data' }
- it { should be_grouped_into 'www-data' }
- its(:content) { should include 'email=graphite@localhost' }
- end
-
- describe file('/etc/init.d/carbon-cache') do
- it { should be_file }
- its(:content) { should include '# Short-Description: Carbon Cache' }
- end
-
- describe file('/etc/init.d/statsd') do
- it { should be_file }
- its(:content) { should include '# Provides: statsd' }
- end
-
- describe file('/etc/default/statsd') do
- it { should be_file }
- its(:content) { should include 'DAEMON_ARGS="/opt/statsd/stats.js /etc/statsd/config.js"' }
- its(:content) { should include 'CHDIR="/opt/statsd"' }
- end
- end
-
- describe 'required services' do
- describe service('carbon-cache') do
- it { should be_enabled }
- end
-
- describe service('statsd') do
- it { should be_enabled }
- end
- end
-
- describe cron do
- it { should have_entry('0 2 * * * find /var/lib/graphite/storage/whisper -type f -mtime +270 -name \*.wsp -delete; find /var/lib/graphite/storage/whisper -depth -type d -empty -delete > /dev/null').with_user('root') }
- end
-end
diff --git a/spec/acceptance/fixtures/default.pp b/spec/acceptance/fixtures/default.pp
deleted file mode 100644
index ce185ec..0000000
--- a/spec/acceptance/fixtures/default.pp
+++ /dev/null
@@ -1,6 +0,0 @@
-class { '::graphite':
- graphite_admin_user => 'graphite',
- graphite_admin_email => 'graphite@localhost',
- graphite_admin_password => '12345',
- vhost_name => '*',
-}
diff --git a/spec/acceptance/fixtures/postconditions.pp b/spec/acceptance/fixtures/postconditions.pp
deleted file mode 100644
index c73919e..0000000
--- a/spec/acceptance/fixtures/postconditions.pp
+++ /dev/null
@@ -1,7 +0,0 @@
-exec { 'starting carbon-cache service':
- command => '/etc/init.d/carbon-cache start',
-}
-
-exec { 'starting statsd service':
- command => '/etc/init.d/statsd start',
-}
diff --git a/spec/acceptance/nodesets/default.yml b/spec/acceptance/nodesets/default.yml
deleted file mode 100644
index 3bb3e62..0000000
--- a/spec/acceptance/nodesets/default.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-HOSTS:
- ubuntu-server-1404-x64:
- roles:
- - master
- platform: ubuntu-14.04-amd64
- box: puppetlabs/ubuntu-14.04-64-nocm
- box_url: https://vagrantcloud.com/puppetlabs/ubuntu-14.04-64-nocm
- hypervisor: vagrant
-CONFIG:
- log_level: debug
- type: git
diff --git a/spec/acceptance/nodesets/nodepool-centos7.yml b/spec/acceptance/nodesets/nodepool-centos7.yml
deleted file mode 100644
index c552874..0000000
--- a/spec/acceptance/nodesets/nodepool-centos7.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-HOSTS:
- centos-70-x64:
- roles:
- - master
- platform: el-7-x86_64
- hypervisor: none
- ip: 127.0.0.1
-CONFIG:
- type: foss
- set_env: false
diff --git a/spec/acceptance/nodesets/nodepool-trusty.yml b/spec/acceptance/nodesets/nodepool-trusty.yml
deleted file mode 100644
index 9fc624e..0000000
--- a/spec/acceptance/nodesets/nodepool-trusty.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-HOSTS:
- ubuntu-14.04-amd64:
- roles:
- - master
- platform: ubuntu-14.04-amd64
- hypervisor: none
- ip: 127.0.0.1
-CONFIG:
- type: foss
- set_env: false
diff --git a/spec/acceptance/nodesets/nodepool-xenial.yml b/spec/acceptance/nodesets/nodepool-xenial.yml
deleted file mode 100644
index 99dd318..0000000
--- a/spec/acceptance/nodesets/nodepool-xenial.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-HOSTS:
- ubuntu-16.04-amd64:
- roles:
- - master
- platform: ubuntu-16.04-amd64
- hypervisor: none
- ip: 127.0.0.1
-CONFIG:
- type: foss
- set_env: false
diff --git a/templates/admin.ini b/templates/admin.ini
deleted file mode 100644
index 4f9d2ab..0000000
--- a/templates/admin.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[admin]
-user=<%= @graphite_admin_user %>
-email=<%= @graphite_admin_email %>
-password=<%= @graphite_admin_password %>
diff --git a/templates/carbon.conf.erb b/templates/carbon.conf.erb
deleted file mode 100644
index 8d5a9a3..0000000
--- a/templates/carbon.conf.erb
+++ /dev/null
@@ -1,285 +0,0 @@
-[cache]
-# Configure carbon directories.
-#
-# OS environment variables can be used to tell carbon where graphite is
-# installed, where to read configuration from and where to write data.
-#
-# GRAPHITE_ROOT - Root directory of the graphite installation.
-# Defaults to ../
-# GRAPHITE_CONF_DIR - Configuration directory (where this file lives).
-# Defaults to $GRAPHITE_ROOT/conf/
-# GRAPHITE_STORAGE_DIR - Storage directory for whipser/rrd/log/pid files.
-# Defaults to $GRAPHITE_ROOT/storage/
-#
-# To change other directory paths, add settings to this file. The following
-# configuration variables are available with these default values:
-#
-# STORAGE_DIR = $GRAPHITE_STORAGE_DIR
-# LOCAL_DATA_DIR = STORAGE_DIR/whisper/
-# WHITELISTS_DIR = STORAGE_DIR/lists/
-# CONF_DIR = STORAGE_DIR/conf/
-# LOG_DIR = STORAGE_DIR/log/
-# PID_DIR = STORAGE_DIR/
-#
-# For FHS style directory structures, use:
-#
-STORAGE_DIR = /var/lib/graphite/storage/
-CONF_DIR = /etc/graphite/
-LOG_DIR = /var/log/graphite/
-PID_DIR = /var/run/
-LOCAL_DATA_DIR = /var/lib/graphite/storage/whisper/
-#
-#LOCAL_DATA_DIR = /opt/graphite/storage/whisper/
-
-# Enable daily log rotation. If disabled, a new file will be opened whenever the log file path no
-# longer exists (i.e. it is removed or renamed)
-ENABLE_LOGROTATION = False
-
-# Specify the user to drop privileges to
-# If this is blank carbon runs as the user that invokes it
-# This user must have write access to the local data directory
-USER = www-data
-
-# Limit the size of the cache to avoid swapping or becoming CPU bound.
-# Sorts and serving cache queries gets more expensive as the cache grows.
-# Use the value "inf" (infinity) for an unlimited cache size.
-MAX_CACHE_SIZE = inf
-
-# Limits the number of whisper update_many() calls per second, which effectively
-# means the number of write requests sent to the disk. This is intended to
-# prevent over-utilizing the disk and thus starving the rest of the system.
-# When the rate of required updates exceeds this, then carbon's caching will
-# take effect and increase the overall throughput accordingly.
-MAX_UPDATES_PER_SECOND = 500
-
-# Softly limits the number of whisper files that get created each minute.
-# Setting this value low (like at 50) is a good way to ensure your graphite
-# system will not be adversely impacted when a bunch of new metrics are
-# sent to it. The trade off is that it will take much longer for those metrics'
-# database files to all get created and thus longer until the data becomes usable.
-# Setting this value high (like "inf" for infinity) will cause graphite to create
-# the files quickly but at the risk of slowing I/O down considerably for a while.
-MAX_CREATES_PER_MINUTE = 60
-
-LINE_RECEIVER_INTERFACE = 0.0.0.0
-LINE_RECEIVER_PORT = 2003
-
-# Set this to True to enable the UDP listener. By default this is off
-# because it is very common to run multiple carbon daemons and managing
-# another (rarely used) port for every carbon instance is not fun.
-ENABLE_UDP_LISTENER = False
-UDP_RECEIVER_INTERFACE = 0.0.0.0
-UDP_RECEIVER_PORT = 2003
-
-PICKLE_RECEIVER_INTERFACE = 0.0.0.0
-PICKLE_RECEIVER_PORT = 2004
-
-# Per security concerns outlined in Bug #817247 the pickle receiver
-# will use a more secure and slightly less efficient unpickler.
-# Set this to True to revert to the old-fashioned insecure unpickler.
-USE_INSECURE_UNPICKLER = False
-
-CACHE_QUERY_INTERFACE = 0.0.0.0
-CACHE_QUERY_PORT = 7002
-
-# Set this to False to drop datapoints received after the cache
-# reaches MAX_CACHE_SIZE. If this is True (the default) then sockets
-# over which metrics are received will temporarily stop accepting
-# data until the cache size falls below 95% MAX_CACHE_SIZE.
-USE_FLOW_CONTROL = True
-
-# By default, carbon-cache will log every whisper update. This can be excessive and
-# degrade performance if logging on the same volume as the whisper data is stored.
-LOG_UPDATES = False
-
-# On some systems it is desirable for whisper to write synchronously.
-# Set this option to True if you'd like to try this. Basically it will
-# shift the onus of buffering writes from the kernel into carbon's cache.
-WHISPER_AUTOFLUSH = False
-
-# By default new Whisper files are created pre-allocated with the data region
-# filled with zeros to prevent fragmentation and speed up contiguous reads and
-# writes (which are common). Enabling this option will cause Whisper to create
-# the file sparsely instead. Enabling this option may allow a large increase of
-# MAX_CREATES_PER_MINUTE but may have longer term performance implications
-# depending on the underlying storage configuration.
-# WHISPER_SPARSE_CREATE = False
-
-# Enabling this option will cause Whisper to lock each Whisper file it writes
-# to with an exclusive lock (LOCK_EX, see: man 2 flock). This is useful when
-# multiple carbon-cache daemons are writing to the same files
-# WHISPER_LOCK_WRITES = False
-
-# Set this to True to enable whitelisting and blacklisting of metrics in
-# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
-# empty, all metrics will pass through
-# USE_WHITELIST = False
-
-# By default, carbon itself will log statistics (such as a count,
-# metricsReceived) with the top level prefix of 'carbon' at an interval of 60
-# seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
-# CARBON_METRIC_PREFIX = carbon
-# CARBON_METRIC_INTERVAL = 60
-
-# Enable AMQP if you want to receve metrics using an amqp broker
-# ENABLE_AMQP = False
-
-# Verbose means a line will be logged for every metric received
-# useful for testing
-# AMQP_VERBOSE = False
-
-# AMQP_HOST = localhost
-# AMQP_PORT = 5672
-# AMQP_VHOST = /
-# AMQP_USER = guest
-# AMQP_PASSWORD = guest
-# AMQP_EXCHANGE = graphite
-# AMQP_METRIC_NAME_IN_BODY = False
-
-# The manhole interface allows you to SSH into the carbon daemon
-# and get a python interpreter. BE CAREFUL WITH THIS! If you do
-# something like time.sleep() in the interpreter, the whole process
-# will sleep! This is *extremely* helpful in debugging, assuming
-# you are familiar with the code. If you are not, please don't
-# mess with this, you are asking for trouble :)
-#
-# ENABLE_MANHOLE = False
-# MANHOLE_INTERFACE = 127.0.0.1
-# MANHOLE_PORT = 7222
-# MANHOLE_USER = admin
-# MANHOLE_PUBLIC_KEY = ssh-rsa AAAAB3NzaC1yc2EAAAABiwAaAIEAoxN0sv/e4eZCPpi3N3KYvyzRaBaMeS2RsOQ/cDuKv11dlNzVeiyc3RFmCv5Rjwn/lQ79y0zyHxw67qLyhQ/kDzINc4cY41ivuQXm2tPmgvexdrBv5nsfEpjs3gLZfJnyvlcVyWK/lId8WUvEWSWHTzsbtmXAF2raJMdgLTbQ8wE=
-
-# Patterns for all of the metrics this machine will store. Read more at
-# http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol#Bindings
-#
-# Example: store all sales, linux servers, and utilization metrics
-# BIND_PATTERNS = sales.#, servers.linux.#, #.utilization
-#
-# Example: store everything
-# BIND_PATTERNS = #
-
-# To configure special settings for the carbon-cache instance 'b', uncomment this:
-#[cache:b]
-#LINE_RECEIVER_PORT = 2103
-#PICKLE_RECEIVER_PORT = 2104
-#CACHE_QUERY_PORT = 7102
-# and any other settings you want to customize, defaults are inherited
-# from [carbon] section.
-# You can then specify the --instance=b option to manage this instance
-
-
-
-[relay]
-LINE_RECEIVER_INTERFACE = 0.0.0.0
-LINE_RECEIVER_PORT = 2013
-PICKLE_RECEIVER_INTERFACE = 0.0.0.0
-PICKLE_RECEIVER_PORT = 2014
-
-# To use consistent hashing instead of the user defined relay-rules.conf,
-# change this to:
-# RELAY_METHOD = consistent-hashing
-RELAY_METHOD = rules
-
-# If you use consistent-hashing you may want to add redundancy
-# of your data by replicating every datapoint to more than
-# one machine.
-REPLICATION_FACTOR = 1
-
-# This is a list of carbon daemons we will send any relayed or
-# generated metrics to. The default provided would send to a single
-# carbon-cache instance on the default port. However if you
-# use multiple carbon-cache instances then it would look like this:
-#
-# DESTINATIONS = 127.0.0.1:2004:a, 127.0.0.1:2104:b
-#
-# The general form is IP:PORT:INSTANCE where the :INSTANCE part is
-# optional and refers to the "None" instance if omitted.
-#
-# Note that if the destinations are all carbon-caches then this should
-# exactly match the webapp's CARBONLINK_HOSTS setting in terms of
-# instances listed (order matters!).
-#
-# If using RELAY_METHOD = rules, all destinations used in relay-rules.conf
-# must be defined in this list
-DESTINATIONS = 127.0.0.1:2004
-
-# This defines the maximum "message size" between carbon daemons.
-# You shouldn't need to tune this unless you really know what you're doing.
-MAX_DATAPOINTS_PER_MESSAGE = 500
-MAX_QUEUE_SIZE = 10000
-
-# Set this to False to drop datapoints when any send queue (sending datapoints
-# to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
-# default) then sockets over which metrics are received will temporarily stop accepting
-# data until the send queues fall below 80% MAX_QUEUE_SIZE.
-USE_FLOW_CONTROL = True
-
-# Set this to True to enable whitelisting and blacklisting of metrics in
-# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
-# empty, all metrics will pass through
-# USE_WHITELIST = False
-
-# By default, carbon itself will log statistics (such as a count,
-# metricsReceived) with the top level prefix of 'carbon' at an interval of 60
-# seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
-# CARBON_METRIC_PREFIX = carbon
-# CARBON_METRIC_INTERVAL = 60
-
-
-[aggregator]
-LINE_RECEIVER_INTERFACE = 0.0.0.0
-LINE_RECEIVER_PORT = 2023
-
-PICKLE_RECEIVER_INTERFACE = 0.0.0.0
-PICKLE_RECEIVER_PORT = 2024
-
-# This is a list of carbon daemons we will send any relayed or
-# generated metrics to. The default provided would send to a single
-# carbon-cache instance on the default port. However if you
-# use multiple carbon-cache instances then it would look like this:
-#
-# DESTINATIONS = 127.0.0.1:2004:a, 127.0.0.1:2104:b
-#
-# The format is comma-delimited IP:PORT:INSTANCE where the :INSTANCE part is
-# optional and refers to the "None" instance if omitted.
-#
-# Note that if the destinations are all carbon-caches then this should
-# exactly match the webapp's CARBONLINK_HOSTS setting in terms of
-# instances listed (order matters!).
-DESTINATIONS = 127.0.0.1:2004
-
-# If you want to add redundancy to your data by replicating every
-# datapoint to more than one machine, increase this.
-REPLICATION_FACTOR = 1
-
-# This is the maximum number of datapoints that can be queued up
-# for a single destination. Once this limit is hit, we will
-# stop accepting new data if USE_FLOW_CONTROL is True, otherwise
-# we will drop any subsequently received datapoints.
-MAX_QUEUE_SIZE = 10000
-
-# Set this to False to drop datapoints when any send queue (sending datapoints
-# to a downstream carbon daemon) hits MAX_QUEUE_SIZE. If this is True (the
-# default) then sockets over which metrics are received will temporarily stop accepting
-# data until the send queues fall below 80% MAX_QUEUE_SIZE.
-USE_FLOW_CONTROL = True
-
-# This defines the maximum "message size" between carbon daemons.
-# You shouldn't need to tune this unless you really know what you're doing.
-MAX_DATAPOINTS_PER_MESSAGE = 500
-
-# This defines how many datapoints the aggregator remembers for
-# each metric. Aggregation only happens for datapoints that fall in
-# the past MAX_AGGREGATION_INTERVALS * intervalSize seconds.
-MAX_AGGREGATION_INTERVALS = 5
-
-# Set this to True to enable whitelisting and blacklisting of metrics in
-# CONF_DIR/whitelist and CONF_DIR/blacklist. If the whitelist is missing or
-# empty, all metrics will pass through
-# USE_WHITELIST = False
-
-# By default, carbon itself will log statistics (such as a count,
-# metricsReceived) with the top level prefix of 'carbon' at an interval of 60
-# seconds. Set CARBON_METRIC_INTERVAL to 0 to disable instrumentation
-# CARBON_METRIC_PREFIX = carbon
-# CARBON_METRIC_INTERVAL = 60
diff --git a/templates/config.js.erb b/templates/config.js.erb
deleted file mode 100644
index d0f2175..0000000
--- a/templates/config.js.erb
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-
-Required Variables:
-
- port: StatsD listening port [default: 8125]
-
-Graphite Required Variables:
-
-(Leave these unset to avoid sending stats to Graphite.
- Set debug flag and leave these unset to run in 'dry' debug mode -
- useful for testing statsd clients without a Graphite server.)
-
- graphiteHost: hostname or IP of Graphite server
- graphitePort: port of Graphite server
-
-Optional Variables:
-
- backends: an array of backends to load. Each backend must exist
- by name in the directory backends/. If not specified,
- the default graphite backend will be loaded.
- debug: debug flag [default: false]
- address: address to listen on over UDP [default: 0.0.0.0]
- port: port to listen for messages on over UDP [default: 8125]
- mgmt_address: address to run the management TCP interface on
- [default: 0.0.0.0]
- mgmt_port: port to run the management TCP interface on [default: 8126]
- debugInterval: interval to print debug information [ms, default: 10000]
- dumpMessages: log all incoming messages
- flushInterval: interval (in ms) to flush to Graphite
- percentThreshold: for time information, calculate the Nth percentile(s)
- (can be a single value or list of floating-point values)
- [%, default: 90]
- keyFlush: log the most frequently sent keys [object, default: undefined]
- interval: how often to log frequent keys [ms, default: 0]
- percent: percentage of frequent keys to log [%, default: 100]
- log: location of log file for frequent keys [default: STDOUT]
-
- console:
- prettyprint: whether to prettyprint the console backend
- output [true or false, default: true]
-
- log: log settings [object, default: undefined]
- backend: where to log: stdout or syslog [string, default: stdout]
- application: name of the application for syslog [string, default: statsd]
- level: log level for [node-]syslog [string, default: LOG_INFO]
-
- repeater: an array of hashes of the for host: and port:
- that details other statsd servers to which the received
- packets should be "repeated" (duplicated to).
- e.g. [ { host: '10.10.10.10', port: 8125 },
- { host: 'observer', port: 88125 } ]
-*/
-{
- graphitePort: 2003
-, graphiteHost: "127.0.0.1"
-, port: 8125
-, deleteTimers: true
-, deleteCounters: true
-<% if @statsd_ipv6_listen -%>
-, address: '::'
-, address_ipv6: true
-<% end -%>
-}
diff --git a/templates/graphite.ssl.vhost.erb b/templates/graphite.ssl.vhost.erb
deleted file mode 100644
index d2b6bba..0000000
--- a/templates/graphite.ssl.vhost.erb
+++ /dev/null
@@ -1,73 +0,0 @@
-
- ErrorLog /var/log/apache2/graphite-error.log
- CustomLog /var/log/apache2/graphite-access.log common
- LogLevel warn
- ServerSignature Off
-
- Redirect / https://<%= scope.lookupvar("graphite::vhost_name") %>/
-
-
-
- Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
- SSLEngine on
- SSLCertificateFile <%= scope.lookupvar("graphite::ssl_cert_file") %>
- SSLCertificateKeyFile <%= scope.lookupvar("graphite::ssl_key_file") %>
- <% if scope.lookupvar("graphite::ssl_chain_file") != "" %>
- SSLCertificateChainFile <%= scope.lookupvar("graphite::ssl_chain_file") %>
- <% end %>
- SSLProtocol All -SSLv2 -SSLv3
- # Note: this list should ensure ciphers that provide forward secrecy
- SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:!AES256:!aNULL:!eNULL:!MD5:!DSS:!PSK:!SRP
- SSLHonorCipherOrder on
-
- DocumentRoot "/var/lib/graphite/webapp"
- ErrorLog /var/log/apache2/graphite-error.log
- CustomLog /var/log/apache2/graphite-access.log common
-
- # Add CORS authorization to the header so third-party services can pull
- # metrics data via API calls for things like vizualiation dashboards.
- Header set Access-Control-Allow-Origin "*"
-
- # I've found that an equal number of processes & threads tends
- # to show the best performance for Graphite (ymmv).
- WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
- WSGIProcessGroup graphite
- WSGIApplicationGroup %{GLOBAL}
- SetEnv GRAPHITE_STORAGE_DIR /var/lib/graphite/storage
- WSGIImportScript /etc/graphite/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
-
- # XXX You will need to create this file! There is a graphite.wsgi.example
- # file in this directory that you can safely use, just copy it to graphite.wgsi
- WSGIScriptAlias / /etc/graphite/graphite.wsgi
-
- Alias /content/ /var/lib/graphite/webapp/content/
-
- SetHandler None
-
-
- # XXX In order for the django admin site media to work you
- # must change @DJANGO_ROOT@ to be the path to your django
- # installation, which is probably something like:
- # /usr/lib/python2.6/site-packages/django
- Alias /media/ "/usr/lib/python2.7/dist-packages/django/contrib/admin/media/"
-
- SetHandler None
-
-
- # The graphite.wsgi file has to be accessible by apache. It won't
- # be visible to clients because of the DocumentRoot though.
-
- = 2.4>
- Require all granted
-
-
- Order deny,allow
- Allow from all
-
-
- = 2.4>
-
- Require all granted
-
-
-
diff --git a/templates/graphite.vhost.erb b/templates/graphite.vhost.erb
deleted file mode 100644
index dd87b7e..0000000
--- a/templates/graphite.vhost.erb
+++ /dev/null
@@ -1,69 +0,0 @@
-# This needs to be in your server's config somewhere, probably
-# the main httpd.conf
-# NameVirtualHost *:80
-
-# This line also needs to be in your server's config.
-# LoadModule wsgi_module modules/mod_wsgi.so
-
-# You need to manually edit this file to fit your needs.
-# This configuration assumes the default installation prefix
-# of /opt/graphite/, if you installed graphite somewhere else
-# you will need to change all the occurances of /opt/graphite/
-# in this file to your chosen install location.
-
-# XXX You need to set this up!
-# Read http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGISocketPrefix
-#WSGISocketPrefix /var/run/apache2/wsgi
-
-
- DocumentRoot "/var/lib/graphite/webapp"
- ErrorLog /var/log/apache2/graphite-error.log
- CustomLog /var/log/apache2/graphite-access.log common
-
- # Add CORS authorization to the header so third-party services can pull
- # metrics data via API calls for things like vizualiation dashboards.
- Header set Access-Control-Allow-Origin "*"
-
- # I've found that an equal number of processes & threads tends
- # to show the best performance for Graphite (ymmv).
- WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
- WSGIProcessGroup graphite
- WSGIApplicationGroup %{GLOBAL}
- SetEnv GRAPHITE_STORAGE_DIR /var/lib/graphite/storage
- WSGIImportScript /etc/graphite/graphite.wsgi process-group=graphite application-group=%{GLOBAL}
-
- # XXX You will need to create this file! There is a graphite.wsgi.example
- # file in this directory that you can safely use, just copy it to graphite.wgsi
- WSGIScriptAlias / /etc/graphite/graphite.wsgi
-
- Alias /content/ /var/lib/graphite/webapp/content/
-
- SetHandler None
-
-
- # XXX In order for the django admin site media to work you
- # must change @DJANGO_ROOT@ to be the path to your django
- # installation, which is probably something like:
- # /usr/lib/python2.6/site-packages/django
- Alias /media/ "/usr/lib/python2.7/dist-packages/django/contrib/admin/media/"
-
- SetHandler None
-
-
- # The graphite.wsgi file has to be accessible by apache. It won't
- # be visible to clients because of the DocumentRoot though.
-
- = 2.4>
- Require all granted
-
-
- Order deny,allow
- Allow from all
-
-
- = 2.4>
-
- Require all granted
-
-
-
diff --git a/templates/graphite.wsgi.django17.erb b/templates/graphite.wsgi.django17.erb
deleted file mode 100644
index deb24e2..0000000
--- a/templates/graphite.wsgi.django17.erb
+++ /dev/null
@@ -1,15 +0,0 @@
-import os, sys
-sys.path.append('/var/lib/graphite/webapp')
-os.environ['DJANGO_SETTINGS_MODULE'] = 'graphite.settings'
-
-from django.core.wsgi import get_wsgi_application
-application = get_wsgi_application()
-
-# READ THIS
-# Initializing the search index can be very expensive, please include
-# the WSGIScriptImport directive pointing to this script in your vhost
-# config to ensure the index is preloaded before any requests are handed
-# to the process.
-from graphite.logger import log
-log.info("graphite.wsgi - pid %d - reloading search index" % os.getpid())
-import graphite.metrics.search
diff --git a/templates/graphite.wsgi.erb b/templates/graphite.wsgi.erb
deleted file mode 100644
index 901de68..0000000
--- a/templates/graphite.wsgi.erb
+++ /dev/null
@@ -1,16 +0,0 @@
-import os, sys
-sys.path.append('/var/lib/graphite/webapp')
-os.environ['DJANGO_SETTINGS_MODULE'] = 'graphite.settings'
-
-import django.core.handlers.wsgi
-
-application = django.core.handlers.wsgi.WSGIHandler()
-
-# READ THIS
-# Initializing the search index can be very expensive, please include
-# the WSGIScriptImport directive pointing to this script in your vhost
-# config to ensure the index is preloaded before any requests are handed
-# to the process.
-from graphite.logger import log
-log.info("graphite.wsgi - pid %d - reloading search index" % os.getpid())
-import graphite.metrics.search
diff --git a/templates/local_settings.py.erb b/templates/local_settings.py.erb
deleted file mode 100644
index 7b1a757..0000000
--- a/templates/local_settings.py.erb
+++ /dev/null
@@ -1,4 +0,0 @@
-STORAGE_DIR = '/var/lib/graphite/storage/'
-CONF_DIR = '/etc/graphite/'
-LOG_DIR = '/var/log/graphite/'
-TIME_ZONE = 'Etc/UTC'
diff --git a/templates/storage-aggregation.conf.erb b/templates/storage-aggregation.conf.erb
deleted file mode 100644
index 52969d4..0000000
--- a/templates/storage-aggregation.conf.erb
+++ /dev/null
@@ -1,24 +0,0 @@
-[min]
-pattern = \.min$
-xFilesFactor = 0
-aggregationMethod = min
-
-[max]
-pattern = \.max$
-xFilesFactor = 0
-aggregationMethod = max
-
-[sum]
-pattern = \.count$
-xFilesFactor = 0
-aggregationMethod = sum
-
-[stats_counts]
-pattern = ^stats_counts\..*
-xFilesFactor = 0
-aggregationMethod = sum
-
-[default_average]
-pattern = .*
-xFilesFactor = 0
-aggregationMethod = average
diff --git a/templates/storage-schemas.conf.erb b/templates/storage-schemas.conf.erb
deleted file mode 100644
index 68108ae..0000000
--- a/templates/storage-schemas.conf.erb
+++ /dev/null
@@ -1,15 +0,0 @@
-# Schema definitions for Whisper files. Entries are scanned in order,
-# and first match wins. This file is scanned for changes every 60 seconds.
-#
-# [name]
-# pattern = regex
-# retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ...
-
-# Carbon's internal metrics. This entry should match what is specified in
-# CARBON_METRIC_PREFIX and CARBON_METRIC_INTERVAL settings
-<% @storage_schemas.each do |schema| -%>
-["<%= schema['name'] %>"]
-pattern = <%= schema['pattern'] %>
-retentions = <%= schema['retentions'] %>
-
-<% end -%>