Integrated Sentry Error Tracking

Hey all!

We’ve been using Sentry forever, for all of our projects. They’re the de facto error tracking tool for most of the internet. So, we partnered up with them: Sentry is generously giving each Fly.io organization an auto-provisioned account with a year’s worth of credits on their Team plan.

Check out the documentation for more details: Error Tracking by Sentry · Fly Docs

Once we officially launch, all new Fly.io apps will get a Sentry project automatically, and get SENTRY_DSN set as a secret.

But, you can add Sentry to any project today with:

flyctl ext sentry create

Then, to visit your app errors dashboard:

flyctl apps errors

The dash should direct you to instructions for instrumenting your app. If it’s a Rails app, it should get auto-instrumented.

We’d love feedback before we officially launch, which should happen within days of this posting.

17 Likes

This is great news – any idea whether and how existing Sentry customers can avail of this?

1 Like

Hi @shugel - we don’t plan to reconcile this for existing Sentry customers- If you deploy an app through Fly you’d get a new Sentry Org with these credits

Aside from setting up account and environment secret, is there any other Sentry features that are integrated in any way? Off the top of my head, thinking about Releases, does fly deploy automatically create a new Release in Sentry?
Automatically adding context to errors like Fly Machine ID or Region might be nice too, but guessing those would need to be done in the app Sentry SDK. Might be a good example snippet in the docs.

1 Like

We’ll be adding release tracking soon after launch. Keep the ideas coming!

3 Likes

Hi,

Is there any way to tie two different Fly apps to the same Sentry project? To e.g., then use the Sentry Environment tag to differentiate between a staging and production Fly app, rather than having two completely separate Sentry projects?

Can you use the same sentry DSN. Go into a existing app -

fly ssh console -s (lets you select the instance)

Then -

echo SENTRY_DSN

Copy and past output. Then in your other app -

fly set secret SENTRY_DSN=<output>

That being said, I don’t know if its a good idea.

In Sentry you specify the language, and with some like Go, you even specify if its net/http or fasthttp framework as a example.

So if your two apps are not the same language, that can cause confusion. Additionally, if you have the same method names, it would be hard to tell the source if both main() as a entry point, and one has a error, which one is it?

Also you loose benefits like release tracking (being added soon) and other features that keeping that apps separate benefit from.

But in theory, sentry only knows the source because it connects via the DSN. Same DSN, should view it as the same source.

But you bring up a EXCELLENT point, because in progress.groups, which is when you define multiple processes in your fly.toml, but they share the same Fly app, and the same Dockerfile, and the same ENV. How does sentry handle process groups, especially when they are different sources?

Good question for the fly.io folks =)

:smiling_face_with_tear:

@Yaeger Where did you see this error page?

Right now there’s no way to do this besides what was suggested by @Zane_Milakovic - copy and paste the Sentry DSN. In the future, we might add attach/detach commands to make this work for all kinds of extensions.

Regarding process groups, that’s an interesting case. Most people are using process groups with the same codebase, but it’s worth considering how this could be handled. Right now the problem would be that both process groups share environment variables.

1 Like

Have you considered integrating Sentry? Then you would know :eyes:

All jokes aside, it’s just the the /sentry page, for multiple apps btw. One example: Sign In · Fly

I’m getting the same error as @Yaeger when I try to access the /sentry page of one of my apps. Also, when I open the email link I got to finish setting up my Sentry account that got automatically created by Fly and click the Log in with Fly.io button I get the following error.
image

Thanks for the reports. I wasn’t able to reproduce, but we’re looking into it!

This issue should be fixed. Can you confirm?

Not fixed. Same 500 error. For the app that I mentioned in my previous post.

I also have the same error as Yaeger when I click on the “Sentry Errors” link within my app dashboard

I can confirm my errors were fixed! I was able to correctly log into Sentry using my Fly account. Thank you very much!

@Yaeger @pepito2k Does this also happen from the CLI using flyctl apps errors?

UPDATE: I finally found the error report for this. Looking into it. Thanks for calling it out!

UPDATE #2: Now the 500 error page should be fixed for all apps.

1 Like

it works! thanks for looking into it

So this is apparently not quite accurate, these aren’t credits. Here’s the response I got from Sentry.io support when enquiring about how to pay for an overage:

So if you want to go over the included free usage, you need to forfeit the free usage, pay for what you were getting for free, then pay for the extra on top.

2 Likes