add graphql query to traces

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/10868
GitOrigin-RevId: 0d59478586183d98e38d45d3c928f75a3f25e970
This commit is contained in:
paritosh-08 2024-06-14 00:01:27 +05:30 committed by hasura-bot
parent 0f245de566
commit 2eb4a26268
3 changed files with 8 additions and 4 deletions

View File

@ -1229,9 +1229,9 @@ This sets transaction isolation.
| **Default** | `read-committed` | | **Default** | `read-committed` |
| **Supported in** | Deprecated in versions > `v2.0.0` | | **Supported in** | Deprecated in versions > `v2.0.0` |
### Trace SQL Queries ### Trace SQL and GraphQL Queries
Add SQL queries to the OTLP traces. Add SQL and GraphQL queries to the OTLP traces.
| | | | | |
| ------------------- | ---------------------------------------- | | ------------------- | ---------------------------------------- |

View File

@ -95,7 +95,7 @@ import Hasura.Server.Prometheus
recordGraphqlOperationMetric, recordGraphqlOperationMetric,
) )
import Hasura.Server.Telemetry.Counters qualified as Telem import Hasura.Server.Telemetry.Counters qualified as Telem
import Hasura.Server.Types (HeaderPrecedence, ModelInfoLogState (..), MonadGetPolicies (..), ReadOnlyMode (..), RemoteSchemaResponsePriority (..), RequestId (..), TraceQueryStatus) import Hasura.Server.Types (HeaderPrecedence, ModelInfoLogState (..), MonadGetPolicies (..), ReadOnlyMode (..), RemoteSchemaResponsePriority (..), RequestId (..), TraceQueryStatus (TraceQueryEnabled))
import Hasura.Services import Hasura.Services
import Hasura.Session (SessionVariable, SessionVariableValue, SessionVariables, UserInfo (..), filterSessionVariables) import Hasura.Session (SessionVariable, SessionVariableValue, SessionVariables, UserInfo (..), filterSessionVariables)
import Hasura.Tracing (MonadTrace, attachMetadata) import Hasura.Tracing (MonadTrace, attachMetadata)
@ -360,6 +360,8 @@ runGQ env sqlGenCtx sc enableAL readOnlyMode remoteSchemaResponsePriority header
for_ maybeOperationName $ \nm -> for_ maybeOperationName $ \nm ->
-- https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/ -- https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/
attachMetadata [("graphql.operation.name", G.unName nm)] attachMetadata [("graphql.operation.name", G.unName nm)]
when (traceQueryStatus == TraceQueryEnabled)
$ attachMetadata [("graphql.query", _unGQLQueryText (_grQuery reqUnparsed))]
(parameterizedQueryHash, execPlan, modelInfoList) <- (parameterizedQueryHash, execPlan, modelInfoList) <-
E.getResolvedExecPlan E.getResolvedExecPlan
env env

View File

@ -105,7 +105,7 @@ import Hasura.Server.Prometheus
recordGraphqlOperationMetric, recordGraphqlOperationMetric,
) )
import Hasura.Server.Telemetry.Counters qualified as Telem import Hasura.Server.Telemetry.Counters qualified as Telem
import Hasura.Server.Types (GranularPrometheusMetricsState (..), HeaderPrecedence, ModelInfoLogState (..), MonadGetPolicies (..), RemoteSchemaResponsePriority, RequestId, TraceQueryStatus, getRequestId) import Hasura.Server.Types (GranularPrometheusMetricsState (..), HeaderPrecedence, ModelInfoLogState (..), MonadGetPolicies (..), RemoteSchemaResponsePriority, RequestId, TraceQueryStatus (TraceQueryEnabled), getRequestId)
import Hasura.Services.Network import Hasura.Services.Network
import Hasura.Session import Hasura.Session
import Hasura.Tracing qualified as Tracing import Hasura.Tracing qualified as Tracing
@ -504,6 +504,8 @@ onStart enabledLogTypes agentLicenseKey serverEnv wsConn shouldCaptureVariables
for_ maybeOperationName $ \nm -> for_ maybeOperationName $ \nm ->
-- https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/ -- https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/
Tracing.attachMetadata [("graphql.operation.name", unName nm)] Tracing.attachMetadata [("graphql.operation.name", unName nm)]
when (traceQueryStatus == TraceQueryEnabled)
$ Tracing.attachMetadata [("graphql.query", _unGQLQueryText (_grQuery q))]
execPlanE <- execPlanE <-
runExceptT runExceptT
$ E.getResolvedExecPlan $ E.getResolvedExecPlan