在New Relic的,我們確實有,我們正在考慮一些Python代理監控提名Django管理命令,這將增加支持一些變化的原型。我們仍在研究這些變化的一些細節,但它有可能會在接下來的幾個月內發佈其中一個即將發佈的版本。
在此期間,你可以做的就是添加類似以下到您的代理配置文件:
[newrelic:django-manage]
app_name = Python Application (Django Management Commands)
startup_timeout = 10.0
[background-task:django-manage-syncdb]
enabled = true
function = django.core.management.commands.syncdb:Command.handle_noargs
name = syncdb
group = Django
你會然後運行Django的manage.py腳本:
NEW_RELIC_CONFIG_FILE=newrelic.ini
NEW_RELIC_ENVIRONMENT=django-manage
export NEW_RELIC_CONFIG_FILE
export NEW_RELIC_ENVIRONMENT
newrelic-admin run-python manage.py syncdb
當數據被報告到我們的用戶界面時,它將出現在指定應用程序的「交易」選項卡中的「類型 - >其他交易 - > Django」下。
的「NewRelic的:Django的管理」部分是一個環境部分,使您可以覆蓋「APP_NAME」設置,定義在我們的UI應用程序的數據,應當報。 'NEW_RELIC_ENVIRONMENT'變量表示環境部分應該用作默認'newrelic'部分的替代。
即使你不重寫「APP_NAME」,並讓它繼承默認「NewRelic的」部分的價值,你還必須設置「startup_timeout」設置。這是非常必要的,因爲在正常情況下,當第一個Web請求由Web應用程序處理時,代理只會在後臺懶散地註冊自己。當註冊被懶惰地完成時,雖然會在將Django管理命令作爲後臺任務進行跟蹤時導致問題。這是因爲只有一個函數調用需要被監視,並且不等待代理註冊發生將導致沒有數據被捕獲。因此,爲啓動超時設置非零值表示等待註冊發生。
如果由於某種原因代理註冊時間太長,超時將在指定的時間,並允許仍要繼續管理命令後到期。無論哪種方式,需要等待意味着實際開始管理命令會有延遲。如果管理命令需要儘快運行,應該記住這一點。
如果有必要,一個「shutdown_timeout」也可以,如果由代理捕獲的數據的上傳始終比默認2.5秒花費的時間指定,並因此並不總是被報告。
至於「背景任務」部分,它定義了應該監視和報告爲背景任務的特定功能。在這種情況下,我們針對實現Django'syncdb'命令的特定功能。
感謝您的回覆。我做了你所說的(但做了一些微調,因爲我的命令有一個破折號,如test-foo),但我似乎無法找到數據將在儀表板中的位置。我點擊應用程序,然後點擊我的應用程序(這需要我監視),然後點擊事務。我似乎無法找到「其他交易」或Django。有什麼想法嗎? – Steve
我已添加屏幕截圖。使用選項卡左上角的「類型」下拉菜單,進入「其他交易 - > Django」。 –
不幸的是,我的儀表板看起來不像你的,我似乎無法找到它。下面是我的外觀 - http://imgur.com/P6qDHUc - 也許這是因爲我的Heroku是來自Heroku的?思考? – Steve