diff --git a/src/services/api.ts b/src/services/api.ts index 890445e9b..b787a5467 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -46,7 +46,10 @@ import type {DescribeTopicResult} from '../types/api/topic'; import type {TEvVDiskStateResponse} from '../types/api/vdisk'; import type {TUserToken} from '../types/api/whoami'; import type {QuerySyntax} from '../types/store/query'; -import {BINARY_DATA_IN_PLAIN_TEXT_DISPLAY} from '../utils/constants'; +import { + BINARY_DATA_IN_PLAIN_TEXT_DISPLAY, + DEV_ENABLE_TRACING_FOR_ALL_REQUESTS, +} from '../utils/constants'; import {prepareSortValue} from '../utils/filters'; import type {Nullable} from '../utils/typecheckers'; @@ -71,6 +74,20 @@ export class YdbEmbeddedAPI extends AxiosWrapper { retryDelay: axiosRetry.exponentialDelay, }); + // Make possible manually enable tracing for all requests + // For development purposes + this._axios.interceptors.request.use(function (config) { + const enableTracing = settingsManager.readUserSettingsValue( + DEV_ENABLE_TRACING_FOR_ALL_REQUESTS, + ); + + if (enableTracing) { + config.headers['X-Want-Trace'] = 1; + } + + return config; + }); + // Interceptor to process OIDC auth this._axios.interceptors.response.use(null, function (error) { const response = error.response; diff --git a/src/utils/constants.ts b/src/utils/constants.ts index 3506c8c9d..2ae485634 100644 --- a/src/utils/constants.ts +++ b/src/utils/constants.ts @@ -159,3 +159,5 @@ export const ENABLE_AUTOCOMPLETE = 'enableAutocomplete'; export const AUTOCOMPLETE_ON_ENTER = 'autocompleteOnEnter'; export const IS_HOTKEYS_HELP_HIDDEN_KEY = 'isHotKeysHelpHidden'; + +export const DEV_ENABLE_TRACING_FOR_ALL_REQUESTS = 'enable_tracing_for_all_requests';