Open source application performance monitoring tool with emphasis on ease of setup and use. Providing similar functionality like NewRelic/AppNeta/Skylight etc.
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
app Adds latency bands graph to overview Oct 12, 2018
bin Install .env.development on setup. Jan 7, 2017
config Adds latency bands graph to overview Oct 12, 2018
db Adds latency bands graph to overview Oct 12, 2018
doc Adds latency bands graph to overview Oct 12, 2018
lib Adds latency bands graph to overview Oct 12, 2018
log Initial commit Apr 30, 2016
public Massive overhaul Dec 30, 2016
scripts Adds start of external service tracking through data service. Testing… Jan 5, 2017
spec Removes organizations from open source version. Introduce dynamic_url… May 31, 2018
test Adds reporters and adds database section. Some error fixes too. May 20, 2016
vendor Removed more unused JS. May 31, 2018
.dockerignore Adds docker support. Nov 25, 2017
.env.development.example Adds docker support. Nov 25, 2017
.env.docker Updates docker compose config. Jan 10, 2018
.env.test Removes organizations from open source version. Introduce dynamic_url… May 31, 2018
.gitignore Fixes specs. Jan 15, 2018
.rspec Adds specs and coverage May 21, 2016
.ruby-version fix ruby version Jan 3, 2018
.travis.yml Create databases for travis. May 31, 2018
Capfile Added staging env and deployment work Jun 22, 2016
Dockerfile Adds app_perf_agent. Dec 31, 2017
Gemfile Removes organizations from open source version. Introduce dynamic_url… May 31, 2018
Gemfile.lock Update dependencies due to vulnerabilities. May 31, 2018
LICENSE #4: Add license. Jan 26, 2017
Procfile Removes organizations from open source version. Introduce dynamic_url… May 31, 2018
Procfile.nginx Adds start of external service tracking through data service. Testing… Jan 5, 2017
README.md Adds a slack link Dec 19, 2017
Rakefile #1: Updated to support SQLite, and use a simpler setup. Sep 13, 2016
_config.yml Set theme jekyll-theme-cayman Apr 16, 2018
config.ru Initial commit Apr 30, 2016
docker-compose.yml Updates docker compose config. Jan 10, 2018
supervisord.conf Adds app_perf_agent. Dec 31, 2017

README.md

AppPerf (Application Performance Monitoring)

Build Status

Join Slack using this link: https://join.slack.com/t/app-perf/shared_invite/enQtMjg4ODkyOTM1NDQzLTg1MmU5MTlmMmE3MDhjZDBkMDYzNDQyNTIxMjU4OWI2ZjUwOWM2OGYyZjU3YTMyZTNhMTMzMGZhYjFlZTlkMzQ

More images are at the bottom.

Overview

NOTE: This application is in extremely beginning stages and I am still working out flows and learning the data model. I will be cleaning code up as I go.

This is a application monitoring app. I am trying to build an open source, easy to setup, performance monitoring tool.

Setup (Localhost)

Setup should be striaghtforward and easy. We use foreman to manage processes. Begin by running the setup script:

./bin/setup

This should create and setup the database and any other needed services/apps. Then to start everything up, run foreman:

bundle exec foreman start

Setup (Docker)

AppPerf supports using Docker and Docker Compose. Just run the following and you should be good to go:

docker-compose build
docker-compose up

Navigate to http://localhost:5000. This application is setup to report to itself so you can begin seeing information immediatetly!

Using Other databases

SQLite has some limitation with concurrency in this app, as well as various date functions used for reporting. If you would rather test against postgresql (Mysql to come), you can run the following command to create a local development database running on port 5443 (Must have postgresql installed):

./bin/setup_psql

Note: Don't forget to update your config/database.yml file.

Adding Applications

App Perf will automatically detect new applications that are posting data and display them in the Applications page. From there you can go to each individual application to view the performance metrics.

In order to monitor an application, you have to add the Ruby Agent gem to the Gemfile:

gem "app_perf_rpm"

Once you have add the gem, Add the following lines to your project (or in an initializer):

require 'app_perf_rpm'

AppPerfRpm.configure do |rpm|
  rpm.license_key = "License Key"
  rpm.application_name = "Application Name"
end

You can get your license key by visiting the Applications tab and clicking the "New Application" button.

Adding servers

Install the App Perf Agent gem:

gem install app_perf_agent

Then run the following command on your server:

app_perf_agent --license LICENSE_KEY --host HOST

More information is on the Edit Organization page.

How the data model works

Adding metrics to App Perf is as simple as posting data to the following endpoint:

POST http://domain/api/listener/:protocol_version/:license_key

Currently the only protocol version supported is 2. License key is generated when you create a new user account. There is a default one that is used for testing in the .env.development file.

TODO: Add examples of how to submit data.

Contributing to the App Perf RPM or Agent

Clone the github project at https://github.com/randy-girard/app_perf_rpm or https://github.com/randy-girard/app_perf_agent somewhere locally, then run the following command for the RPM to force bundler to look at that specific path:

bundle config local.app_perf_rpm /path/to/local/app_perf_rpm

To remove this configuration, run the following command:

bundle config --delete local.app_perf_rpm

Trace

Database

Host

Error