GithubHelp home page GithubHelp logo

tombruijn / appsignal-elixir_js_plug Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 1.0 32 KB

A plug for sending JavaScript errors to AppSignal

Home Page: https://docs.appsignal.com/front-end/error-handling.html

License: MIT License

Elixir 100.00%
elixir plug phoenix javascript front-end appsignal error-monitoring

appsignal-elixir_js_plug's Introduction

AppSignal for Elixir JavaScript Plug

โš ๏ธ This Plug is deprecated. Please use the official AppSignal JavaScript front-end integration instead.

A plug for sending JavaScript errors to AppSignal. Works for Phoenix and Plug-only apps.

Note: This is not an official AppSignal package. It's is not supported by AppSignal. Use at your own risk.

Usage

Add the following parser to your endpoint.ex file.

plug Plug.Parsers,
  parsers: [:urlencoded, :multipart, :json],
  pass: ["*/*"],
  json_decoder: Poison

plug Appsignal.JSPlug # Above your app's router plug
plug MyExampleApp.Router

Now send the errors with a POST request to the /appsignal_error_catcher endpoint. An example JavaScript is provided on the AppSignal docs website in the Front-end error handling section.

For more information see the AppSignal Front-end error handling Beta docs.

Installation

Make sure to install the AppSignal for Elixir package first by following the installation guide.

After having successfully installed AppSignal add appsignal_js_plug to your list of dependencies in mix.exs.

# mix.exs
def deps do
  [
    {:appsignal, ">= 1.3.0"},
    {:appsignal_js_plug, "~> 0.2"}
  ]
end

Then run mix deps.get.

Configuration

filter_parameters

This package listens to the AppSignal for Elixir filter_parameters configuration option. If this option is set, all parameters values matching a key name from the configuration will be replaced with [FILTERED].

# config/appsignal.exs
config :appsignal, :config, filter_parameters: ["password"]

skip_session_data

This package listens to the AppSignal for Elixir skip_session_data configuration option. If this option is set to true, no session data will be added to the JavaScript errors.

# config/appsignal.exs
config :appsignal, :config, skip_session_data: true

Development

Testing

Package testing is done with ExUnit and can be run with the mix test command. You can also supply a path to a specific file path you want to test and even a specific line on which the test you want to run is defined.

mix deps.get
mix test
mix test test/appsignal/some_test.ex:123

Publishing new versions

  1. Merge the develop branch to master if necessary.
  2. Update the version number in mix.exs, e.g. 1.2.3
  3. Commit the change.
  4. Tag the commit with the version number: git tag 1.2.3
  5. Push the changes: git push origin master 1.2.3
  6. Publish the package: mix hex.publish

License

The AppSignal for Elixir JavaScript Plug package source code is released under the MIT License. Check the LICENSE file for more information.

appsignal-elixir_js_plug's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

lucasmazza

appsignal-elixir_js_plug's Issues

IE11 "(no backtrace error)" issue

First of all, thanks for the library.

The plug sometimes throws an error when handling IE11 errors. Here is the elixir error I'm getting:

Protocol.UndefinedError: protocol Enumerable not implemented for "(no backtrace error)". This protocol is implemented for: Ecto.Adapters.SQL.Stream, Postgrex.Stream, Floki.HTMLTree, DBConnection.PrepareStream, DBConnection.Stream, Timex.Interval, Tensor, Scrivener.Page, Range, HashDict, List, GenEvent.Stream, Map, IO.Stream, HashSet, Stream, Function, Date.Range, File.Stream, MapSet
(elixir) /elixir_1.8.0-1/lib/elixir/lib/enum.ex:1: Enumerable.impl_for!/1
(elixir) /elixir_1.8.0-1/lib/elixir/lib/enum.ex:141: Enumerable.reduce/3
(elixir) lib/enum.ex:3015: Enum.map/2
(appsignal) lib/appsignal/transaction.ex:220: Appsignal.Transaction.set_error/4
(appsignal_js_plug) lib/appsignal_js_plug.ex:63: Appsignal.JSPlug.call/2

Looks like Appsignal expects backtrace value to be an array but in this case the value is a string.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.