Skip to content

Files

Latest commit

 

History

History

benchmarks

GraphQL Debugger Benchmarks

Welcome to GraphQL Debugger Benchmarks! This repository contains benchmarks for various GraphQL servers.

All servers implement a simple schema:

type Query {
  hello: String!
}

The returned string is always world.

The API is served over HTTP using a common web server and load tested using bombardier.

Benchmarks

These are the servers that are benchmarked:

  • yoga
  • yoga-otel-batch
  • apollo
  • yoga-otel
  • yoga-debugger
  • apollo-otel-batch
  • helix-otel-batch
  • helix
  • apollo-debugger
  • apollo-otel
  • helix-debugger
  • helix-otel

The ones tagged otel create a span using standard OpenTelemetry instrumentation. The ones with otel-batch use the OpenTelemetry batch processor to create a span, related to open-telemetry/opentelemetry-js#4741.

The ones with debugger use the GraphQL Debugger to create a span. We use the standard OTEL lib's in our implementation and we use our own benchmarks to ensure quality.

Else, is a standard GraphQL server without usage of any OTEL libs.

Results

Name Language Server Latency avg Requests
yoga Node.js http 14.61ms 14kps
yoga-otel-batch Node.js http 20.38ms 9.9kps
apollo Node.js Express 32.80ms 6.1kps
yoga-otel Node.js http 33.39ms 6.0kps
yoga-debugger Node.js http 35.88ms 5.6kps
apollo-otel-batch Node.js Express 39.53ms 5.1kps
helix-otel-batch Node.js http 51.57ms 3.9kps
helix Node.js http 51.73ms 3.9kps
apollo-debugger Node.js Express 53.00ms 3.8kps
apollo-otel Node.js Express 55.64ms 3.6kps
helix-debugger Node.js http 62.34ms 3.2kps
helix-otel Node.js http 68.11ms 2.9kps