Heroku Gets Sweet Logging
blog.heroku.com
blog.heroku.com
! Realtime tail and filter are not available with basic logging, please upgrade to expanded logging
:(
I see the market currently providing two options, neither of which encompass my use case.
1) Exception Logging via existing Heroku addons like Exceptional
2) Tracking via javascript, e.g. Google Analytics
The problem I'm experiencing is that I have successful ajax calls to a Sinatra app that I'd like to log. Running 'heroku logs' will give me the last couple hundred but I'm generating many thousands. The new new Heroku logging functionality will expand that tail to showing me a few thousand queries across my dynos but as I understand it, it won't write out to S3 (nor a file since Heroku is write-only).
I planned on writing a custom logger that will output to S3. If anyone has suggestions in lieu of rolling my own, please advise. Otherwise I can post the code I create on github for others in my situation.
Although I'm not sure if its still being maintained.
We use it in production on heroku and it works great.
I guess they would be re-using it multiple times, hopefully...
What, then, would you propose as a solution, given the nature of Heroku's architecture and customer base?
In the database world, developers are sometimes tempted to bypass the RDBMS, for example by storing everything in one big table with two columns labelled key and value
If so, maybe this is not always an anti-pattern.
Anyone have any thoughts/experiences with that? Is that complete rubbish or is there truth to it and why?
That aside for the moment, and based on your S3-related comments nested below, I thought I might pop by to mention that I (using Rails on Heroku) have been handling uploads by using direct pre-authorized posting to S3 and it has been very nice to work with.
It's not so much the S3 storage I am concerned about. It's more the allowing me to backup everything properly, concern I have.
You can save things to the tmp directory for a little while. The files should last long enough to do some work on them. For example, I've had an app parse an uploaded XML file that gets saved in tmp. This might not be a good practice, but I don't feel like setting up anything special for that app.
But, it seems to me, that if you are just passing through Heroku altogether - that removes one point of fault tolerance and redundancy - right?