Crash/Error reporting services

Hello everyone,
So i was wondering are there any recommendations or guides for integrating any of the crash/error reporters such as: Sentry, Crashlytics, Bugsplat, etc…

Currently when server runtime crashes, i need to login onto machine and look in the logs, but i would like to setup something so i can instantly check, and these services provide that, just no clue how to integrate them on runtimes…

Any help would be greatly appreciated :slight_smile:
Thanks

@Eatos For server based crash reports you can use many many different services. Have a look at what the cloud provider offers that you already host on.

For game client crash reports my favourite service is Sentry but its very expensive at larger player counts because it is geared up for app developers rather than games. You’ll need to introduce sampling around the SDK usage to remain cost effective which loses some of granular errors you’d want to be able to debug. Alternatively have a look at a service like Backtrace which I’ve not used but heard good things about.

Yeah Sentry is great, and can get pricey if you don’t manage properly crash/error reports and true with more players count accross different platforms reporting price gets off the charts, but in terms of setup/visibility/tracking it is great :slight_smile:

What i mean for tracking and how to setup it was more in terms for server side which do i look for: go, or lua, and when i get the sdk how to well setup it…
That is what i am unfamiliar. My web based knowledge is mostly based around node and how to setup there crash/error reporting no big deal but here i am clueless so any help in that matter would be greatly appreciated.

P.S: What i am trying to achieve is when lua runtime crashes and gives error report to send that error report to web based services or something else, and right now i dont know should i make a somekind wrapper around each lua function so if it crashes it gets caught or should it be somehow write to go execution that is what i dont know :confused:

P.S: What i am trying to achieve is when lua runtime crashes and gives error report to send that error report to web based services or something else, and right now i dont know should i make a somekind wrapper around each lua function so if it crashes it gets caught or should it be somehow write to go execution that is what i dont know :confused:

I suggest you don’t wrap every function call with some kind of error capture logic. The game server already intercepts the stacktrace generated by the Lua and JS VMs which execute your custom game logic. They’re recorded to the game server logs. You can use any tools to read the server logs and parse them to receive error alerts on. I know of game teams that have used:

  • Stackdriver
  • CloudWatch Logging
  • Datadog
  • NewRelic
  • etc, etc.

Hmm…I wanted to go more of a Sentry way just to capture error messages, stack trace, and eventually match/request data and no to go log way :confused:
But yeah I see there is no such functionallity

If looking at the logs is current option what about integrating Graphana as full monitoring/logging service?

I wanted to go more of a Sentry way just to capture error messages, stack trace, and eventually match/request data and no to go log way :confused:

I don’t think using a service like Sentry as some kind of debugger event bus is the best approach. It would be difficult to leverage at sizeable player counts. I guess it could work if the main purpose is to turn it on in development but then I’m not sure what it affords over the structured logger with DEBUG level logs.

If looking at the logs is current option what about integrating Graphana as full monitoring/logging service?

Sure, Nakama supports Prometheus format for any APM metrics and you can parse the structured logs however you like. You can use Grafana if you want. :+1: