Skip to content

Commit

Permalink
Merge pull request #10265 from tchak/yabeda-graphql
Browse files Browse the repository at this point in the history
chore(yabeda): add graphql metrics
  • Loading branch information
tchak authored Apr 22, 2024
2 parents e4d517b + c526497 commit 7d41482
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 1 deletion.
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,10 @@ gem 'view_component'
gem 'vite_rails'
gem 'warden'
gem 'webrick', require: false
gem 'yabeda-graphql'
gem 'yabeda-prometheus'
gem 'yabeda-puma-plugin'
gem 'yabeda-rails'
gem 'yabeda-sidekiq'
gem 'zipline'
gem 'zxcvbn-ruby', require: 'zxcvbn'
Expand Down
15 changes: 15 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -838,10 +838,22 @@ GEM
anyway_config (>= 1.0, < 3)
concurrent-ruby
dry-initializer
yabeda-graphql (0.2.3)
graphql (>= 1.9, < 3)
yabeda (~> 0.2)
yabeda-prometheus (0.9.1)
prometheus-client (>= 3.0, < 5.0)
rack
yabeda (~> 0.10)
yabeda-puma-plugin (0.7.1)
json
puma
yabeda (~> 0.5)
yabeda-rails (0.9.0)
activesupport
anyway_config (>= 1.3, < 3)
railties
yabeda (~> 0.8)
yabeda-sidekiq (0.12.0)
anyway_config (>= 1.3, < 3)
sidekiq
Expand Down Expand Up @@ -997,7 +1009,10 @@ DEPENDENCIES
web-console
webmock
webrick
yabeda-graphql
yabeda-prometheus
yabeda-puma-plugin
yabeda-rails
yabeda-sidekiq
zipline
zxcvbn-ruby
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,5 @@ La compatibilité est testée par Browserstack.<br>[<img src="app/assets/images/
[![View performance data on Skylight](https://badges.skylight.io/status/zAvWTaqO0mu1.svg)](https://oss.skylight.io/app/applications/zAvWTaqO0mu1)

Nous utilisons Skylight pour suivre les performances de notre application.

Par ailleurs, nous utilisons [Yabeda](https://github.com/yabeda-rb/yabeda) pour exporter des metriques au format prometheus. L'activation se fait via la variable d'environnement `PROMETHEUS_EXPORTER_ENABLED` voir config/env.example.optional .
1 change: 1 addition & 0 deletions app/graphql/api/v2/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ def handle_timeout(error, query)
use Timeout, max_seconds: 30
use GraphQL::Batch
use GraphQL::Backtrace
use Yabeda::GraphQL

if Rails.env.development?
class LogQueryDepth < GraphQL::Analysis::AST::QueryDepth
Expand Down
4 changes: 4 additions & 0 deletions config.ru
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,9 @@

require_relative "config/environment"

if ENV['PROMETHEUS_EXPORTER_ENABLED'] == 'enabled'
Yabeda::Prometheus::Exporter.start_metrics_server!
end

run Rails.application
Rails.application.load_server
2 changes: 1 addition & 1 deletion config/env.example.optional
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ REDIS_SIDEKIQ_PASSWORD='sentinel_and_redis_password'
REDIS_SIDEKIQ_USERNAME='sentinel_and_redis_username'

# configuration for prometheus metrics web server
# launched with sidekiq
# launched with sidekiq and puma
PROMETHEUS_EXPORTER_BIND="0.0.0.0"
PROMETHEUS_EXPORTER_PORT="9394"
PROMETHEUS_EXPORTER_ENABLED="disabled"
Expand Down
3 changes: 3 additions & 0 deletions config/initializers/prometheus_metrics.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
if ENV['PROMETHEUS_EXPORTER_ENABLED'] == 'enabled' && !Sidekiq.server?
Prometheus::Client.config.data_store = Prometheus::Client::DataStores::DirectFileStore.new(dir: Rails.root.join('tmp', 'prometheus'))
end
3 changes: 3 additions & 0 deletions config/puma.rb
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,6 @@

# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart

activate_control_app
plugin :yabeda

0 comments on commit 7d41482

Please sign in to comment.