Giter Club home page Giter Club logo

randy-girard / app_perf Goto Github PK

View Code? Open in Web Editor NEW
386.0 32.0 41.0 9.61 MB

Open source application performance monitoring tool with emphasis on ease of setup and use. Providing similar functionality like NewRelic/AppNeta/Skylight etc.

Home Page: https://www.randygirard.com/open-source-application-performance-app/

License: MIT License

Ruby 33.98% JavaScript 23.16% HTML 1.06% Dockerfile 0.31% PLpgSQL 6.58% Procfile 0.04% SCSS 23.73% Haml 11.16%
application-monitoring performance-monitoring perf metrics monitor rails apm trace monitoring performance

app_perf's Introduction

AppPerf (Application Performance Monitoring)

Build Status

Join Slack using this link: https://join.slack.com/t/app-perf/shared_invite/zt-3opre7mb-OUBLj1iElF1EBuH86qSG5Q

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.

Prerequisites

Before you set up AppPerf, you need to make sure the following is installed and functional.

  • Yarn
  • Node
  • PostgreSQL
  • Mailcatcher, or another smtp mail server (In Development, if you want to send emails)

If you are on Mac, you should be able to install them with the following commands:

brew install yarn
brew install node
brew install postgresql

Setup (Localhost)

Setup should be straightforward 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 immediately!

Setup (Kubernetes)

AppPerf can be easily deployed to any Kubernetes cluster using Helm (both v3 and v2 supported) with the chart provided. There are a few simple steps for this:

  1. With Helm v3 you need to create a namespace first, i.e.:
kubectl create ns app-perf

The above is not required with Helm v2 since it creates the namespace automatically.

  1. Edit ./chart/values.yaml as needed with the required information, including connection strings for the Postgres and Redis databases and an optional ingress resource with TLS certificate to expose the app to the web.

  2. Finally you can install AppPerf with the following command:

helm upgrade --install \
  --namespace app-perf \
  -f ./chart/values.yaml \
  app-perf \
 ./chart

Default Login

AppPerf has a sample account allowing you to check out the application

username: [email protected]
password: password

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

app_perf's People

Contributors

0xflotus avatar anantkolvankar avatar constxife avatar inderps avatar jamesy829 avatar jannishuebl avatar matass avatar mvz avatar randy-girard avatar vitobotta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

app_perf's Issues

undefined method `boot_time' for Vmstat:Module (NoMethodError) in Windows 10

I, [2019-06-18T14:52:54.485883 #25108] INFO -- : Initializing with options: {:license_key=>"30b5805c-25d8-4fcd-875e-4fd9be32993e", :host=>"10.0.75.1:5000"}
I, [2019-06-18T14:52:54.499884 #25108] INFO -- : Loading CPU monitoring.
I, [2019-06-18T14:52:54.502884 #25108] INFO -- : Loading Disk monitoring.
I, [2019-06-18T14:52:54.505885 #25108] INFO -- : Loading Load monitoring.
I, [2019-06-18T14:52:54.509885 #25108] INFO -- : Loading Memory monitoring.
I, [2019-06-18T14:52:54.513891 #25108] INFO -- : Loading Network monitoring.
I, [2019-06-18T14:52:54.514885 #25108] INFO -- : Starting AppPerfAgent.
C:/Ruby223/lib/ruby/gems/2.2.0/gems/vmstat-2.3.1/lib/vmstat/snapshot.rb:24:in initialize': undefined method boot_time' for Vmstat:Module (NoMethodError)
from C:/Ruby223/lib/ruby/gems/2.2.0/gems/vmstat-2.3.1/lib/vmstat.rb:83:in new' from C:/Ruby223/lib/ruby/gems/2.2.0/gems/vmstat-2.3.1/lib/vmstat.rb:83:in snapshot'
from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin/system/cpu.rb:11:in initialize' from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin.rb:20:in new'
from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin.rb:20:in map' from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin.rb:20:in plugins'
from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/worker.rb:35:in collect' from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/worker.rb:23:in start'
from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/lib/app_perf_agent/cli.rb:27:in run' from C:/Ruby223/lib/ruby/gems/2.2.0/gems/app_perf_agent-0.0.7/exe/app_perf_agent:7:in <top (required)>'
from C:/Ruby223/bin/app_perf_agent:23:in load' from C:/Ruby223/bin/app_perf_agent:23:in

'

Window 10
Ruby 2.2.3

Has this project been abandoned?

Hi! I came thinking of trying this project again after a while but it seems it's not been updated recently. Have you abandoned the project? Thanks!

Ruby only?

Is it only meant to be an APM for Ruby or are you planning on supporting other languages like php?

:187:in `render_template'

