Skip to content

Commit 8c216dc

Browse files
Merge pull request #293 from getsentry/limit-size
limit size of message
2 parents 65ac26c + 382f94e commit 8c216dc

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

lib/sentry.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ defmodule Sentry do
132132
`opts` argument is passed as the second argument to `Sentry.send_event/2`.
133133
"""
134134
@spec capture_message(String.t(), Keyword.t()) :: send_result
135-
def capture_message(message, opts \\ []) do
135+
def capture_message(message, opts \\ []) when is_binary(message) do
136136
opts
137137
|> Keyword.put(:message, message)
138138
|> Event.create_event()

lib/sentry/client.ex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
defmodule Sentry.Client do
22
@behaviour Sentry.HTTPClient
3+
# Max message length per https://github.com/getsentry/sentry/blob/0fcec33ac94ad81a205f86f208072b0f57b39ff4/src/sentry/conf/server.py#L1021
4+
@max_message_length 8_192
35

46
@moduledoc ~S"""
57
This module is the default client for sending an event to Sentry via HTTP.
@@ -286,7 +288,7 @@ defmodule Sentry.Client do
286288
event_id: event.event_id,
287289
culprit: event.culprit,
288290
timestamp: event.timestamp,
289-
message: event.message,
291+
message: String.slice(event.message, 0, @max_message_length),
290292
tags: event.tags,
291293
level: event.level,
292294
platform: event.platform,

test/client_test.exs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ defmodule Sentry.ClientTest do
9595

9696
test "errors when attempting to report invalid JSON" do
9797
modify_env(:sentry, dsn: "http://public:secret@localhost:3000/1")
98-
unencodable_tuple = {:a, :b, :c}
98+
unencodable_event = %Sentry.Event{message: "error", level: {:a, :b}}
9999

100100
capture_log(fn ->
101-
assert :error = Sentry.capture_message(unencodable_tuple)
101+
assert :error = Sentry.Client.send_event(unencodable_event)
102102
end)
103103
end
104104

0 commit comments

Comments
 (0)