Skip to content

hauxir/errorpush

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
app
 
 
 
 
 
 
 
 

Minimalist Error collection Service

Features

  • Compatible with any Rollbar client(see https://docs.rollbar.com/docs). Just change the endpoint URL to your errorpush URL.
  • Inserts all error logs into a single PostgreSQL table.

Why use this over Sentry/Rollbar?

  • Instant setup
  • Free
  • No rate limiting
  • When you don't need all the bells and whistles: just want to log all errors into a database.
  • Flexibility - use whatever you want to query the PostgresQL table for errors

Running

errorpush requires docker

docker run -p 5000:5000 -e ACCESS_TOKEN=<your_access_token_of_choice> -e POSTGRES_URI=postgres://username:password@yourhost.com/yourdb hauxir/errorpush:latest

That's it, just set up a reverse proxy and point your rollbar client to your server.

Example Query

SELECT error_id, Max(( ( BODY ->> 'trace' ) :: jsonb ->> 'exception' ) :: jsonb ->> 'class') AS EXCEPTION, Max(( ( BODY ->> 'message' ) :: jsonb ->> 'body' )) AS message, Count(*), Max(timestamp) AS last_seen FROM   errors GROUP  BY error_id ORDER  BY last_seen DESC;
             error_id             | exception |   message    | count |         last_seen          
----------------------------------+-----------+--------------+-------+----------------------------
 8cca0a18f56269b5a5243f7cc2906f79 | NameError |              |     4 | 2021-09-08 18:34:05.751548
 b6012c1be2bef37f570077f2ce2e908b |           |              |     2 | 2021-09-08 18:15:09.944348
 5acf76ad5f327d811ca9282b5d5a933a |           | Hello world! |     3 | 2021-09-08 18:15:09.944308
 794ef3b916db810d9162ad54aff32a14 |           | HEY          |     1 | 2021-09-08 18:12:19.705926
(4 rows)

Metabase

You can use metabase to visualize the data.

Screenshot 2021-09-11 at 00 14 58

PostgreSQL view for the above image:

create view error_report as 
select 
  error_id, 
  max(
    concat(
      coalesce(
        (
          (body ->> 'trace'):: jsonb ->> 'exception'
        ):: jsonb ->> 'class', 
        'Error'
      ), 
      ': ', 
      (
        (body ->> 'trace'):: jsonb ->> 'exception'
      ):: jsonb ->> 'message', 
      (body ->> 'message'):: jsonb ->> 'body'
    )
  ) as error, 
  count(*) as occurences, 
  max(timestamp) as last_seen, 
  max(
    array_to_string(
      array(
        select 
          concat(
            el ->> 'filename', ':', el ->> 'lineno'
          ) 
        from 
          jsonb_array_elements(
            (
              (body ->> 'trace'):: jsonb ->> 'frames'
            ):: jsonb
          ) as el 
        limit 
          4
      ), 
      ', '
    )
  ) as trace, 
  max(environment) as environment, 
  max(custom ->> 'revision') as revision 
from 
  errors 
group by 
  error_id 
order by 
  last_seen desc;

About

Minimalist Error collection Service compatible with Rollbar clients. Sentry or Rollbar alternative.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published