A simple tool to detect trends in log messages.
JavaScript Erlang Perl Shell Other
Switch branches/tags
Nothing to show
Pull request Compare This branch is 399 commits ahead of mhald:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
apps/popcorn
rel
.gitignore
Emakefile
LICENSE
Makefile
README.md
Vagrantfile
rebar
rebar.config
run.sh

README.md

Welcome to Popcorn, an aggregator and analyzer for your server logs. Its purpose is to provide a single interface where you can see what's going on in your code, what's happening with your servers and quickly detect problems caused by changes.

Table of Contents

  1. Overview
  2. Features
  3. Configuration
  4. Requirements
  5. Usage

Overview

Popcorn is a log aggregator and analyzer for your server logs. Its purpose is to provide a single interface where you can see what's going on in your code, what's happening with your servers and quickly detect problems caused by changes.

Features

  • Send logs in realtime using UDP, don't block your running app
  • Data encoded using protocol buffers for efficiency
  • Log messages are categorized by node, node type, node version, severity and date
  • Easily connect your app log messages from many platforms with available clients

Configuration

Add popcorn as a dependency to an existing Erlang/OTP app by adding a reference in the rebar.config file.

Add popcorn as a dependency to an existing Erlang/OTP app by adding a reference in the rebar.config file.

Your app should supply a configuration for popcorn, which includes the user authentication policy. Possible options in the config are:

  {popcorn, [
        {udp_listen_port, 9125},
        {http_listen_port, 9125},
        {http_auth_enabled, true},
        {http_auth_db_type, config},
        {http_auth_users, [{<<"log_user">>, <<"log_password">>}]},
        {log_retention, [{<<"debug">>,      {hours, 2}},
                         {<<"info">>,       {hours, 2}},
                         {<<"notice">>,     {hours, 2}},
                         {<<"warn">>,       {hours, 2}},
                         {<<"error">>,      {months, 1}},
                         {<<"critical">>,   {months, 1}},
                         {<<"alert">>,      {months, 1}},
                         {<<"emergency">>,  {months, 1}}]}
        ]} 

Requirements

  • Erlang R15B01 or later is required (for Cowboy dependency)

Usage

By default, the server will listen on port 9125 (both UDP and HTTP), so after running, visit http://{host}:9125 and you should see a login screen.

Thanks to the following: