Show HN: Serverless logging to S3
github.com
github.com
No bespoke logging solution is needed.
I run some Lambda systems at scale and CloudWatch Logs has worked excellent for me. It was completely painless and CloudWatch logs has a lot of tooling that comes with it (backups, streaming, indexing with Elastic Search, etc).
What part of it has not worked well for you?
And searching is very limited. Yes, you can stream them to ElasticSearch => LogStash/Kibana, etc but that's extra steps, and I can do similar things completely without CloudWatch Logs, e.g. Sentry and SumoLogic integrate fine with Lambdas also.
I'm not hating on CloudWatch Logs, and alarms are good. It's just not a fully featured logging solution, and it sounds like you agree with that?
Search is powerful enough to do something like say, "get me all messages with this trace GUID" and S3 exports can be automated[1] and you could probably use the "task-name" to associate with your ticketing system.
[1] http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/S3Ex...
I was considering Kinesis but my use case (multiple small apps not running on AWS sending medium-sized messages a few times per user session) values simple components and keeping the long-term maintenance effort to the minimum.
This is aimed at small-scale operations, utilising hopefully simple components.
Firehose would work, though... no per-hour charges.
But for lower volume logging this seems like a cost effective solution, and then you can use Athena or EMR to further process or analyze the logs. I didn't see any partitioning of the logs by date--that might be a nice enhancement (unless I missed it).
It's probably cheaper but lambdas and s3 are equally dirt cheap so hey why not.
Edit: Two possibilities here. Either the choice of technology is deliberate and there's a reason I can't quite figure out, or AWS has reached that state where they do so much it's really really hard for people to know what service to use for each problem.
Which actually makes me wonder what am I doing right now that could be done easily using a pre-baked AWS solution?
For debugging situations, I'd like to send a request to my app server and then see the server response live, or with little delay.
awslogs get <group_name> -w
The latency is pretty low and this generally works well. You can apply filters etc. as well if needed.