크래시 리포트, 에러 트래킹이 필요하면 sentry
우와~ elixir를 지원하네. 바로 도입해서 사용했다. elixir를 지원하는 서비스가 없어서 비교도 필요 없었다. 써보니 웬걸. 좋구나.
에러에 추가 정보를 담을 수 있는 Context, 중요한 정보를 남겨 놓으면 에러와 같이 보내는 Breadcrumbs를 주로 사용한다. 기능이 많아서 안 써본 기능도 많다. 지원 플랫폼도 계속 늘어나고 있다. 최근에 Crashpad와 Breakpad도 지원하고 Unreal Engine 4까지 지원한다. 이제 고향 같은 C++로 가더라도 Sentry를 사용할 수 있다.
elixir 공식 라이브러리가 있다.
defp deps do
[
{:sentry, "~> 7.2"},
{:jason, "~> 1.1"}
]
end
mix.exs 파일에 추가한다.
config :logger,
backends: [:console, Sentry.LoggerBackend]
config.exs 파일에 추가한다. process 크래시를 감지해서 에러 메시지를 보낼 logger backend를 설치한다.
config :sentry,
dsn: "https://public_key@app.getsentry.com/1",
environment_name: Mix.env(),
included_environments: [:dev, :prod],
enable_source_code_context: true,
root_source_code_path: File.cwd!()
nil 사이트에서 프로젝트를 만들면 DSN(Data Source Name)을 발급받는다.
$ mix deps.get
$ MIX_ENV=dev mix sentry.send_test_event
Client configuration:
server: ...
public_key: ...
secret_key:
included_environments: [:dev, :prod]
current environment_name: :dev
hackney_opts: []
Sending test event...
Test event sent! Event ID: ...
설정이 제대로 됐다면 sentry에 테스트 이벤트가 등록된다. 간편하게 설정 테스트를 할 수 있다. 섬세하다.
사이드 프로젝트 slab에 sentry elixir 공식 클라이언트를 통합했다.
sentry 홈페이지 - Application Performance Monitoring & Error Tracking Software