Hi i was getting error
lib/app_perf_rpm/instruments/action_view.rb:187:in `render_template'
ArgumentError (wrong number of arguments (given 4, expected 1..3)):

Drive agent configuration from web app

I would like to provide the configuration of the agents (things like sample rates and thresholds, etc) from the web app. Provide a UI for managing these and have the agent receive and update these values either after a post of data, or on some interval.

Suggested Features to work on - WIP

Randy, just putting some ideas down here as I've explored the app. Getting traction on a project like this would be great, having a nice open source option to New Relic when you can't afford or can't send your data to cloud like my company makes this project attractive. I'd be happy to help. You can find my email if you'd prefer to discuss offline.

I'm using this issue to jot down ideas as come across them. I suggest we can discuss here and then break them into individual issues as you agree on their merit.

Less hard - A

  • Create app signup for admin (normal devise workflow). (requires basic SMTP setup)
  • after confirmation, the user can then add agent
  • Create basic admin CRUD to add users.
  • To keep simple at first have just roles: :admin, :reader. Admin can add other users to App and make alerts,etc (see below)
  • Need a means to filter many different URLs from tracing (heartbeat urls,etc)
  • Test agent on multiple Rubies using https://github.com/thoughtbot/appraisal (seems this is most important for stability and traction of app). Also picking which rubies you don't want to support now is important IMO. I personally feel the agent should be heavily tested and the most critical component to not affect an app using it.
  • Dockerize the app and put on registry (I've already started this for my own purposes), IMO this can help with traction. Make it dead easy for folks to kick the tires in a few minutes.
  • Create Test Heroku environment for Devs to pushes changes and try out (separate from main app).
  • ChatOps support, Slack, HipChat for alerts and also possibly create a process to monitor certain rooms and have limited ChatOps commands like:
    app_env alerts recent, app_env metrics prod_app.

Harder - B

  • Create a means to set error thresholds for variety of telemetry (slow queries, exceptions)
  • Add alerting (SMS) for when #1 conditions occur.
  • Custom regex filter for SQL sanitization (this is more personal for my use case as I have financial data in my applications, i.e. bank account numbers).

Long Term - C (pie in the sky)

  • Switch to purely Rails API for AppPerf and create simple UI based on React Native?, Vue,etc and a mobile,responsive.
  • Above allows folks to create their own UIs, mobile apps,etc.

App Perf Agent crashes on launch on macOS Mojave with Vmstat issue

11:52:56 agent.1 | I, [2019-02-06T11:52:56.494624 #26388] INFO -- : Loading Load monitoring.
11:52:56 agent.1 | I, [2019-02-06T11:52:56.495032 #26388] INFO -- : Loading Network monitoring.
11:52:56 agent.1 | I, [2019-02-06T11:52:56.495453 #26388] INFO -- : Loading CPU monitoring.
11:52:56 agent.1 | I, [2019-02-06T11:52:56.495807 #26388] INFO -- : Loading Memory monitoring.
11:52:56 agent.1 | I, [2019-02-06T11:52:56.496203 #26388] INFO -- : Loading Disk monitoring.
11:52:56 agent.1 | I, [2019-02-06T11:52:56.496568 #26388] INFO -- : Starting AppPerfAgent.
11:52:56 agent.1 | bundler: failed to load command: app_perf_agent (/usr/local/bin/app_perf_agent)
*11:52:56 agent.1 | NoMethodError: undefined method network_interfaces' for Vmstat:Module* 11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/vmstat-2.3.0/lib/vmstat/snapshot.rb:29:in initialize'
11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/vmstat-2.3.0/lib/vmstat.rb:83:in new' 11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/vmstat-2.3.0/lib/vmstat.rb:83:in snapshot'
11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/plugin/system/cpu.rb:11:in initialize' 11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/plugin.rb:20:in new'
11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/plugin.rb:20:in map' 11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/plugin.rb:20:in plugins'
11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/worker.rb:35:in collect' 11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/worker.rb:23:in start'
11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/lib/app_perf_agent/cli.rb:27:in run' 11:52:56 agent.1 | /Library/Ruby/Gems/2.3.0/gems/app_perf_agent-0.0.6/exe/app_perf_agent:7:in <top (required)>'
11:52:56 agent.1 | /usr/local/bin/app_perf_agent:22:in load' 11:52:56 agent.1 | /usr/local/bin/app_perf_agent:22:in <top (required)>'
11:52:56 agent.1 | exited with code 1
11:52:56 system | sending SIGTERM to all processes
11:52:56 worker.1 | 2019-02-06T16:52:56.512Z 26331 TID-ov6yrd9yc DEBUG: Got TERM signal
11:52:56 web.1 | Stopping web server... done
11:52:56 web.1 |
11:52:56 worker.1 | 2019-02-06T16:52:56.512Z 26331 TID-ov6yrd9yc INFO: Shutting down
11:52:56 web.1 |
11:52:56 worker.1 | 2019-02-06T16:52:56.512Z 26331 TID-ov6yrd9yc INFO: Terminating quiet workers

Allow dashboard panels to be dynamic

Create a repository of dashboard panels that show different data and allow users to build their dashboards how they want.

  • Allow panels to be resized (1, 2, 3, x columns?)
  • Drag and droppable.
  • Store to each user.
  • Panels page to select from

PG::UntranslatableCharacter: ERROR: unsupported Unicode escape sequence

99% of tasks in sidekiq completed with an error and the data is not displayed.

PG::UntranslatableCharacter: ERROR: unsupported Unicode escape sequence LINE 1: ...41534423828,11.723041534423828,'1ee4b11671ac41f1','{"compone... ^ DETAIL: \u0000 cannot be converted to text. CONTEXT: JSON

JSON::GeneratorError: Invalid Unicode

App_perf has a problem decoding data it receives from the application:

20:34:14 worker.1 | 2019-05-09T18:34:14.583Z 16521 TID-greqelkyx WARN: JSON::GeneratorError: Invalid Unicode [9c 8d 56 e1 6e] at 203 in 'SETEX kuko_limelight_cache:views/admin/task_instances/81115-20190502132338243064/tasks/176-20181001121933503019/task_states/970-20181001121933532399 1728000 o: ActiveSupport::Cache::Entry
20:34:14 worker.1 | :
@value"�v�x��V�n�6����(���
T?
20:34:14 worker.1 | U�� … '
20:34:14 worker.1 | 2019-05-09T18:34:14.583Z 16521 TID-greqelkyx WARN: /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/json/encoding.rb:22:in encode' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/json/encoding.rb:22:in encode'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activerecord-5.2.2.1/lib/active_record/type/json.rb:18:in serialize' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activemodel-5.2.2.1/lib/active_model/type/helpers/mutable.rb:8:in cast'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activemodel-5.2.2.1/lib/active_model/attribute.rb:175:in type_cast' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activemodel-5.2.2.1/lib/active_model/attribute.rb:42:in value'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activemodel-5.2.2.1/lib/active_model/attribute_set.rb:48:in fetch_value' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activerecord-5.2.2.1/lib/active_record/attribute_methods/read.rb:77:in _read_attribute'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activerecord-5.2.2.1/lib/active_record/attribute_methods/read.rb:40:in __temp__071697c6f61646' 20:34:14 worker.1 | /home/app_perf/app_perf/app/workers/open_tracing_worker.rb:178:in block in get_database_types'
20:34:14 worker.1 | /home/app_perf/app_perf/app/workers/open_tracing_worker.rb:178:in select' 20:34:14 worker.1 | /home/app_perf/app_perf/app/workers/open_tracing_worker.rb:178:in get_database_types'
20:34:14 worker.1 | /home/app_perf/app_perf/app/workers/open_tracing_worker.rb:193:in build_database_calls' 20:34:14 worker.1 | /home/app_perf/app_perf/app/workers/open_tracing_worker.rb:77:in process_data'
20:34:14 worker.1 | /home/app_perf/app_perf/app/workers/open_tracing_worker.rb:37:in perform' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/execution.rb:39:in block in perform_now'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:109:in block in run_callbacks' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/i18n-1.6.0/lib/i18n.rb:297:in with_locale'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/translation.rb:9:in block (2 levels) in <module:Translation>' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:118:in instance_exec'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:118:in block in run_callbacks' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/logging.rb:26:in block (4 levels) in module:Logging'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in block in instrument' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/notifications/instrumenter.rb:23:in instrument'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/notifications.rb:168:in instrument' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/logging.rb:25:in block (3 levels) in module:Logging'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/logging.rb:46:in block in tag_logger' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/tagged_logging.rb:71:in block in tagged'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/tagged_logging.rb:28:in tagged' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/tagged_logging.rb:71:in tagged'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/logging.rb:46:in tag_logger' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/logging.rb:22:in block (2 levels) in module:Logging'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:118:in instance_exec' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:118:in block in run_callbacks'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:136:in run_callbacks' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/execution.rb:38:in perform_now'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/execution.rb:24:in block in execute' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:109:in block in run_callbacks'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/railtie.rb:28:in block (4 levels) in <class:Railtie>' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/execution_wrapper.rb:87:in wrap'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/reloader.rb:73:in block in wrap' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/execution_wrapper.rb:83:in wrap'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/reloader.rb:72:in wrap' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/railtie.rb:27:in block (3 levels) in class:Railtie'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:118:in instance_exec' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:118:in block in run_callbacks'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/callbacks.rb:136:in run_callbacks' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/execution.rb:22:in execute'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activejob-5.2.2.1/lib/active_job/queue_adapters/sidekiq_adapter.rb:42:in perform' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:185:in execute_job'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:167:in block (2 levels) in process' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:128:in block in invoke'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/app_perf_rpm-0.2.4/lib/app_perf_rpm/instruments/sidekiq.rb:24:in call' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:130:in block in invoke'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/middleware/chain.rb:133:in invoke' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:166:in block in process'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:137:in block (6 levels) in dispatch' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/job_retry.rb:108:in local'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:136:in block (5 levels) in dispatch' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/rails.rb:43:in block in call'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/execution_wrapper.rb:87:in wrap' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/reloader.rb:73:in block in wrap'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/execution_wrapper.rb:87:in wrap' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/activesupport-5.2.2.1/lib/active_support/reloader.rb:72:in wrap'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/rails.rb:42:in call' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:132:in block (4 levels) in dispatch'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:243:in stats' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:127:in block (3 levels) in dispatch'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/job_logger.rb:8:in call' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:126:in block (2 levels) in dispatch'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/job_retry.rb:73:in global' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:125:in block in dispatch'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/logging.rb:48:in with_context' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/logging.rb:42:in with_job_hash_context'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:124:in dispatch' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:165:in process'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:83:in process_one' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/processor.rb:71:in run'
20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/util.rb:16:in watchdog' 20:34:14 worker.1 | /usr/local/rvm/gems/ruby-2.6.3@app_perf/gems/sidekiq-5.2.5/lib/sidekiq/util.rb:25:in block in safe_thread'

Trying to run on Mac OS El-Capitan, Puma return error

Hello,

After dealing with quite a lot of little issues I finally get foreman to launch!

10:55:33 web.1 | started with pid 58528
10:55:33 worker.1 | started with pid 58529
10:55:35 worker.1 | I, [2017-08-17T10:55:35.564844 #58529] INFO -- : Detecting runner...
10:55:35 worker.1 | I, [2017-08-17T10:55:35.565430 #58529] INFO -- : Puma detected. You're valid
10:55:35 worker.1 | I, [2017-08-17T10:55:35.565463 #58529] INFO -- : Initializing rack tracer.
10:55:35 worker.1 | I, [2017-08-17T10:55:35.565483 #58529] INFO -- : Initializing rack middleware tracer.
10:55:35 web.1 | => Booting Puma
10:55:35 web.1 | => Rails 4.2.5.2 application starting in development on http://0.0.0.0:5000
10:55:35 web.1 | => Run rails server -h for more startup options
10:55:35 web.1 | => Ctrl-C to shutdown server
10:55:35 web.1 | I, [2017-08-17T10:55:35.918930 #58528] INFO -- : Detecting runner...
10:55:35 web.1 | I, [2017-08-17T10:55:35.919692 #58528] INFO -- : Puma detected. You're valid
10:55:35 web.1 | I, [2017-08-17T10:55:35.919731 #58528] INFO -- : Initializing rack tracer.
10:55:35 web.1 | I, [2017-08-17T10:55:35.919750 #58528] INFO -- : Initializing rack middleware tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.910437 #58528] INFO -- : Detecting runner...
10:55:36 web.1 | I, [2017-08-17T10:55:36.911272 #58528] INFO -- : Puma detected. You're valid
10:55:36 web.1 | I, [2017-08-17T10:55:36.912132 #58528] INFO -- : Initializing actioncontroller tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.918572 #58528] INFO -- : Initializing actionview tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.921291 #58528] INFO -- : Initializing activerecord tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.921889 #58528] INFO -- : Initializing activerecord-import tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.923540 #58528] INFO -- : Initializing net-http tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.924038 #58528] INFO -- : Initializing redis tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.925358 #58528] INFO -- : Initializing sidekiq tracer.
10:55:36 web.1 | I, [2017-08-17T10:55:36.926687 #58528] INFO -- : Starting worker.
10:55:36 web.1 | I, [2017-08-17T10:55:36.926770 #58528] INFO -- : Worker is running.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.028715 #58529] INFO -- : Detecting runner...
10:55:37 worker.1 | I, [2017-08-17T10:55:37.029213 #58529] INFO -- : Puma detected. You're valid
10:55:37 worker.1 | I, [2017-08-17T10:55:37.029874 #58529] INFO -- : Initializing actioncontroller tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.030655 #58529] INFO -- : Initializing actionview tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.032426 #58529] INFO -- : Initializing activerecord tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.032829 #58529] INFO -- : Initializing activerecord-import tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.033956 #58529] INFO -- : Initializing net-http tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.034417 #58529] INFO -- : Initializing redis tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.035669 #58529] INFO -- : Initializing sidekiq tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.040169 #58529] INFO -- : Initializing sinatra tracer.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.040765 #58529] INFO -- : Starting worker.
10:55:37 worker.1 | I, [2017-08-17T10:55:37.040866 #58529] INFO -- : Worker is running.
10:55:37 web.1 | Puma 2.15.3 starting...
10:55:37 web.1 | * Min threads: 0, max threads: 16
10:55:37 web.1 | * Environment: development
10:55:37 web.1 | * Listening on tcp://0.0.0.0:5000

but once I try to access localhost:5000 on my browser I get :

10:55:41 web.1 | 2017-08-17 10:55:41 +0200: Rack app error: #<NoMethodError: undefined method type=' for nil:NilClass> 10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/app_perf_rpm-0.0.2/lib/app_perf_rpm/instruments/rack.rb:25:in block in call'
10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/app_perf_rpm-0.0.2/lib/app_perf_rpm/tracer.rb:43:in start_trace' 10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/app_perf_rpm-0.0.2/lib/app_perf_rpm/instruments/rack.rb:24:in call'
10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/railties-4.2.5.2/lib/rails/engine.rb:518:in call' 10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/railties-4.2.5.2/lib/rails/application.rb:165:in call'
10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/rack-1.6.8/lib/rack/content_length.rb:15:in call' 10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/puma-2.15.3/lib/puma/server.rb:541:in handle_request'
10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/puma-2.15.3/lib/puma/server.rb:388:in process_client' 10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/puma-2.15.3/lib/puma/server.rb:270:in block in run'
10:55:41 web.1 | /Users/edejour/.rvm/gems/ruby-2.3.0/gems/puma-2.15.3/lib/puma/thread_pool.rb:106:in `block in spawn_thread'

