All Projects → yabeda-rb → yabeda-graphql

yabeda-rb / yabeda-graphql

Licence: MIT license
Measure and understand how good your GraphQL-Ruby application works

Programming Languages

ruby
36898 projects - #4 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to yabeda-graphql

Graphql Ruby
Ruby implementation of GraphQL
Stars: ✭ 4,931 (+27294.44%)
Mutual labels:  graphql-ruby
apollo-tracing-ruby
[Maintainers Wanted] Ruby implementation of GraphQL trace data in the Apollo Tracing format
Stars: ✭ 82 (+355.56%)
Mutual labels:  graphql-ruby
rails-graphql-generator
Generate GraphQL Types and Mutations For Rails Apps
Stars: ✭ 21 (+16.67%)
Mutual labels:  graphql-ruby
realworld
"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by Next.js and Ruby on Rails 🏅
Stars: ✭ 113 (+527.78%)
Mutual labels:  graphql-ruby
graphql-ruby-sample
Sample application for demonstrating GraphQL Ruby on Rails integration
Stars: ✭ 16 (-11.11%)
Mutual labels:  graphql-ruby
graphql-remote loader
Performant remote GraphQL queries from within the resolvers of a Ruby GraphQL API.
Stars: ✭ 52 (+188.89%)
Mutual labels:  graphql-ruby
kanji
A strongly typed GraphQL API framework
Stars: ✭ 12 (-33.33%)
Mutual labels:  graphql-ruby
graphql-api
GraphQL-Api is an opinionated Graphql framework for Rails that supports auto generating queries based on Active Record models and plain Ruby objects
Stars: ✭ 58 (+222.22%)
Mutual labels:  graphql-ruby
yabeda-prometheus
Adapter to expose metrics collected by Yabeda plugins to Prometheus
Stars: ✭ 77 (+327.78%)
Mutual labels:  yabeda
yabeda-puma-plugin
Collects Puma web-server metrics from puma control panel
Stars: ✭ 62 (+244.44%)
Mutual labels:  yabeda

Yabeda::GraphQL

Gem Version Tests

Built-in metrics for GraphQL-Ruby monitoring out of the box! Part of the yabeda suite.

Get sample Grafana dashboard from Grafana.com #14774 or from grafana-dashboard.json file.

Installation

  1. Add the gem to your Gemfile:

    gem 'yabeda-graphql'
    
    # Then add monitoring system adapter, e.g.:
    # gem 'yabeda-prometheus'
    
    # If you're using Rails don't forget to add plugin for it:
    # gem 'yabeda-rails'
    # But if not then you should run `Yabeda.configure!` manually when your app is ready.

    And then execute:

    bundle install
  2. Hook it to your schema:

    class YourAppSchema < GraphQL::Schema
      use Yabeda::GraphQL
    end
  3. And deploy it!

And that is it! GraphQL metrics are being collected!

Metrics

  • Fields resolved count: graphql_fields_request_count (segmented by type name, field name and deprecated flag)
  • Field resolve runtime: graphql_field_resolve_runtime (segmented by type name, field name and deprecated flag)
  • Queries executed count (root query fields): query_fields_count (segmented by query name and deprecated flag)
  • Mutations executed (root mutation fields): mutation_fields_count (segmented by query name and deprecated flag)

That is it for now, but more will come later.

Development

After checking out the repo, run bin/setup to install dependencies.

Then, run fololowing commands to run the tests against all supported versions of GraphQL-Ruby:

bundle exec appraisal rspec

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/yabeda-rb/yabeda-graphql.

Releasing

  1. Bump version number in lib/yabeda/graphql/version.rb

    In case of pre-releases keep in mind rubygems/rubygems#3086 and check version with command like Gem::Version.new(Yabeda::GraphQL::VERSION).to_s

  2. Fill CHANGELOG.md with missing changes, add header with version and date.

  3. Make a commit:

    git add lib/yabeda/graphql/version.rb CHANGELOG.md
    version=$(ruby -r ./lib/yabeda/graphql/version.rb -e "puts Gem::Version.new(Yabeda::GraphQL::VERSION)")
    git commit --message="${version}: " --edit
  4. Create annotated tag:

    git tag v${version} --annotate --message="${version}: " --edit --sign
  5. Fill version name into subject line and (optionally) some description (list of changes will be taken from changelog and appended automatically)

  6. Push it:

    git push --follow-tags
  7. GitHub Actions will create a new release, build and push gem into RubyGems! You're done!

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