Skip to content

Latest commit

 

History

History
79 lines (53 loc) · 2.35 KB

File metadata and controls

79 lines (53 loc) · 2.35 KB

Sentry.jl

Build Status

Acknowledgement

This is a update on SentryIntegration.jl that works in modern julia without relying on unregistered packages.

Basic Sentry Functionality

The Sentry Developer Documentation states:

At its core an SDK is a set of utilities for capturing data about an exceptional state in an application. Given this data, it then builds and sends a JSON payload to the Sentry server.

The following items are expected of production-ready SDKs:

  • DSN configuration
  • Graceful failures (e.g. Sentry server is unreachable)
  • Setting attributes (e.g. tags and extra data)
  • Support for Linux, Windows and OS X (where applicable)

DSN Configuration

Call Sentry.init() with the ENV variable SENTRY_DSN set to your DSN, or pass the DSN as a variable, as in:

Sentry.init("https://0000000000000000000000000000000000000000.ingest.sentry.io/0000000")

Setting Attributes

You can set tags using the set_tag function.

Sentry.set_tag("customer", customer)
Sentry.set_tag("release", string(VERSION))
Sentry.set_tag("environment", get(ENV, "RUN_ENV", "unset"))

Capturing Exceptional State

Messages are sent out via capture_exception and capture_message:

# At a high level in your app/tasks (to catch as many unhandled exceptions as
# possible)
try
    core_loop()
catch exc
    capture_exception(exc)
    # Maybe rethrow here
end

You can control the priority level of the message using the second argument to capture_message:

capture_message("Boring info message")
capture_message("An external REST request was received for an API ($api_name) that is unknown",
                Warn)
capture_message("Should not have got here!", Error)

Attachments can be included along with the message using the attachments argument:

capture_message("Noticed an 'errors' field in the GQL REST return:",
                Warn,
                attachments=[(;command, response)])

Graceful Failures

Work in progress...

Supported Operating Systems

Should work anywhere julia does!