any idea ?

Proper Steps

Hi,

Can you update this site with proper steps that need to be followed in order to use App_Perf apm, or just a small video will also help?

OS: Windows 10

Official Docker Hub

Hello! I'm trying to use app_perf just like I use sentry, as a docker image that I add to my compose stack. However, there doesn't seem to be an official docker hub image and the one I've tried has difficulties.

I would love to help set this up as it would directly benefit me.

Here are the things I've identified:

  1. The dockerfile doesn't seem to be designed with production in mind
  2. The dockerfile runs migrations, but as sentry this should probably manually be done by the user
  3. The dockerfile runs multiple processes, but this should ultimately be handled by the upper level service (my docker-compose.yml, for example, like sentry)
  4. The database url isnt' designed for upper level service control. For example, sentry only needs a linked postgres, redis, & memchaced OR a SENTRY_(MEMCACHED|POSTGRES|REDIS)_(HOST|USER|PASSWORD) environment variable.

Not pickup .env

  1. I put my .env at root with following lines

POSTGRES_USERNAME="foo"
POSTGRES_PASSWORD="bar"
POSTGRES_HOSTNAME=""

Then error
PG::ConnectionBad: fe_sendauth: no password supplied

Question 2
Can we use in Intranet with SQL Server

Thanks
P Kul

