{"id":13509421,"url":"https://github.com/romul/airbrake-elixir","last_synced_at":"2026-02-18T21:02:47.071Z","repository":{"id":49187429,"uuid":"37764822","full_name":"romul/airbrake-elixir","owner":"romul","description":"An Elixir notifier to the Airbrake/Errbit.  System-wide error reporting enriched with the information from Plug and Phoenix channels.","archived":false,"fork":false,"pushed_at":"2023-03-28T18:07:02.000Z","size":55,"stargazers_count":27,"open_issues_count":3,"forks_count":14,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-24T05:46:56.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/romul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-06-20T09:33:06.000Z","updated_at":"2024-04-25T06:36:41.000Z","dependencies_parsed_at":"2022-09-15T21:25:27.213Z","dependency_job_id":"7063bf79-ec56-4368-979c-d4e607e894ed","html_url":"https://github.com/romul/airbrake-elixir","commit_stats":{"total_commits":66,"total_committers":10,"mean_commits":6.6,"dds":"0.19696969696969702","last_synced_commit":"d4d437ee2eec95e2d1b6441f01d6242433965798"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/romul/airbrake-elixir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romul%2Fairbrake-elixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romul%2Fairbrake-elixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romul%2Fairbrake-elixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romul%2Fairbrake-elixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/romul","download_url":"https://codeload.github.com/romul/airbrake-elixir/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/romul%2Fairbrake-elixir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29596125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T20:59:56.587Z","status":"ssl_error","status_checked_at":"2026-02-18T20:58:41.434Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T02:01:07.463Z","updated_at":"2026-02-18T21:02:47.053Z","avatar_url":"https://github.com/romul.png","language":"Elixir","funding_links":[],"categories":["Third Party APIs"],"sub_categories":[],"readme":"# Airbrake Elixir\n\n[![Build Status](https://travis-ci.org/romul/airbrake-elixir.svg?branch=master)](https://travis-ci.org/romul/airbrake-elixir)\n[![Hex Version](https://img.shields.io/hexpm/v/airbrake.svg \"Hex Version\")](https://hex.pm/packages/airbrake)\n\nCapture exceptions and send them to the [Airbrake](http://airbrake.io) or to your Errbit installation!\n\n## Installation\n\n```elixir\n# 1. Add :airbrake to applications list in your projects mix.exs\n\n# 2. Add it to your deps in your projects mix.exs\ndefp deps do\n  [\n    {:airbrake, \"~\u003e 0.6\"},\n    {:httpoison, \"~\u003e 1.0\"} # if you use Elixir 1.8+\n  ]\nend\n\n# 3. Open up your config/config.exs (or appropriate project config)\nconfig :airbrake,\n  api_key: System.get_env(\"AIRBRAKE_API_KEY\"),\n  project_id: System.get_env(\"AIRBRAKE_PROJECT_ID\"),\n  environment: Mix.env,\n  host: \"https://airbrake.io\" # or your Errbit host\n\nconfig :logger,\n  backends: [{Airbrake.LoggerBackend, :error}, :console]\n```\n\n## General usage\n\n**With Phoenix:**\n\n```elixir\ndefmodule YourApp.Router do\n  use Phoenix.Router\n  use Airbrake.Plug # \u003c- put this line to your router.ex\n\n  # ...\nend\n```\n\n```elixir\n  def channel do\n    quote do\n      use Phoenix.Channel\n      use Airbrake.Channel # \u003c- put this line to your web.ex\n      # ...\n```\n\n\n## Ignore some exceptions\n\nTo ignore some exceptions use `:ignore` key in config:\n\n```elixir\nconfig :airbrake,\n  ignore: MapSet.new([\"Custom.Error\"])\n\n# or\n\nconfig :airbrake,\n  ignore: fn(type, message) -\u003e\n    type == \"Custom.Error\" \u0026\u0026 String.contains?(message, \"silent error\")\n  end\n\n# or\n\nconfig :airbrake,\n  ignore: :all # to disable reporting\n```\n\n## Shared options for reporting data to Airbrake\n\nTo include with every report to Airbrake a set of optional data, include the `:options` key in the config. This can either\nbe a keyword list of options or a function that returns a keyword list of options. Keyword list keys that can be used are\n`:context`, `:params`, `:session`, and `:env`.\n\n### Options function in config\n\nA function for creating options for reporting should be declared in the config as a tuple of \n`{ModuleName, :function_name, 1}`. This function should take as an argument a keyword list, possibly empty and should\nreturn a keyword list. The function arity is always 1.\n\n```elixir\nconfig :airbrake,\n  options: {Web, :airbrake_options, 1}\n```\n\n### Options keyword list in config\n\nWhen options are provided as a keyword list in the configuration and a specific call to `Airbrake.report/2` includes \noptions in its parameters, the options will be merged, with the parameters taking precedence.\n\n```elixir\nconfig :airbrake,\n  options: [env: %{\"SOME_ENVIRONMENT_VARIABLE\" =\u003e \"environment variable\"}]\n```\n\n\n## Custom usage examples\n\n```elixir\n# Report an exception.\ntry do\n  String.upcase(nil)\nrescue\n  exception -\u003e Airbrake.report(exception)\nend\n```\n\n**With GenServer:**\n\n```elixir\ndefmodule MyServer do\n  # use Airbrake.GenServer instead of GenServer\n  use Airbrake.GenServer\n  # ...\nend\n```\n\n**With any process:**\n\n```elixir\n  Airbrake.monitor(pid)\n  # or\n  Airbrake.monitor(Registered.Process.Name)\n  # or with spawn\n  spawn(fn -\u003e \n    :timer.sleep(500)\n    String.upcase(nil)\n  end) |\u003e Airbrake.monitor\n```\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromul%2Fairbrake-elixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fromul%2Fairbrake-elixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fromul%2Fairbrake-elixir/lists"}