Merge pull request #10265 from tchak/yabeda-graphql

chore(yabeda): add graphql metrics
This commit is contained in:
Paul Chavard 2024-04-22 08:21:51 +00:00 committed by GitHub
commit 7d4148202c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 32 additions and 1 deletions

View file

@ -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'

View file

@ -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
@ -997,7 +1009,10 @@ DEPENDENCIES
web-console
webmock
webrick
yabeda-graphql
yabeda-prometheus
yabeda-puma-plugin
yabeda-rails
yabeda-sidekiq
zipline
zxcvbn-ruby

View file

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

View file

@ -147,6 +147,7 @@ class API::V2::Schema < GraphQL::Schema
use Timeout, max_seconds: 30
use GraphQL::Batch
use GraphQL::Backtrace
use Yabeda::GraphQL
if Rails.env.development?
class LogQueryDepth < GraphQL::Analysis::AST::QueryDepth

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -43,3 +43,6 @@ end
# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart
activate_control_app
plugin :yabeda