Overhead?

Hi! I am playing with this app right now. I am looking to self host something like this because I can't use a traffic-based paid product or I will go bankrupt :D

I got it working with Docker and I was wondering how much is the overhead of tracing on top of requests etc? Is it lightweight enough or can it impact on the performance of my application somehow? How are traces captured?

I was also thinking to add a Helm chart for deployment to Kubernetes, since that's how I would use it. Would it be OK if I send a pull request if I do this?

Thanks in advance for any clarification :)

vmstat-2.3.1/lib/vmstat/procfs.rb:150:in `initialize': No such file or directory @ rb_sysopen - /proc/vmstat (Errno::ENOENT)

Ubuntu WSL Windows 10
Ruby 2.6.3
Tried start both bundle exec foreman start after bin/setup
and run seperate rails s and app_perf_agent

I, [2019-06-26T12:46:40.951870 #1004]  INFO -- : Initializing with options: {:license_key=>"30b5805c-25d8-4fcd-875e-4fd9be32993e", :host=>"localhost:5000"}
I, [2019-06-26T12:46:40.966285 #1004]  INFO -- : Loading CPU monitoring.
I, [2019-06-26T12:46:40.967592 #1004]  INFO -- : Loading Disk monitoring.
I, [2019-06-26T12:46:40.968686 #1004]  INFO -- : Loading Load monitoring.
I, [2019-06-26T12:46:40.969730 #1004]  INFO -- : Loading Memory monitoring.
I, [2019-06-26T12:46:40.970760 #1004]  INFO -- : Loading Network monitoring.
I, [2019-06-26T12:46:40.970805 #1004]  INFO -- : Starting AppPerfAgent.
Traceback (most recent call last):
        18: from /home/prateep/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `<main>'
        17: from /home/prateep/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `eval'
        16: from /home/prateep/.rvm/gems/ruby-2.6.3/bin/app_perf_agent:23:in `<main>'
        15: from /home/prateep/.rvm/gems/ruby-2.6.3/bin/app_perf_agent:23:in `load'
        14: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/exe/app_perf_agent:7:in `<top (required)>'
        13: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/cli.rb:27:in `run'
        12: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/worker.rb:23:in `start'
        11: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/worker.rb:35:in `collect'
        10: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin.rb:20:in `plugins'
         9: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin.rb:20:in `map'
         8: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin.rb:20:in `new'
         7: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/app_perf_agent-0.0.7/lib/app_perf_agent/plugin/system/cpu.rb:11:in `initialize'
         6: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/vmstat-2.3.1/lib/vmstat.rb:83:in `snapshot'
         5: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/vmstat-2.3.1/lib/vmstat.rb:83:in `new'
         4: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/vmstat-2.3.1/lib/vmstat/snapshot.rb:28:in `initialize'
         3: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/vmstat-2.3.1/lib/vmstat/procfs.rb:69:in `memory'
         2: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/vmstat-2.3.1/lib/vmstat/procfs.rb:150:in `procfs_file'
         1: from /home/prateep/.rvm/gems/ruby-2.6.3/gems/vmstat-2.3.1/lib/vmstat/procfs.rb:150:in `open'

authentication loop on /users/sign_in

Hello again,
I had an issue on CSRF :

Can't verify CSRF token authenticity

So in application_controller I had the line :

skip_before_action :verify_authenticity_token

I can now log in as the log describe :

14:01:13 web.1 | Processing by Devise::SessionsController#create as HTML
14:01:13 web.1 | Parameters: {"utf8"=>"✓", "authenticity_token"=>"ef3l/BOo61oCHzu6REn923ouuynH3m7mb42uW91UPSzSJvB8VBNbuDiM6h+1nZriIN4/Azlry09HsYRvci0iWA==", "user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]", "remember_me"=>"0"}, "commit"=>"Sign In"}
14:01:13 web.1 | User Load (1.1ms) SELECT "users".* FROM "users" WHERE "users"."email" = $1 ORDER BY "users"."id" ASC LIMIT 1 [["email", "[email protected]"]]
14:01:13 web.1 | (0.3ms) BEGIN
14:01:13 web.1 | SQL (0.5ms) UPDATE "users" SET "last_sign_in_at" = $1, "current_sign_in_at" = $2, "sign_in_count" = $3, "updated_at" = $4 WHERE "users"."id" = $5 [["last_sign_in_at", "2017-08-17 11:54:06.746905"], ["current_sign_in_at", "2017-08-17 12:01:13.214647"], ["sign_in_count", 3], ["updated_at", "2017-08-17 12:01:13.218107"], ["id", 1]]
14:01:13 web.1 | (0.8ms) COMMIT
14:01:13 web.1 | Redirected to http://localhost:5000/

but it seems I don't have the right to access Dashboard_controller :

14:01:13 web.1 | Processing by DashboardController#show as HTML 14:01:13 web.1 | Completed 401 Unauthorized in 1ms (ActiveRecord: 0.0ms)

Any idea ? does my skip_before_action broke it ? I'll keep searching on my side

Thanks ! Can't wait to test the product

Question - Error in Sidekiq Worker

@randy-girard Any idea what is cause for this error:

	about 3 hours ago	2	app_perf	AppPerfAgentWorker	
{"controller"=>"agent_listener", "action"=>"create", "protocol_version"=>"2", "license_key"=>"19509de2-d07d-470f-a8f5-aab940569d8", "_aj_hash_with_indifferent_access"=>true}, ""
Zlib::BufError: buffer error

Not running in docker-compose

Hi dev,
Please try to rerun the docker-compose that you have mentioned in the Main branch
mimemagic is now at 0.3.7 all the older versions does not exists.
I update the mimemagic to 0.3.7 which created the dependencies errors thanks and please look into this

++++++++++++++++++++++++++++++++++++++++++++++++++++++++
An error occurred while installing mimemagic (0.3.7), and Bundler cannot
continue.
Make sure that gem install mimemagic -v '0.3.7' --source 'https://rubygems.org/' succeeds before bundling.

In Gemfile:
rails was resolved to 6.0.3.2, which depends on
actionmailbox was resolved to 6.0.3.2, which depends on
activestorage was resolved to 6.0.3.2, which depends on
marcel was resolved to 0.3.3, which depends on
mimemagic
ERROR: Service 'website' failed to build: The command '/bin/sh -c gem install bundler -v '2.0.2' && bundle install' returned a non-zero code: 5
'''

Replace highcharts?

Highcharts is not free software, limiting what people can do with AppPerf. How about switching to Chart.js?

docker-compose?

You can enable users to spin the whole stack up easily with docker-compose.

With users being able to stack this up quickly, the adoption of this would be quicker.

Just my 10c to enhance this project.

Could not render layout: undefined method `compact' for nil:NilClass

