# (*) Tracing
TODO
# Tracing Execution Time
The @traceExecutionTime
directive tracks how much time it takes to resolve a field (including all the involved directives), and adds the result under entry extensions.traces
in the response.
As an example, we can use it to measure how fast is the @translate
directive (which connects to the Google Translation API), and how fast it is after applying @cache
to the translation (so that it doesn't connect to the external API anymore). For that, we execute this query with @traceExecutionTime
first, and within 10 seconds again:
query {
posts(limit:3) {
id
title @translate(from:"en", to:"es") @cache(time:10) @traceExecutionTime
}
}
For the first execution, the logs inform us that resolving the field containing the @translate
directive took 80.111 milliseconds to execute:
For the second execution, the logs indicate that the field was resolved in less than 1 millisecond:
The @traceExecutionTime
directive then shows that caching results improve the performance of the API.
# Configuration
# Environment variables
Environment variable | Description | Default |
---|---|---|
SHOW_TRACES_IN_RESPONSE | Print the traces under entry extensions.traces | false |
SEND_TRACES_TO_LOG | Print a human-readable summary of the traces under entry extensions.logs | false |