/popcorn

A tool to detect trends in log messages.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

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.

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

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.

  • 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

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}}]}
        ]} 
  • Erlang R15B01 or later is required (for Cowboy dependency)

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: