Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GraphQL instrumentation for tracing with OpenTelemetry #328

Merged
merged 2 commits into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@gasbuddy/service",
"version": "12.20.2",
"version": "12.21.0",
"description": "An opinionated framework for building configuration driven services - web, api, or job. Uses swagger, pino logging, express, confit, Typescript and Jest.",
"main": "build/index.js",
"scripts": {
Expand Down Expand Up @@ -55,7 +55,7 @@
"@opentelemetry/instrumentation-dns": "^0.31.4",
"@opentelemetry/instrumentation-express": "^0.32.3",
"@opentelemetry/instrumentation-generic-pool": "^0.31.3",
"@opentelemetry/instrumentation-graphql": "^0.34.2",
"@opentelemetry/instrumentation-graphql": "^0.36.1",
"@opentelemetry/instrumentation-http": "^0.39.1",
"@opentelemetry/instrumentation-ioredis": "^0.34.2",
"@opentelemetry/instrumentation-net": "^0.31.3",
Expand Down
2 changes: 2 additions & 0 deletions src/telemetry/instrumentations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';
import { NetInstrumentation } from '@opentelemetry/instrumentation-net';
import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';
import { PinoInstrumentation } from '@opentelemetry/instrumentation-pino';
import { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql';
import { FetchInstrumentation } from './fetchInstrumentation';

const InstrumentationMap = {
Expand All @@ -25,6 +26,7 @@ const InstrumentationMap = {
'@opentelemetry/instrumentation-net': NetInstrumentation,
'@opentelemetry/instrumentation-pg': PgInstrumentation,
'@opentelemetry/instrumentation-pino': PinoInstrumentation,
'@opentelemetry/instrumentation-graphql': GraphQLInstrumentation,
};

// Config types inferred automatically from the first argument of the constructor
Expand Down
93 changes: 87 additions & 6 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1299,7 +1299,7 @@ __metadata:
"@opentelemetry/instrumentation-dns": ^0.31.4
"@opentelemetry/instrumentation-express": ^0.32.3
"@opentelemetry/instrumentation-generic-pool": ^0.31.3
"@opentelemetry/instrumentation-graphql": ^0.34.2
"@opentelemetry/instrumentation-graphql": ^0.36.1
"@opentelemetry/instrumentation-http": ^0.39.1
"@opentelemetry/instrumentation-ioredis": ^0.34.2
"@opentelemetry/instrumentation-net": ^0.31.3
Expand Down Expand Up @@ -1969,14 +1969,14 @@ __metadata:
languageName: node
linkType: hard

"@opentelemetry/instrumentation-graphql@npm:^0.34.2":
version: 0.34.2
resolution: "@opentelemetry/instrumentation-graphql@npm:0.34.2"
"@opentelemetry/instrumentation-graphql@npm:^0.36.1":
version: 0.36.1
resolution: "@opentelemetry/instrumentation-graphql@npm:0.36.1"
dependencies:
"@opentelemetry/instrumentation": ^0.39.1
"@opentelemetry/instrumentation": ^0.46.0
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: f4d0bb6afe1758af462c0120b62afbc78164dada1d0be054b78b2e23066fa709cce1948e698c6c617d5ba402eb40da705dd8dc6ea0f72d2b9463e6e0ad042ee2
checksum: c0f3bb0000c8a9393c7480b2c4b512610011d08b0b5d46165b2729cd99d2df5ad4448a65dd6fca5871d117613138ef2d471529af895521d0bbc2d71f2adedb85
languageName: node
linkType: hard

Expand Down Expand Up @@ -2059,6 +2059,21 @@ __metadata:
languageName: node
linkType: hard

"@opentelemetry/instrumentation@npm:^0.46.0":
version: 0.46.0
resolution: "@opentelemetry/instrumentation@npm:0.46.0"
dependencies:
"@types/shimmer": ^1.0.2
import-in-the-middle: 1.7.1
require-in-the-middle: ^7.1.1
semver: ^7.5.2
shimmer: ^1.2.1
peerDependencies:
"@opentelemetry/api": ^1.3.0
checksum: 9589058da858eeb99b52ba191f93d82b3076b83f4a6cb745666fa742ce7fab8a219fd96a2f2bfad9609984d7462aedbaafa266a1ec3abca57964fdda0e43f5d6
languageName: node
linkType: hard

"@opentelemetry/otlp-exporter-base@npm:0.39.1":
version: 0.39.1
resolution: "@opentelemetry/otlp-exporter-base@npm:0.39.1"
Expand Down Expand Up @@ -2711,6 +2726,13 @@ __metadata:
languageName: node
linkType: hard

"@types/shimmer@npm:^1.0.2":
version: 1.0.5
resolution: "@types/shimmer@npm:1.0.5"
checksum: f6b0c950dc9187464c5393faf4f4e2b7b44b16665bb49196da28affecceb4fdcd9749af15cbe50f1a2de39f3a84b7523e73445f117f6b48bdbd61b892568364a
languageName: node
linkType: hard

"@types/stack-utils@npm:^2.0.0":
version: 2.0.1
resolution: "@types/stack-utils@npm:2.0.1"
Expand Down Expand Up @@ -2897,6 +2919,15 @@ __metadata:
languageName: node
linkType: hard

"acorn-import-assertions@npm:^1.9.0":
version: 1.9.0
resolution: "acorn-import-assertions@npm:1.9.0"
peerDependencies:
acorn: ^8
checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c
languageName: node
linkType: hard

"acorn-jsx@npm:^5.3.2":
version: 5.3.2
resolution: "acorn-jsx@npm:5.3.2"
Expand All @@ -2922,6 +2953,15 @@ __metadata:
languageName: node
linkType: hard

"acorn@npm:^8.8.2":
version: 8.11.3
resolution: "acorn@npm:8.11.3"
bin:
acorn: bin/acorn
checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c
languageName: node
linkType: hard

"agent-base@npm:6, agent-base@npm:^6.0.2":
version: 6.0.2
resolution: "agent-base@npm:6.0.2"
Expand Down Expand Up @@ -3558,6 +3598,13 @@ __metadata:
languageName: node
linkType: hard

"cjs-module-lexer@npm:^1.2.2":
version: 1.2.3
resolution: "cjs-module-lexer@npm:1.2.3"
checksum: 5ea3cb867a9bb609b6d476cd86590d105f3cfd6514db38ff71f63992ab40939c2feb68967faa15a6d2b1f90daa6416b79ea2de486e9e2485a6f8b66a21b4fb0a
languageName: node
linkType: hard

"clean-stack@npm:^2.0.0":
version: 2.2.0
resolution: "clean-stack@npm:2.2.0"
Expand Down Expand Up @@ -5288,6 +5335,18 @@ __metadata:
languageName: node
linkType: hard

"import-in-the-middle@npm:1.7.1":
version: 1.7.1
resolution: "import-in-the-middle@npm:1.7.1"
dependencies:
acorn: ^8.8.2
acorn-import-assertions: ^1.9.0
cjs-module-lexer: ^1.2.2
module-details-from-path: ^1.0.3
checksum: 37cc8c75fb7eac60611bafafea7fc60f794d0931fdabcec516c8a26effe69e914b1f7e8116e98549c6fdd1fe88dcaebfdebf35d7f52c761b48b312e40f3bf323
languageName: node
linkType: hard

"import-local@npm:^3.0.2":
version: 3.1.0
resolution: "import-local@npm:3.1.0"
Expand Down Expand Up @@ -7616,6 +7675,17 @@ __metadata:
languageName: node
linkType: hard

"require-in-the-middle@npm:^7.1.1":
version: 7.2.0
resolution: "require-in-the-middle@npm:7.2.0"
dependencies:
debug: ^4.1.1
module-details-from-path: ^1.0.3
resolve: ^1.22.1
checksum: 5ed219d12aec4d0f098029827f9e929d8e0ca4f2fe01f23a9b02169e57c5157cced9e7acaef6a871d3f56646f2cb807b08f2f23d66912ee53eca16cb88eff743
languageName: node
linkType: hard

"resolve-cwd@npm:^3.0.0":
version: 3.0.0
resolution: "resolve-cwd@npm:3.0.0"
Expand Down Expand Up @@ -7839,6 +7909,17 @@ __metadata:
languageName: node
linkType: hard

"semver@npm:^7.5.2":
version: 7.5.4
resolution: "semver@npm:7.5.4"
dependencies:
lru-cache: ^6.0.0
bin:
semver: bin/semver.js
checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
languageName: node
linkType: hard

"send@npm:1.0.0-beta.1":
version: 1.0.0-beta.1
resolution: "send@npm:1.0.0-beta.1"
Expand Down
Loading