Отключить мониторинг новой реликвии в представлениях django

Я использую фреймворк Django (версия 1.5.1) с почти 25 внутренними приложениями, каждое из которых имеет среднее от 7 до 15 различных представлений, довольно много.

Таким образом, чтобы контролировать RPM, время запроса и т. Д., и optime кода ответа я использую сервис New Relic (бесплатно), и он очень полезен, НО для мониторинга времени ответа шаблона / запроса он делает инъекцию JavaScript в страницу перед загрузкой.

Обычно это не так уж и плохо, если вы не отправляете электронную почту ежедневно с помощью страницы, отображаемой в формате html, это ад на земле, потому что js, введенный в html-литературу, ест / уничтожает html.

Если вы отправляете эти письма вручную, то, возможно, вы можете проверить содержимое перед отправкой, но в моем случае это crontab, так что это не решение для меня.

В официальных документах есть функция disable_browser_autorum, это как раз то, что мне нужно, НО (опять же) вы можете использовать переменную newrelic.disable_browser_autorum на сервере WSGI, но я запускаю сервер оружейного оружия с супервизором, так что это не хорошо.

Но есть также переменная newrelic.agent.disable_browser_autorum(flag=True), которую вы должны вставить в представление каркаса и работать вместе с HTML-кавычками.

{% load staticfiles newrelic_tags %}
<!DOCTYPE html>
<html lang="{{ LANGUAGE_CODE }}">
<head>
    <meta charset="utf-8" />
    {% newrelic_browser_timing_header %}
<body>
  . 
  .
  .

   {% newrelic_browser_timing_footer %}
</body>
</html>

Но нет никакой информации о том, как это сделать, и я также провел собственные тесты, чтобы попытаться понять, как это сделать.

Я не большой разработчик Python или Django, но из опыта это должно быть что-то вроде

class EmailView(DetailView):
    template_name = 'email/daily-newsletter.html'
    model = News

    def get_queryset(self):
        return News.objects.filter(date=datetime.date.today())

    def get_context_data(self, **kwargs):
        context = super(EmailView, self).get_context_data(**kwargs)
        context['related_news'] = NewsRelated.objects.get(related=self.id)

        >> HERE DO SOMETHING LIKE self.request.something =newrelic.agent.disable_browser_autorum(flag=True)<<
        return context

Кто-нибудь может мне помочь с этим? Любое предложение приветствуется.

PS: я уже опубликовал вопрос об официальном сообществе New Relic, но пока безуспешно.

1 ответ

Что ж, благодаря моей коллеге и помощи @Daniel Roseman моя проблема была решена, это было простое решение:

import newrelic.agent
. . .

class EmailView(DetailView):
    template_name = 'email/daily-newsletter.html'
    model = News

    def get_queryset(self):
        return News.objects.filter(date=datetime.date.today())

    def get_context_data(self, **kwargs):
        context = super(EmailView, self).get_context_data(**kwargs)
        context['related_news'] = NewsRelated.objects.get(related=self.id)

        newrelic.agent.disable_browser_autorum(flag=True)
        return context

Но затем мой коллега заметил, что новая реликвия - это "переменная окружения", так что, просто поместив ее туда, она будет работать.

Вот и все.

Другие вопросы по тегам