From cd802d8e142697736114739fcb735534346ce544 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Fri, 8 Mar 2013 10:36:59 -0500 Subject: [PATCH 1/3] Add datadog metrics capture around heartbeat timing --- cms/envs/aws.py | 3 +++ cms/one_time_startup.py | 6 ++++++ cms/urls.py | 1 + common/djangoapps/heartbeat/views.py | 3 ++- .../student/management/commands/pearson_transfer.py | 1 + lms/one_time_startup.py | 6 ++++++ lms/urls.py | 3 +++ 7 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 cms/one_time_startup.py create mode 100644 lms/one_time_startup.py diff --git a/cms/envs/aws.py b/cms/envs/aws.py index a147f84531..be7816d21f 100644 --- a/cms/envs/aws.py +++ b/cms/envs/aws.py @@ -62,3 +62,6 @@ AWS_SECRET_ACCESS_KEY = AUTH_TOKENS["AWS_SECRET_ACCESS_KEY"] DATABASES = AUTH_TOKENS['DATABASES'] MODULESTORE = AUTH_TOKENS['MODULESTORE'] CONTENTSTORE = AUTH_TOKENS['CONTENTSTORE'] + +# Datadog for events! +DATADOG_API = AUTH_TOKENS.get("DATADOG_API") \ No newline at end of file diff --git a/cms/one_time_startup.py b/cms/one_time_startup.py new file mode 100644 index 0000000000..93428a3404 --- /dev/null +++ b/cms/one_time_startup.py @@ -0,0 +1,6 @@ +from dogapi import dog_http_api, dog_stats_api +from django.conf import settings + +if hasattr(settings, 'DATADOG_API'): + dog_http_api.api_key = settings.DATADOG_API + dog_stats_api.start(api_key=settings.DATADOG_API, statsd=True) diff --git a/cms/urls.py b/cms/urls.py index 7b7b5e9375..d43b9bc44c 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -1,5 +1,6 @@ from django.conf import settings from django.conf.urls import patterns, include, url +from . import one_time_startup # Uncomment the next two lines to enable the admin: # from django.contrib import admin diff --git a/common/djangoapps/heartbeat/views.py b/common/djangoapps/heartbeat/views.py index 956504407b..d7c3a32192 100644 --- a/common/djangoapps/heartbeat/views.py +++ b/common/djangoapps/heartbeat/views.py @@ -2,8 +2,9 @@ import json from datetime import datetime from django.http import HttpResponse from xmodule.modulestore.django import modulestore +from dogapi import dog_stats_api - +@dog_stats_api.timed('edxapp.heartbeat') def heartbeat(request): """ Simple view that a loadbalancer can check to verify that the app is up diff --git a/common/djangoapps/student/management/commands/pearson_transfer.py b/common/djangoapps/student/management/commands/pearson_transfer.py index 5eded6484a..75716c7443 100644 --- a/common/djangoapps/student/management/commands/pearson_transfer.py +++ b/common/djangoapps/student/management/commands/pearson_transfer.py @@ -10,6 +10,7 @@ import paramiko import boto dog_http_api.api_key = settings.DATADOG_API +dog_stats_api.start(api_key=settings.DATADOG_API, statsd=True) class Command(BaseCommand): diff --git a/lms/one_time_startup.py b/lms/one_time_startup.py new file mode 100644 index 0000000000..93428a3404 --- /dev/null +++ b/lms/one_time_startup.py @@ -0,0 +1,6 @@ +from dogapi import dog_http_api, dog_stats_api +from django.conf import settings + +if hasattr(settings, 'DATADOG_API'): + dog_http_api.api_key = settings.DATADOG_API + dog_stats_api.start(api_key=settings.DATADOG_API, statsd=True) diff --git a/lms/urls.py b/lms/urls.py index 5972b49266..f2ec45f402 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -3,6 +3,9 @@ from django.conf.urls import patterns, include, url from django.contrib import admin from django.conf.urls.static import static from django.views.generic import RedirectView + +from . import one_time_startup + import django.contrib.auth.views # Uncomment the next two lines to enable the admin: From ae610aebaa69c5192c0cd5034d2bbfe7855f6920 Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Fri, 8 Mar 2013 10:48:55 -0500 Subject: [PATCH 2/3] Set the dogapi version --- github-requirements.txt | 1 - requirements.txt | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/github-requirements.txt b/github-requirements.txt index 62e47a328f..468d55ce65 100644 --- a/github-requirements.txt +++ b/github-requirements.txt @@ -3,4 +3,3 @@ -e git://github.com/MITx/django-pipeline.git#egg=django-pipeline -e git://github.com/MITx/django-wiki.git@e2e84558#egg=django-wiki -e git://github.com/dementrock/pystache_custom.git@776973740bdaad83a3b029f96e415a7d1e8bec2f#egg=pystache_custom-dev --e git://github.com/MITx/dogapi.git@003a4fc9#egg=dogapi diff --git a/requirements.txt b/requirements.txt index 07cd2f767b..204ec85889 100644 --- a/requirements.txt +++ b/requirements.txt @@ -58,3 +58,4 @@ ipython==0.13.1 xmltodict==0.4.1 paramiko==1.9.0 Pillow==1.7.8 +dogapi==1.2.1 From fab07597d264c6845b4dda08f8857c36c407a8ce Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Fri, 8 Mar 2013 11:59:02 -0500 Subject: [PATCH 3/3] Use https to talk to rubygems --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 43a9f6e2b1..7f7b146978 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ -source :rubygems +source 'https://rubygems.org' gem 'rake', '~> 10.0.3' gem 'sass', '3.1.15' gem 'bourbon', '~> 1.3.6'