REFACTOR: Improve logging with additional metadata

- Enhanced logs to include more detailed request body information.
- Standardized log calls to include extra metadata, such as service name, environment, customer name, user ID, HTTP method, and request path.
- Improved error logging to provide better debugging insights.

Example log format:
EXTRA[{"service":{"name":"maestro","environment":"stg"},"customer_name":"dadosfera","user_id":"047824d8-0021-709a-bf15-39b8dd069aaf","method":"POST","path":"/catalog/register-dataset"}]

Related tickets or issues: [TECN-9441]
This commit is contained in:
Rafael
2025-02-14 15:04:22 -03:00
parent 07eb423814
commit dc617b6925
2 changed files with 47 additions and 69 deletions
+18 -29
View File
@@ -758,8 +758,15 @@ export class CatalogController {
@Body() body: RegisterDatasetWithMetatadaRequest,
@User() user: RequestUser,
) {
try {
const { customer_id, customer_name, user_id, username } = user;
const logMetadata = {
customer_name: customer_name,
user_id: user_id,
method: 'POST',
path: '/catalog/register-dataset',
};
try {
const metadata = PackTheMetadata({
customer_id,
customer_name,
@@ -767,23 +774,22 @@ export class CatalogController {
username,
});
this.logger.log('Request from user', {
user_id,
customer_name,
});
this.logger.log(`Request from user ${user_id} for customer ${customer_name}`, logMetadata);
// Create table metadata
const tableMetadataBody = {
table_metadata: body.table_metadata,
info: {
customer: customer_name,
},
logMetadata: logMetadata
};
this.logger.debug('Creating table metadata', { body: tableMetadataBody });
const table_metadata_id = await this.catalogService.createTableMetadata(
tableMetadataBody,
);
this.logger.info(`table_metadata_id: ${table_metadata_id}`);
this.logger.info(`table_metadata_id: ${table_metadata_id}`, logMetadata);
// Create column metadata
const columnMetadataBody = {
@@ -792,9 +798,7 @@ export class CatalogController {
customer: customer_name,
},
};
this.logger.debug('Creating column metadata', {
body: columnMetadataBody,
});
this.logger.info(`Creating column metadata for table ${table_metadata_id}`, logMetadata);
const column_metadata_ids = await this.catalogService.createColumnMetadata(columnMetadataBody)
// Create data preview
@@ -804,18 +808,15 @@ export class CatalogController {
customer: customer_name,
},
};
this.logger.debug('Creating data preview', { body: dataPreviewBody });
this.logger.debug(`Creating data preview for table ${table_metadata_id}`, logMetadata);
const data_preview_id = await this.catalogService.createDataPreview(
dataPreviewBody,
);
// Catalog dataset item
this.logger.debug('Cataloging dataset item', { table_metadata_id });
this.logger.info(`metadata: ${JSON.stringify(metadata)}`);
this.logger.info(`Cataloging dataset item for table ${table_metadata_id}`, logMetadata);
await this.catalogService.catalogDatasetItem(table_metadata_id, metadata);
this.logger.info('Dataset registration completed successfully');
this.logger.info(`Dataset registration completed successfully for table ${table_metadata_id}`, logMetadata);
return {
message: 'Dataset registered successfully',
table_metadata_id: table_metadata_id,
@@ -823,19 +824,7 @@ export class CatalogController {
data_preview_id: data_preview_id,
};
} catch (error) {
this.logger.error('Failed to register dataset', {
error: {
message: error.message,
stack: error.stack,
response: error.response?.data,
status: error.response?.status,
},
context: {
customer_name: user.customer_name,
user_id: user.user_id,
table_metadata: body.table_metadata?.table_name,
},
});
this.logger.error(`Failed to register dataset. The following error occurred: ${error.response.data}`, logMetadata);
throw new HttpException(
{