Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I increase the max length of captured Python parameters in Sentry?

I'm using sentry-python==0.5.3 in a Django 1.11.6 project, and when I inspect a stacktrace's parameter list, I see some of the values are long enough to be cut off by a ... elipsis. I want to see the entire value.

How do I configure sentry-python to show the entire parameter value in the stacktrace?

Here's how I'm calling the init function in my Django config:

sentry_sdk.init(
    dsn="sentry dsn",
    integrations=[DjangoIntegration()],
    send_default_pii=True
)
like image 453
Nathan Jones Avatar asked Dec 10 '18 03:12

Nathan Jones


2 Answers

I just found this in the sentry-sdk python source code: https://github.com/getsentry/sentry-python/blob/0.12.2/sentry_sdk/utils.py#L36

and indeed:

sentry_sdk.utils.MAX_STRING_LENGTH = 8192 # undocumented truncation length as of v0.12.2

after sentry_sdk.init works as expected (the sentry web client displays the entire error message instead of ... after the first 512 characters).

Note that, as @Markus Unterwaditzer mentions, sentry's server may still do some truncation, but I haven't encountered it with error messages ~5000 characters in length. Hopefully the stack trace and breadcrumbs get truncated before the error message itself.

like image 58
user2561747 Avatar answered Nov 17 '22 11:11

user2561747


I just found this in the sentry-sdk Python source code, which makes me think it's not yet possible to configure this in the new SDK.

# TODO: read max_length from config

https://github.com/getsentry/sentry-python/blob/9f15a4027615d40cfdb37375233bc903d3cc753e/sentry_sdk/utils.py#L626

like image 32
Nathan Jones Avatar answered Nov 17 '22 11:11

Nathan Jones