私はDjango フレームワーク(バージョン 1.5.1) をほぼ 25 の内部アプリで使用しており、それぞれ平均 7 ~ 15 の異なるビューがかなりあります。
RPM、クエリ時間などを監視します。. 私はNew Relic(無料)サービスを使用していますが、非常に便利ですが、テンプレート/リクエストの応答時間を監視するには、ページをロードする前にjavascriptインジェクションを行います。
通常、それは悪いことではありません.htmlでレンダリングされたページで毎日メールを送信しない限り、html文学に注入されたjsがhtmlを食べたり破壊したりするため、地獄です。
これらのメールを手で送信する場合は、送信する前に内容を確認できるかもしれませんが、私の場合は crontab taks であるため、それは私にとっては解決策ではありません。
公式ドキュメントには、私が必要としているdisable_browser_autorum関数がありますが、(再び) WSGI serverでnewrelic.disable_browser_autorum変数を使用できますが、私は Supervisord でgunicorn サーバーを実行しているので、それは良くありません。
ただし、フレームワークビューに挿入する必要があり、html 引用符と連携する必要があるnewrelic.agent.disable_browser_autorum(flag=True)変数もあります。
{% 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 コミュニティに質問を投稿しましたが、今のところうまくいきません。