Skip to content

Instantly share code, notes, and snippets.

@polRk
Created January 22, 2025 20:20
Show Gist options
  • Save polRk/02f86241626d52c33f9a967b97cb3213 to your computer and use it in GitHub Desktop.
Save polRk/02f86241626d52c33f9a967b97cb3213 to your computer and use it in GitHub Desktop.
YDB Table Client Query Stats Example
import {Driver, ExecuteQuerySettings, getCredentialsFromEnv, Ydb} from 'ydb-sdk';
const authService = getCredentialsFromEnv();
console.info('Driver initializing...');
const driver = new Driver({
connectionString: process.env['YDB_CONNECTION_STRING'],
authService,
});
const timeout = 10000;
if (!(await driver.ready(timeout))) {
console.error(`Driver has not become ready in ${timeout}ms!`);
process.exit(1);
}
await driver.tableClient.withSession(async (session) => {
let result1 = await session.executeQuery(
`SELECT 1`,
undefined,
undefined,
new ExecuteQuerySettings().withCollectStats(
Ydb.Table.QueryStatsCollection.Mode.STATS_COLLECTION_NONE,
),
);
console.log('Result 1 stats:', result1.queryStats);
let result2 = await session.executeQuery(
`SELECT 1`,
undefined,
undefined,
new ExecuteQuerySettings().withCollectStats(
Ydb.Table.QueryStatsCollection.Mode.STATS_COLLECTION_BASIC,
),
);
console.log('Result 2 stats:', result2.queryStats);
let result3 = await session.executeQuery(
`SELECT 1`,
undefined,
undefined,
new ExecuteQuerySettings().withCollectStats(
Ydb.Table.QueryStatsCollection.Mode.STATS_COLLECTION_FULL,
),
);
console.log('Result 3 stats:', result3.queryStats);
let result4 = await session.executeQuery(
`SELECT 1`,
undefined,
undefined,
new ExecuteQuerySettings().withCollectStats(
Ydb.Table.QueryStatsCollection.Mode.STATS_COLLECTION_PROFILE,
),
);
console.log('Result 4 stats:', result4.queryStats);
console.info('Done');
});
await driver.destroy();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment