opbeans/context_processors.py (23 lines of code) (raw):
import json
import os
from django.apps import apps
from django.conf import settings
RUM_CONFIG = None
def rum_settings(request):
global RUM_CONFIG
if RUM_CONFIG:
return RUM_CONFIG
url = os.environ.get('ELASTIC_APM_JS_SERVER_URL')
if not url:
app = apps.get_app_config('elasticapm')
url = app.client.config.server_url
with open(os.path.join(settings.BASE_DIR, 'opbeans', 'static', 'package.json')) as f:
package_json = json.load(f)
service_name = os.environ.get('ELASTIC_APM_JS_SERVICE_NAME', package_json['name'])
service_version = os.environ.get('ELASTIC_APM_JS_SERVICE_VERSION', package_json['version'])
RUM_CONFIG = {
"RUM_SERVICE_NAME": service_name,
"RUM_SERVICE_VERSION": service_version,
"RUM_SERVER_URL": url
}
return RUM_CONFIG