Logflare Logger Backend

Anyone interested in another logging thing?

I’ve been building out Logflare with Elixir, which has been great. Initially for Cloudflare customers via the Cloudflare app, but doing this made me want a bit more out of the Elixir logging ecosystem.

Announcing the Logflare Logger backend!

You can easily pump your structured (or not) Elixir logs to Logflare, which then automatically get inserted into a BigQuery table you can query and own directly.

We’ve been using it on production ourselves for a few weeks now. Here is a dashboard I’m using (we need to upgrade our box soon actually).

The whole idea really is that you should log structured data, and you should be able to log liberally into an inexpensive datastore that you can query over the long term. So essentially Logflare is just a fancy queue into BigQuery. Ultimately we should be able to do this a lot cheaper than your standard ELK based log management system because we’re not going to be marketing up the storage at all and BigQuery is way cheaper than Elastic. You Bring Your Own Backend™, and just pay Logflare to get the data there.

I don’t really want to get into the whole logs vs metrics debate because everything breaks at some scale and it’s always good to use the right tool for the job, but I think 95% of apps could just log structured events to a database instead of using statsd-like things. This gets you a ton of benefits over a timeseries db. Honeycomb.io, for example, is also pushing event-based metrics over a statd-like system.

I also am not saying telemetry is bad, because it’s awesome and I think Elixir needs standardized monitoring hooks. We actually hope to have a telemetry backend soon. It’s more the underlying storage I have an issue with, which is also why we ultimately want you to be able to use other databases than BigQuery (eventually).

Anyways, would love some feedback on this whole thing. Our Cloudflare users seem to really like it, and I’m hoping the Elixir community will too.

ps: None of this would even be possible without everything that Elixir/Phoenix is. I’ve been in the software business for over 10 years and I haven’t been this excited about something in a very long time.

pps: We should have LiveView based search done next week:

16 Likes

Logflare Logger Backend is now compatible with new context keys for Elixir 1.10.

I should probably post about this a bit more but in terms of the product Logflare itself, we’re now basically feature matched with something like Papertrail (in terms of streaming, searching, alerting and user access). Working on billing now, and are planning to go v1 once billing is launched. Oh, and we have a Zeit integration also if anyone has any (non-Elixir) stuff on Zeit.

Would love some feedback from Elixir folks!

5 Likes

And now you can send your browser security reports to Logflare!

Set your Report-To url to https://api.logflare.app/logs/browser/reports?api_key=KEY&source_id=SOURCE and we’ll take in everything the reporting API sends over. So ideally you can do something like this for CSP, NEL, crash, intervention etc reports:

5 Likes

Noice, thanks about letting me know about Report-To, unfortunately this seems to not be available in any non-Chrome-based browsers :frowning:

1 Like

Big update to our search UI … we now have a Date/Time picker, and the whole form is an actual query builder.

One really cool part of this is that if you have the Logflare UI set to local time it automatically converts your query to UTC.

It’s super easy to do timestamp ranges with t:2020-04-10T01:{50..55}:00

And we support microsecond time ranges like t:2020-04-08T07:40:02.{000001..999999}

Now to finish billing…

4 Likes

This looks very cool, I wonder if I can mangle it to try it out in a Gleam project.

I need to try out something new after being on timber.io for a while.

1 Like

Thanks! I have not played with Gleam yet. Would love to know how it goes!

How does the logger backend handle network problems? Does it just noop or fallback to stdout? I‘ve experienced some app crashes today when logflare had some issues. Quite possible that I also did some suboptimal things which lead to this so for the lack of debug information I didn‘t want to open a GH issue yet.

Please upgrade to the latest version we released last week. It fixes this issue. Previously issues POSTing to Logflare could have put Logger into sync mode which would definitely affect things negatively. Sorry for the trouble!!

3 Likes

Great to hear that this is already addressed! No worries :grin:

logflare_logger_backend has been updated to v0.8.1.

We’ve updated the deps and validated Elixir 1.12 and OTP 24 compatibility. Logflare prod is upgraded and sending logs to our staging env successfully.

Ideas for improvements very much welcomed :slight_smile:

2 Likes

Please update logflare_logger_backend to 0.9.0.

Improvements

  • #39
  • Added some logging around the backend init with version, and if it finds in-flight log events on init.
  • Cleaned up deps which were otherwise pulled in with logflare_api_client.

Fixes

  • Very occasionally log events were stuck in flight in the Repo. If the count of events stuck in flight was greater than the max_batch_size every single log event was in a separate request to Logflare, making every batch only contain one log event. This is fixed, and just in case we are checking for in-flight log events on boot, and resetting them such that they’ll get sent to Logflare per usual.
1 Like

logflare_logger_backend is now at 0.10.1

Improvements

  • Look for config variables in the system environment also. Prefix environment variables with LOGFLARE_ and it will use those for your :logflare_logger_backend config.
  • Updated mix logflare_logger.verify_config to look for system env variables also.

Fixes

  • Tests