diff options
author | Mateusz Korniak | 2015-12-03 16:14:09 (GMT) |
---|---|---|
committer | Mateusz Korniak | 2015-12-03 16:14:09 (GMT) |
commit | 4fcc850f586be7b6bd30262d30c7b7b5ca418b42 (patch) | |
tree | d4ec1e56ac0ee650fa6e8d403b0c97b3f6e81a97 | |
parent | 79a1c7e5af94c4982e90481f73f93cd8ffe74e56 (diff) | |
download | graphite-web-4fcc850f586be7b6bd30262d30c7b7b5ca418b42.zip graphite-web-4fcc850f586be7b6bd30262d30c7b7b5ca418b42.tar.gz |
Added apache deps, PLD adjusted django config.
-rw-r--r-- | graphite-web.spec | 14 | ||||
-rw-r--r-- | local_settings.py | 232 |
2 files changed, 245 insertions, 1 deletions
diff --git a/graphite-web.spec b/graphite-web.spec index 4d606e0..93a68d6 100644 --- a/graphite-web.spec +++ b/graphite-web.spec @@ -1,3 +1,6 @@ +# NOTE: +# - consider split sqlite and apache to separate packages? Or only suggest them? + Summary: A Django webapp for enterprise scalable realtime graphing Name: graphite-web Version: 0.9.14 @@ -7,6 +10,7 @@ Group: Applications/WWW Source0: https://codeload.github.com/graphite-project/%{name}/tar.gz/%{version} Source1: apache.conf Source2: %{name}.logrotate +Source3: local_settings.py Patch0: %{name}-kill-thirdparty-modules.patch URL: https://launchpad.net/graphite/ @@ -15,6 +19,10 @@ BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.710 BuildRequires: python-devel Requires: apache-mod_wsgi +Requires: apache-mod_log_config +Requires: apache-mod_alias +Requires: apache-mod_authz_host + Requires: fonts-TTF-DejaVu Requires: python-django Requires: python-django_tagging >= 0.3 @@ -23,6 +31,8 @@ Requires: python-pyparsing Requires: python-pytz Requires: python-simplejson Requires: python-whisper >= %{version} +Requires: python-modules-sqlite + Requires: webapps Conflicts: logrotate < 3.8.0 BuildArch: noarch @@ -71,7 +81,9 @@ install -d $RPM_BUILD_ROOT%{_sysconfdir} # Install some default configurations and wsgi install -Dp conf/dashboard.conf.example $RPM_BUILD_ROOT%{_sysconfdir}/dashboard.conf -mv $RPM_BUILD_ROOT{%{py_sitescriptdir}/graphite/local_settings.py.example,%{_sysconfdir}/local_settings.py} +# mv $RPM_BUILD_ROOT{%{py_sitescriptdir}/graphite/local_settings.py.example,%{_sysconfdir}/local_settings.py} +install -Dp %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/local_settings.py + touch $RPM_BUILD_ROOT%{py_sitescriptdir}/graphite/local_settings.py{c,o} install -Dp conf/graphite.wsgi.example $RPM_BUILD_ROOT%{_datadir}/graphite/%{name}.wsgi install -Dp %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf diff --git a/local_settings.py b/local_settings.py new file mode 100644 index 0000000..39baebe --- /dev/null +++ b/local_settings.py @@ -0,0 +1,232 @@ +## Graphite local_settings.py +# It's based on 0.9.14 local_settings.py.example modified for PLD conventions +# +# Edit this file to customize the default Graphite webapp settings +# +# Additional customizations to Django settings can be added to this file as well + +##################################### +# General Configuration # +##################################### +# Set this to a long, random unique string to use as a secret key for this +# install. This key is used for salting of hashes used in auth tokens, +# CRSF middleware, cookie storage, etc. This should be set identically among +# instances if used behind a load balancer. +SECRET_KEY = 'asgjakslgja;gas;djga;skdlgjasd' + +# In Django 1.5+ set this to the list of hosts your graphite instances is +# accessible as. See: +# https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-ALLOWED_HOSTS +#ALLOWED_HOSTS = [ '*' ] + +# Set your local timezone (Django's default is America/Chicago) +# If your graphs appear to be offset by a couple hours then this probably +# needs to be explicitly set to your local timezone. +#TIME_ZONE = 'America/Los_Angeles' + +# Override this to provide documentation specific to your Graphite deployment +#DOCUMENTATION_URL = "http://graphite.readthedocs.org/" + +# Logging +#LOG_RENDERING_PERFORMANCE = True +#LOG_CACHE_PERFORMANCE = True +#LOG_METRIC_ACCESS = True + +# Enable full debug page display on exceptions (Internal Server Error pages) +DEBUG = False + +# If using RRD files and rrdcached, set to the address or socket of the daemon +#FLUSHRRDCACHED = 'unix:/var/run/rrdcached.sock' + +# This lists the memcached servers that will be used by this webapp. +# If you have a cluster of webapps you should ensure all of them +# have the *exact* same value for this setting. That will maximize cache +# efficiency. Setting MEMCACHE_HOSTS to be empty will turn off use of +# memcached entirely. +# +# You should not use the loopback address (127.0.0.1) here if using clustering +# as every webapp in the cluster should use the exact same values to prevent +# unneeded cache misses. Set to [] to disable caching of images and fetched data +#MEMCACHE_HOSTS = ['10.10.10.10:11211', '10.10.10.11:11211', '10.10.10.12:11211'] +#DEFAULT_CACHE_DURATION = 60 # Cache images and data for 1 minute + + +##################################### +# Filesystem Paths # +##################################### +# Change only GRAPHITE_ROOT if your install is merely shifted from /opt/graphite +# to somewhere else +#GRAPHITE_ROOT = '/opt/graphite' + +# Most installs done outside of a separate tree such as /opt/graphite will only +# need to change these three settings. Note that the default settings for each +# of these is relative to GRAPHITE_ROOT +CONF_DIR = '/etc/webapps/graphite-web/' +STORAGE_DIR = '/var/lib/graphite-web/' +CONTENT_DIR = '/usr/share/graphite/webapp/content/' + +# To further or fully customize the paths, modify the following. Note that the +# default settings for each of these are relative to CONF_DIR and STORAGE_DIR +# +## Webapp config files +#DASHBOARD_CONF = '/opt/graphite/conf/dashboard.conf' +#GRAPHTEMPLATES_CONF = '/opt/graphite/conf/graphTemplates.conf' + +## Data directories +# NOTE: If any directory is unreadable in DATA_DIRS it will break metric browsing +WHISPER_DIR = '/var/lib/carbon/whisper' +RRD_DIR = '/var/lib/carbon/rrd' +DATA_DIRS = [WHISPER_DIR, RRD_DIR] # Default: set from the above variables +LOG_DIR = '/var/log/graphite-web/' +INDEX_FILE = '/var/lib/graphite-web/index' # Search index file + + +##################################### +# Email Configuration # +##################################### +# This is used for emailing rendered Graphs +# Default backend is SMTP +#EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +#EMAIL_HOST = 'localhost' +#EMAIL_PORT = 25 +#EMAIL_HOST_USER = '' +#EMAIL_HOST_PASSWORD = '' +#EMAIL_USE_TLS = False +# To drop emails on the floor, enable the Dummy backend: +#EMAIL_BACKEND = 'django.core.mail.backends.dummy.EmailBackend' + + +##################################### +# Authentication Configuration # +##################################### +## LDAP / ActiveDirectory authentication setup +#USE_LDAP_AUTH = True +#LDAP_SERVER = "ldap.mycompany.com" +#LDAP_PORT = 389 +# OR +#LDAP_URI = "ldaps://ldap.mycompany.com:636" +#LDAP_SEARCH_BASE = "OU=users,DC=mycompany,DC=com" +#LDAP_BASE_USER = "CN=some_readonly_account,DC=mycompany,DC=com" +#LDAP_BASE_PASS = "readonly_account_password" +#LDAP_USER_QUERY = "(username=%s)" #For Active Directory use "(sAMAccountName=%s)" +# +# If you want to further customize the ldap connection options you should +# directly use ldap.set_option to set the ldap module's global options. +# For example: +# +#import ldap +#ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_ALLOW) +#ldap.set_option(ldap.OPT_X_TLS_CACERTDIR, "/etc/ssl/ca") +#ldap.set_option(ldap.OPT_X_TLS_CERTFILE, "/etc/ssl/mycert.pem") +#ldap.set_option(ldap.OPT_X_TLS_KEYFILE, "/etc/ssl/mykey.pem") +# See http://www.python-ldap.org/ for further details on these options. + +## REMOTE_USER authentication. See: https://docs.djangoproject.com/en/dev/howto/auth-remote-user/ +#USE_REMOTE_USER_AUTHENTICATION = True + +# Override the URL for the login link (e.g. for django_openid_auth) +#LOGIN_URL = '/account/login' + + +########################## +# Database Configuration # +########################## +# By default sqlite is used. If you cluster multiple webapps you will need +# to setup an external database (such as MySQL) and configure all of the webapp +# instances to use the same database. Note that this database is only used to store +# Django models such as saved graphs, dashboards, user preferences, etc. +# Metric data is not stored here. +# +# DO NOT FORGET TO RUN 'manage.py syncdb' AFTER SETTING UP A NEW DATABASE +# +# The following built-in database engines are available: +# django.db.backends.postgresql # Removed in Django 1.4 +# django.db.backends.postgresql_psycopg2 +# django.db.backends.mysql +# django.db.backends.sqlite3 +# django.db.backends.oracle +# +# The default is 'django.db.backends.sqlite3' with file 'graphite.db' +# located in STORAGE_DIR +# For Django < 1.8 +# sudo su - -s /bin/bash http +# export DJANGO_SETTINGS_MODULE='graphite.settings' +# django-admin.py syncdb +# +# For Django >= 1.8 +# sudo su - -s /bin/bash http +# export DJANGO_SETTINGS_MODULE='graphite.settings' +# django-admin.py migrate + +DATABASES = { + 'default': { + 'NAME': '/var/lib/graphite-web/graphite.db', + 'ENGINE': 'django.db.backends.sqlite3', +# 'USER': '', +# 'PASSWORD': '', +# 'HOST': '', +# 'PORT': '' + } +} +# + + +######################### +# Cluster Configuration # +######################### +# (To avoid excessive DNS lookups you want to stick to using IP addresses only in this entire section) +# +# This should list the IP address (and optionally port) of the webapp on each +# remote server in the cluster. These servers must each have local access to +# metric data. Note that the first server to return a match for a query will be +# used. +#CLUSTER_SERVERS = ["10.0.2.2:80", "10.0.2.3:80"] + +## These are timeout values (in seconds) for requests to remote webapps +#REMOTE_STORE_FETCH_TIMEOUT = 6 # Timeout to fetch series data +#REMOTE_STORE_FIND_TIMEOUT = 2.5 # Timeout for metric find requests +#REMOTE_STORE_RETRY_DELAY = 60 # Time before retrying a failed remote webapp +#REMOTE_STORE_USE_POST = False # Use POST instead of GET for remote requests +#REMOTE_FIND_CACHE_DURATION = 300 # Time to cache remote metric find results + +## Prefetch cache +# set to True to fetch all metrics using a single http request per remote server +# instead of one http request per target, per remote server. +# Especially useful when generating graphs with more than 4-5 targets or if +# there's significant latency between this server and the backends. (>20ms) +#REMOTE_PREFETCH_DATA = False + +# During a rebalance of a consistent hash cluster, after a partition event on a replication > 1 cluster, +# or in other cases we might receive multiple TimeSeries data for a metric key. Merge them together rather +# that choosing the "most complete" one (pre-0.9.14 behaviour). +#REMOTE_STORE_MERGE_RESULTS = True + +## Remote rendering settings +# Set to True to enable rendering of Graphs on a remote webapp +#REMOTE_RENDERING = True +# List of IP (and optionally port) of the webapp on each remote server that +# will be used for rendering. Note that each rendering host should have local +# access to metric data or should have CLUSTER_SERVERS configured +#RENDERING_HOSTS = [] +#REMOTE_RENDER_CONNECT_TIMEOUT = 1.0 + +# If you are running multiple carbon-caches on this machine (typically behind a relay using +# consistent hashing), you'll need to list the ip address, cache query port, and instance name of each carbon-cache +# instance on the local machine (NOT every carbon-cache in the entire cluster). The default cache query port is 7002 +# and a common scheme is to use 7102 for instance b, 7202 for instance c, etc. +# +# You *should* use 127.0.0.1 here in most cases +#CARBONLINK_HOSTS = ["127.0.0.1:7002:a", "127.0.0.1:7102:b", "127.0.0.1:7202:c"] +#CARBONLINK_TIMEOUT = 1.0 +# Using 'query-bulk' queries for carbon +# It's more effective, but python-carbon 0.9.13 (or latest from 0.9.x branch) is required +# See https://github.com/graphite-project/carbon/pull/132 for details +#CARBONLINK_QUERY_BULK = False + +##################################### +# Additional Django Settings # +##################################### +# Uncomment the following line for direct access to Django settings such as +# MIDDLEWARE_CLASSES or APPS +#from graphite.app_settings import * + |