1

我正在嘗試設置新的Bonsai ElasticSearch heroku附加組件,但直到現在我才能在我的本地開發機器上運行搜索,只要在Heroku上部署相同搜索失敗,或者更好,Rails記錄器不會記錄任何內容,但我會收到500內部服務器錯誤。這是在查詢失敗期間相關的Heroku日誌(沒有發現明顯的錯誤):https://gist.github.com/2867221在Heroku上用輪胎和盆景部署ElasticSearch

我正在尋找一些關於如何排除故障的建議。例如,我在盆景初始化配置/初始化/ bonsai.rb設置Tire.configure { logger 'elasticsearch.log', :level => 'debug' }類似如下:

Tire.configure { logger 'elasticsearch.log', :level => 'debug' } 
if ENV['BONSAI_INDEX_URL'] 
    Tire.configure do 
    url "http://index.bonsai.io" 
    end 
    BONSAI_INDEX_NAME = ENV['BONSAI_INDEX_URL'][/[^\/]+$/] 
else 
    app_name = Rails.application.class.parent_name.underscore.dasherize 
    app_env = Rails.env 
    BONSAI_INDEX_NAME = "#{app_name}-#{app_env}" 
end 

但它記錄在一個文件中,這是個好地方,但部署後無法訪問。

Bonsai ElasticSearch是一個新的測試插件,所以我想知道你們中的某個人是否已經有一些成功的經驗在Heroku上使用,並且可以給我一個反饋和一些建議。

UPDATE

設置記錄器記錄器$標準輸出:水平=> '調試' 到Tire.configure終於而它的失敗搜索的Heroku可以登錄的東西:

2012-06-04T21:36:26+00:00 heroku[router]: GET gitwatcher.com/categories?utf8=%E2%9C%93&query=Asynchronous+Web+Frameworks dyno=web.1 queue=0 wait=0ms service=32ms status=500 bytes=728 
2012-06-04T21:36:26+00:00 heroku[nginx]: 93.34.212.216 - - [04/Jun/2012:21:36:26 +0000] "GET /categories?utf8=%E2%9C%93&query=Asynchronous+Web+Frameworks HTTP/1.1" 500 728 "http://gitwatcher.com/categories" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0" gitwatcher.com 
2012-06-04T21:36:26+00:00 app[web.1]: # 2012-06-04 21:36:26:387 [_search] (["123456789"]) 
2012-06-04T21:36:26+00:00 app[web.1]: # 
2012-06-04T21:36:26+00:00 app[web.1]: curl -X GET "http://index.bonsai.io/123456789/category/_search?load=true&pretty=true" -d '{"query":{"query_string":{"query":"Asynchronous Web Frameworks"}}}' 
2012-06-04T21:36:26+00:00 app[web.1]: 
2012-06-04T21:36:26+00:00 app[web.1]: # 2012-06-04 21:36:26:387 [200] (1 msec) 
2012-06-04T21:36:26+00:00 app[web.1]: 

...請查看更多對問題打開https://github.com/karmi/tire/issues/365

+1

可怕的,但你應該能夠用撬棍'Tire.configure {@Logger = Rails的一個記錄它.logger}' –

+0

似乎Heroku不喜歡那種方式:看日誌https://gist.github.com/2869863 –

+1

我的錯誤 - 忘記了輪胎的記錄器類不是標準的紅寶石記錄器類。 Heroku應該記錄你的stdout/stderr給你,所以我會嘗試Tire.configure {logger $ stdout} –

回答

1

只是爲了跟蹤的目的, 我會在這裏報告(CAT &過去)我張貼在GitHub Tire issues分辨率:

DEFINETLY WORKS BY: 
    1) dropping out `to_indexed_json` from Category MongoID model (at the opposit of README indication) 
    2) removing and re-adding Bonsai.io Heroku add-on 
    3) reindexing ElasticSearch by running `heroku run:detached rake environment tire:import CLASS='Category'` 

... INFACT,如果你只是運行rake環境輪胎:進口CLASS = '分類' FORCE =真不會在Heroku/Bonsai.io工作,becuse盆景的授權經營:

2012-06-11T20:39:30+00:00 app[run.1]: curl -X DELETE http://index.bonsai.io/my-fake-index-11223344 
    2012-06-11T20:39:30+00:00 app[run.1]: # 2012-06-11 20:39:30:749 [401] 
    2012-06-11T20:39:30+00:00 app[run.1]: # 
    2012-06-11T20:39:30+00:00 app[run.1]: # "{\"error\": \"Not authorized: Some endpoints are admin-only, ask [email protected]\"}\n" 

比,如果你想重置/重新索引你的最終髒數據,唯一的辦法就是下降盆景附加和重建:

heroku addons:remove bonsai:test 
    heroku addons:add bonsai:test 

這Saied如何,我真的有被指示的髒數據:

BSON::InvalidObjectId (illegal ObjectId format: LAm-hNglS5mbrMzDlVVHCQ): 
    app/controllers/categories_controller.rb:25:in `index' 

如果你需要完整的寶石堆與其他案件相比,那就是:https://gist.github.com/2912881

相關問題