This error can re-produced from same application in different VM Centos Servers.
But once we click to call same menu. Sometime no error, I don't know if it was the cache issue or code in application but all over with oters menu of the app as well.

Could not render layout: undefined method `compact' for nil:NilClass
Extracted source (around line #412):

    value = _layout(formats) if action_has_layout?
  rescue NameError => e
    raise e, "Could not render layout: #{e.message}"
  end

  if require_layout && action_has_layout? && !value

Simplify Setup

This application has a complicated setup process for the development environment with foreman and nginx and other non-standard things. I feel like this is will hinder adoption of this gem. As far as I can tell this is for your own custom setup. Can we clean this up so it it uses more conventional setup like most normal rails apps.

Mysql?

Is there any technical reason why MySQL can not be used?

Notes about setup

Hi,

Trying to setup your project, I encontered some problems:

./bin/setup

Fails because there are no JS runtimes on Gemfile:

ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes

I added therubyracer, and setup now works. Inspecting the Gemfile, execjs was pulled by bootstrap-sassand uglifyer. Wouldn't be better to use webpacker for this?

The second problem was related to webpacker. I didn't have node stuff installed, and I'm not a frontend guy, and since the readme doesn't mentions about this, I struggled for some time, until everything worked. Steps I took:

  1. Install node (via nvm)
  2. Install yarn
  3. rails webpacker:install

Something like this shouldn't be on the readme? Not sure if I did correctly because I don't have experience with webpacker, but the app seems to be running fine 😄

Thanks for your project, I'm very interested in helping. Do you have some kind of roadmap?

How it work

Hi there,
,
Can any one tell me how it work.?
To make it easy let me tell you if I understand correctly.

There are 3 components in this project

  1. Server which is the one here that we clone to install using ./bin/setup (with Docker created and run on any OS right ?
    a. It now only run in Postgresql
    b. It can work in internet / or closed environment (Intranet)
  2. Application which is the one we can add in the Server with proper license key information gen by Server with need code put in config/initializers/any_file_name.rb
    a. It can run on almost any rails versions
    b. Any databases eg. Mongodb, Postgresql, SQL, MySQL
    1. That what I am not sure, it must depend on the gem app_perf right?
    2. gem app_perf handle all tracking / sanitization the data before send to server
      Is it one way sending ?
      or Two Way (as it (can / may) controlled by Server to setup needed parameter from Application (which don't have yet))
  3. Communication between 1 and 2
    Applications act as client send data to Server using license key info it both register at (what?)
    but if not as README it must be the same host which only work between port ?
    Then how the Application and Server work in closed environment it must have some place to let each know which IP to send and receive data
    Question:
  4. Now with generated key from Server to put in config/initializers/any_file.rb it worked in same host only
  5. Or if that key gen from registered with (anyone) then it can be anywhere in the net.
  6. That mean different servers in intranet it won't work right ?
  7. The client will not send anything if no activity, So to test we need to keep click the Application to have something that agent in gem can send data to Server to keep in database and display righ ?

Please correct if I am wrong
Thanks
PKul

Not collect all data or just sampling ?

Not sure this should be problem/bug or just feature that collect only sample.
I would be nice to trace all events all time. If so what we test run compare same application on different setup it 's not seem to collect all click.
It just happened when we tried to compare performance of our different version of own Application as shown.

The first one not collect some click in menu as compare with the second one.

App1 access

This is the second App click at the same time, seem to collect most of the click.

App2 access

Webpacker::Manifest::MissingEntryError in Dashboard#show

Showing /home/QA-USA/pkul/app/app_perf/app/views/layouts/application.html.haml where line #24 raised:

Webpacker can't find application in /home/QA-USA/pkul/app/app_perf/public/packs/manifest.json. Possible causes:

  1. You want to set webpacker.yml value of compile to true for your environment
    unless you are using the webpack -w or the webpack-dev-server.
  2. webpack has not yet re-run to reflect updates.
  3. You have misconfigured Webpacker's config/webpacker.yml file.
  4. Your webpack configuration is not creating a manifest.
    Your manifest contains:
    {
    "entrypoints": {}
    }

First login failure , password and user , not access

hello there recently installed your open source software to apply some tests, I really liked the idea and the approach, in this case it would be the app_perf, of this repository https://github.com/randy-girard/app_perf/tree / master

Well, I did the installation via docker, it worked very well, however, I'm having trouble logging in, the default login I found in the repo, it didn't work, I would like to know how you could help me when I do that, I am at wait .

Thanks

host Shown unknown data

In Hardware Menu
It's always shown same 2 lines in diifferent servers Application s
hosts

  1. Why 2 data in one host
  2. Why each host has same 2 lines of data.
    Remark:
    In app_perf_agent license number it was given different number than app_perf_rpm or app_perf license number.

Discuss code layout.

Randy send me an email when you have a moment. I have some questions I'd rather not litter this project with.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.