All Projects → scoutapp → Ruby_server_timing

scoutapp / Ruby_server_timing

Licence: mit
Bring Rails server-side performance metrics 📈 to Chrome's Developer Tools via the Server Timing API. Production Safe™.

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Ruby server timing

Scouter
Scouter is an open source APM (Application Performance Management) tool.
Stars: ✭ 1,792 (+252.76%)
Mutual labels:  monitoring, apm, performance
Scouter Paper
scouter-paper is a web client software for scouter
Stars: ✭ 183 (-63.98%)
Mutual labels:  monitoring, apm, performance
Pinpoint C Agent
It is an agent written by C++, PHP, python languages. And we hope to support other languages by this agent. Until now, it supports [PHP],[C/C++] and [PYTHON].
Stars: ✭ 188 (-62.99%)
Mutual labels:  monitoring, apm, performance
Myperf4j
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
Stars: ✭ 2,281 (+349.02%)
Mutual labels:  monitoring, apm, performance
App perf
Open source application performance monitoring tool with emphasis on ease of setup and use. Providing similar functionality like NewRelic/AppNeta/Skylight etc.
Stars: ✭ 353 (-30.51%)
Mutual labels:  monitoring, apm, performance
Inspectit
inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.
Stars: ✭ 513 (+0.98%)
Mutual labels:  monitoring, apm, performance
Javamelody
JavaMelody : monitoring of JavaEE applications
Stars: ✭ 2,486 (+389.37%)
Mutual labels:  monitoring, apm, performance
Stagemonitor
an open source solution to application performance monitoring for java server applications
Stars: ✭ 1,664 (+227.56%)
Mutual labels:  monitoring, apm, performance
Pinpoint
APM, (Application Performance Management) tool for large-scale distributed systems.
Stars: ✭ 11,883 (+2239.17%)
Mutual labels:  monitoring, apm, performance
Easy Monitor
企业级 Node.js 应用性能监控与线上故障定位解决方案
Stars: ✭ 2,451 (+382.48%)
Mutual labels:  monitoring, performance
Snmpcollector
A full featured Generic SNMP data collector with Web Administration Interface for InfluxDB
Stars: ✭ 216 (-57.48%)
Mutual labels:  monitoring, performance
Watchdoginspector
Shows your current framerate (fps) in the status bar of your iOS app
Stars: ✭ 497 (-2.17%)
Mutual labels:  monitoring, performance
Apm Agent Go
Official Go agent for Elastic APM
Stars: ✭ 269 (-47.05%)
Mutual labels:  monitoring, apm
Metered Rs
Fast, ergonomic metrics for Rust
Stars: ✭ 258 (-49.21%)
Mutual labels:  monitoring, performance
Pyroscope
Continuous Profiling Platform! Debug performance issues down to a single line of code
Stars: ✭ 4,816 (+848.03%)
Mutual labels:  monitoring, performance
Cat
CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC框架,RPC框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。
Stars: ✭ 16,236 (+3096.06%)
Mutual labels:  monitoring, apm
Grav
Performance visualisation tools
Stars: ✭ 262 (-48.43%)
Mutual labels:  monitoring, performance
Doraemonkit
一款面向泛前端产品研发全生命周期的效率平台。
Stars: ✭ 18,305 (+3503.35%)
Mutual labels:  monitoring, performance
Rails performance
Monitor performance of you Rails applications
Stars: ✭ 345 (-32.09%)
Mutual labels:  apm, performance
Trace Nodejs
Trace is a visualised distributed tracing platform designed for microservices.
Stars: ✭ 471 (-7.28%)
Mutual labels:  monitoring, performance

Server Timing Response Headers for Rails

Bring Ruby on Rails server-side performance metrics 📈 to Chrome's Developer Tools (and other browsers that support the Server Timing API) via the server_timing gem. Production Safe™.

Metrics are collected from the scout_apm gem. A Scout account is not required.

server timing screenshot

Gem Installation

Add this line to your application's Gemfile:

gem 'server_timing'

And then execute:

$ bundle

Configuration

A minimal Scout config file is required. The server_timing gem reports metrics collected by the scout_apm gem (added as a dependency of server_timing).

If you don't have a Scout account, copy and paste the following minimal configuration into a RAILS_ROOT/config/scout_apm.yml file:

common: &defaults
  monitor: true

production:
  <<: *defaults

If you have a Scout account, no extra configuration is required. If you wish to see server timing metrics in development, ensure monitor: true is set for the development environment in the scout_apm.yml file.

See the scout_apm configuration reference for more information.

Browser Support

  • Chrome 65+ (Chrome 64 uses an old format of the server timing headers. This isn't supported by the gem).
  • Firefox 59+
  • Opera 52+

Instrumentation

Auto-Instrumentation

By default, the total time consumed by each of the libraries scout_apm instruments is reported. This includes ActiveRecord, HTTP, Redis, and more. View the full list of supported libraries.

Custom Instrumentation

Collect performance data on additional method calls by adding custom instrumentation via scout_apm. See the docs for instructions.

Security

  • Non-Production Environments (ex: development, staging) - Server timing response headers are sent by default.
  • Production - The headers must be enabled.

Response headers can be enabled in production by calling ServerTiming::Auth.ok!:

# app/controllers/application_controller.rb

before_action do
  if current_user && current_user.admin?
    ServerTiming::Auth.ok!
  end
end

To only enable response headers in development and for admins in production:

# app/controllers/application_controller.rb

before_action do
  if current_user && current_user.admin?
    ServerTiming::Auth.ok!
  elsif Rails.env.development?
    ServerTiming::Auth.ok!
  else
    ServerTiming::Auth.deny!
  end
end

Overhead

The scout_apm gem, a dependency of server_timing, applies low overhead instrumentation designed for production use.

Development

After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/scoutapp/ruby_server_timing.

License

The gem is available as open source under the terms of the MIT License.

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].