All Projects → periskop-dev → periskop

periskop-dev / periskop

Licence: Apache-2.0 License
Exception Monitoring Service

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
Makefile
30231 projects
Dockerfile
14818 projects
HTML
75241 projects

Projects that are alternatives of or similar to periskop

bugsnag-java
Bugsnag error reporting for Java.
Stars: ✭ 51 (-60.16%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Go
Automatic panic monitoring for Go and Go web frameworks, like negroni, gin, and revel
Stars: ✭ 155 (+21.09%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Php
Bugsnag error monitoring and crash reporting tool for PHP apps
Stars: ✭ 475 (+271.09%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Ruby
Bugsnag error monitoring & reporting software for rails, sinatra, rack and ruby
Stars: ✭ 211 (+64.84%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Android Ndk
DEPRECATED - this project now lives at bugsnag/bugsnag-android
Stars: ✭ 42 (-67.19%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Python
Official bugsnag error monitoring and error reporting for django, flask, tornado and other python apps.
Stars: ✭ 69 (-46.09%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Cocoa
Bugsnag crash reporting for iOS, macOS and tvOS apps
Stars: ✭ 167 (+30.47%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Laravel
Bugsnag notifier for the Laravel PHP framework. Monitor and report Laravel errors.
Stars: ✭ 746 (+482.81%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Android
Bugsnag crash monitoring and reporting tool for Android apps
Stars: ✭ 990 (+673.44%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Bugsnag Node
[DEPRECATED] Please upgrade to our Universal JS notifier "@bugsnag/js" • https://github.com/bugsnag/bugsnag-js
Stars: ✭ 48 (-62.5%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
Periskop
Exception Monitoring Service
Stars: ✭ 115 (-10.16%)
Mutual labels:  errors, error-monitoring, exceptions, error-reporting
bugsnag-symfony
Bugsnag notifier for the Symfony PHP framework. Monitor and report errors in your Symfony apps.
Stars: ✭ 42 (-67.19%)
Mutual labels:  errors, error-monitoring, error-reporting
Bugsnag React Native
Error monitoring and reporting tool for native exceptions and JS errors in React Native apps
Stars: ✭ 374 (+192.19%)
Mutual labels:  error-monitoring, exceptions, error-reporting
Bugsnag Js
Javascript error handling tool for Bugsnag. Monitor and report JavaScript bugs & errors.
Stars: ✭ 625 (+388.28%)
Mutual labels:  error-monitoring, exceptions, error-reporting
Easybuggy
Too buggy web application
Stars: ✭ 189 (+47.66%)
Mutual labels:  errors, exceptions
sentry-testkit
A Sentry plugin to allow Sentry report interception and further inspection of the data being sent
Stars: ✭ 78 (-39.06%)
Mutual labels:  error-monitoring, error-reporting
bugsnag-vue
[DEPRECATED] This package now lives within the monorepo for our Universal JS notifier "@bugsnag/js" • https://github.com/bugsnag/bugsnag-js
Stars: ✭ 26 (-79.69%)
Mutual labels:  error-monitoring, error-reporting
raise if
one liner `raise Exception if condition` for Python
Stars: ✭ 15 (-88.28%)
Mutual labels:  errors, exceptions
TrackJS-Node
TrackJS Error Monitoring agent for NodeJS
Stars: ✭ 26 (-79.69%)
Mutual labels:  error-monitoring, error-reporting
backtrace-unity
First-class error reporting for the Unity game engine.
Stars: ✭ 99 (-22.66%)
Mutual labels:  error-monitoring, error-reporting

Build Status Gitter chat

Pull based, language agnostic exception aggregator for microservice environments.

Periskop scales well with the number of exceptions and application instances:

  • Exceptions are pre-aggregated in client libraries and stored efficiently in memory, while keeping a sample of concrete occurrences for inspection.
  • Exceptions are scraped and aggregated across instances by the server component.
  • More application instances result in longer refresh cycles but the memory usage remains constant.

A UI component is provided for convenience.

Scraping

Errors are scraped and aggregated using a configured endpoint from each of the instances discovered via service discovery.

Periskop supports all service discovery mechanisms supported by Prometheus. The configuration format for service discovery mirrors the one from Prometheus. See Prometheus's official documentation for reference.

A full example of service configuration for Periskop can be found in the sample configuration.

Format

The format for scraped errors is defined in a proto3 IDL. Currently the only supported protocol is snake_cased JSON over HTTP (example).

UI

The UI allows navigating and inspecting exceptions as they occur.

ui

Run project locally

Please see CONTRIBUTING.md

Building & Running

We are looking into distributing Periskop via Docker Hub. In the meantime, you can build and run Periskop from source:

docker build --tag periskop .
docker run -v path/to/config.yaml:/etc/periskop/periskop.yaml -p 8080:8080 periskop

Enable persistance storage

By default Periskop stores all the scrapped errors in memory repository. You can configure your Periskop deployment to use persistent storage. Currently the supported persistance storages are SQLite, MySQL and PostgreSQL.

For SQLite, add these lines to your config.yaml file:

repository:
  type: sqlite
  path: periskop.db

For MySQL:

repository:
  type: mysql
  dsn: user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local

For PostgreSQL:

repository:
  type: postgres
  dsn: host=localhost user=gorm password=gorm dbname=gorm port=9920 sslmode=disable

Alert reported exceptions

All reported errors are instrumented with Prometheus which provides alerting capabilities using Alertmanager. You can configure an alert when you reach some threshold of errors. Here's an example:

groups:
- name: periskop
  rules:
  - alert: TooManyErrors
    expr: periskop_error_occurrences{severity="error"} > 1000
    for: 5m
    labels:
      severity: critical    
    annotations:
      summary: "Too many errors on {{ $labels.service_name }}"
      description: "Errors for {{ $labels.service_name }}({{ $labels.aggregation_key }}) is {{ $value }}"
      dashboard: "https://periskop.example.com/#/{{ $labels.service_name }}/errors/{{ $labels.aggregation_key }}"

Pushgateway

See periskop-pushgateway if you want to use Periskop as push based metric system.

Client Libraries

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].