Merge branch 'master' of git://github.com/rackspace/stacktach into exists_verifier
This commit is contained in:
commit
ef5dd0a23f
@ -2,6 +2,7 @@ export STACKTACH_DB_NAME="stacktach"
|
|||||||
export STACKTACH_DB_HOST=""
|
export STACKTACH_DB_HOST=""
|
||||||
export STACKTACH_DB_USERNAME="root"
|
export STACKTACH_DB_USERNAME="root"
|
||||||
export STACKTACH_DB_PASSWORD="password"
|
export STACKTACH_DB_PASSWORD="password"
|
||||||
|
export STACKTACH_DB_PORT="3306"
|
||||||
export STACKTACH_INSTALL_DIR="/srv/www/stacktach/"
|
export STACKTACH_INSTALL_DIR="/srv/www/stacktach/"
|
||||||
export STACKTACH_DEPLOYMENTS_FILE="/srv/www/stacktach/stacktach_worker_config.json"
|
export STACKTACH_DEPLOYMENTS_FILE="/srv/www/stacktach/stacktach_worker_config.json"
|
||||||
|
|
||||||
|
17
manage.py
17
manage.py
@ -1,14 +1,9 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
from django.core.management import execute_manager
|
import os, sys
|
||||||
import imp
|
|
||||||
try:
|
|
||||||
imp.find_module('settings') # Assumed to be in the same directory.
|
|
||||||
except ImportError:
|
|
||||||
import sys
|
|
||||||
sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
import settings
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
execute_manager(settings)
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "stacktach.settings")
|
||||||
|
|
||||||
|
from django.core.management import execute_from_command_line
|
||||||
|
|
||||||
|
execute_from_command_line(sys.argv)
|
||||||
|
21
reports/batch.py
Normal file
21
reports/batch.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# This is a one-time utility script for backfilling reports.
|
||||||
|
# Be sure to set up your DJANGO_SETTINGS_MODULE env var first.
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
start_date = datetime.date(2013, 2, 17)
|
||||||
|
|
||||||
|
today = datetime.datetime.now().date()
|
||||||
|
target = today - datetime.timedelta(days=30)
|
||||||
|
|
||||||
|
done = today - start_date
|
||||||
|
days = done.days
|
||||||
|
|
||||||
|
while start_date != target:
|
||||||
|
for region in ["dfw", "lon", "ord"]:
|
||||||
|
cmd = "python pretty.py --utcdate %s --region %s --store --percentile 97" % (start_date, region)
|
||||||
|
print cmd
|
||||||
|
subprocess.call(cmd, shell=True)
|
||||||
|
|
||||||
|
start_date = start_date - datetime.timedelta(days=1)
|
@ -237,6 +237,12 @@ if __name__ == '__main__':
|
|||||||
parser.add_argument('--hours',
|
parser.add_argument('--hours',
|
||||||
help='Report span in hours. Default: 24', default=24,
|
help='Report span in hours. Default: 24', default=24,
|
||||||
type=int)
|
type=int)
|
||||||
|
parser.add_argument('--days_back',
|
||||||
|
help='Report start date. N days back from now. Default: 0', default=0,
|
||||||
|
type=int)
|
||||||
|
parser.add_argument('--hours_back',
|
||||||
|
help='Report start date. N hours back from now. Default: 0', default=0,
|
||||||
|
type=int)
|
||||||
parser.add_argument('--start_hour',
|
parser.add_argument('--start_hour',
|
||||||
help='Starting hour 0-23. Default: 0', default=0,
|
help='Starting hour 0-23. Default: 0', default=0,
|
||||||
type=int)
|
type=int)
|
||||||
@ -252,12 +258,23 @@ if __name__ == '__main__':
|
|||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
yesterday = args.utcdate
|
yesterday = args.utcdate
|
||||||
|
days_back = args.days_back
|
||||||
|
hours_back = args.hours_back
|
||||||
percentile = args.percentile
|
percentile = args.percentile
|
||||||
hours = args.hours
|
hours = args.hours
|
||||||
start_hour = args.start_hour
|
start_hour = args.start_hour
|
||||||
store_report = args.store
|
store_report = args.store
|
||||||
region = args.region
|
region = args.region
|
||||||
|
|
||||||
|
if (not yesterday) and days_back > 0:
|
||||||
|
yesterday = datetime.datetime.utcnow().date() - \
|
||||||
|
datetime.timedelta(days=days_back)
|
||||||
|
if (not yesterday) and hours_back > 0:
|
||||||
|
yesterday = datetime.datetime.utcnow() - \
|
||||||
|
datetime.timedelta(hours=hours_back)
|
||||||
|
yesterday = yesterday.replace(minute=0, second=0, microsecond=0)
|
||||||
|
start_hour = yesterday.hour
|
||||||
|
|
||||||
start, end, raw_report = make_report(yesterday, start_hour, hours,
|
start, end, raw_report = make_report(yesterday, start_hour, hours,
|
||||||
percentile, store_report, region)
|
percentile, store_report, region)
|
||||||
details = raw_report[0]
|
details = raw_report[0]
|
||||||
|
@ -9,6 +9,7 @@ try:
|
|||||||
db_host = STACKTACH_DB_HOST
|
db_host = STACKTACH_DB_HOST
|
||||||
db_username = STACKTACH_DB_USERNAME
|
db_username = STACKTACH_DB_USERNAME
|
||||||
db_password = STACKTACH_DB_PASSWORD
|
db_password = STACKTACH_DB_PASSWORD
|
||||||
|
db_port = STACKTACH_DB_PORT
|
||||||
install_dir = STACKTACH_INSTALL_DIR
|
install_dir = STACKTACH_INSTALL_DIR
|
||||||
except ImportError:
|
except ImportError:
|
||||||
db_engine = os.environ.get('STACKTACH_DB_ENGINE',
|
db_engine = os.environ.get('STACKTACH_DB_ENGINE',
|
||||||
@ -17,6 +18,7 @@ except ImportError:
|
|||||||
db_host = os.environ.get('STACKTACH_DB_HOST', "")
|
db_host = os.environ.get('STACKTACH_DB_HOST', "")
|
||||||
db_username = os.environ['STACKTACH_DB_USERNAME']
|
db_username = os.environ['STACKTACH_DB_USERNAME']
|
||||||
db_password = os.environ['STACKTACH_DB_PASSWORD']
|
db_password = os.environ['STACKTACH_DB_PASSWORD']
|
||||||
|
db_port = os.environ.get('STACKTACH_DB_PORT', "")
|
||||||
install_dir = os.environ['STACKTACH_INSTALL_DIR']
|
install_dir = os.environ['STACKTACH_INSTALL_DIR']
|
||||||
|
|
||||||
DEBUG = False
|
DEBUG = False
|
||||||
@ -35,7 +37,7 @@ DATABASES = {
|
|||||||
'USER': db_username,
|
'USER': db_username,
|
||||||
'PASSWORD': db_password,
|
'PASSWORD': db_password,
|
||||||
'HOST': db_host, # Set to empty string for localhost.
|
'HOST': db_host, # Set to empty string for localhost.
|
||||||
'PORT': '', # Set to empty string for default.
|
'PORT': db_port, # Set to empty string for default.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -139,6 +141,8 @@ INSTALLED_APPS = (
|
|||||||
'stacktach',
|
'stacktach',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = ['*']
|
||||||
|
|
||||||
# A sample logging configuration. The only tangible logging
|
# A sample logging configuration. The only tangible logging
|
||||||
# performed by this configuration is to send an email to
|
# performed by this configuration is to send an email to
|
||||||
# the site admins on every HTTP 500 error.
|
# the site admins on every HTTP 500 error.
|
||||||
@ -150,7 +154,8 @@ LOGGING = {
|
|||||||
'handlers': {
|
'handlers': {
|
||||||
'mail_admins': {
|
'mail_admins': {
|
||||||
'level': 'ERROR',
|
'level': 'ERROR',
|
||||||
'class': 'django.utils.log.AdminEmailHandler'
|
'class': 'django.utils.log.AdminEmailHandler',
|
||||||
|
'filters': []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
'loggers': {
|
'loggers': {
|
||||||
|
@ -1,4 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: stacktach
|
||||||
|
# Required-Start:
|
||||||
|
# Required-Stop:
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Start/stop stacktach workers
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
WORKDIR=/srv/www/stacktach/app
|
WORKDIR=/srv/www/stacktach/app
|
||||||
DAEMON=/usr/bin/python
|
DAEMON=/usr/bin/python
|
||||||
@ -9,16 +19,24 @@ export DJANGO_SETTINGS_MODULE="settings"
|
|||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
start)
|
start)
|
||||||
echo "Starting server"
|
echo "Starting stacktach workers"
|
||||||
cd $WORKDIR
|
cd $WORKDIR
|
||||||
/sbin/start-stop-daemon --start --pidfile $PIDFILE --make-pidfile -b --exec $DAEMON $ARGS
|
/sbin/start-stop-daemon --start --pidfile $PIDFILE --make-pidfile -b --exec $DAEMON $ARGS
|
||||||
;;
|
;;
|
||||||
stop)
|
stop)
|
||||||
echo "Stopping server"
|
echo "Stopping stacktach workers"
|
||||||
/sbin/start-stop-daemon --stop --pidfile $PIDFILE --verbose
|
/sbin/start-stop-daemon --stop --pidfile $PIDFILE --verbose
|
||||||
;;
|
;;
|
||||||
|
restart)
|
||||||
|
echo "Restarting stacktach workers"
|
||||||
|
/sbin/start-stop-daemon --stop --pidfile $PIDFILE --retry 5
|
||||||
|
/sbin/start-stop-daemon --start --pidfile $PIDFILE --make-pidfile -b --exec $DAEMON $ARGS
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
status_of_proc "$DAEMON" "stacktach" && exit 0 || exit $?
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: stacktach.sh {start|stop}"
|
echo "Usage: stacktach.sh {start|stop|restart|status}"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
x
Reference in New Issue
Block a user