Ошибка в следе в Nest
Клиент получает код ошибки, а в журнале только общая строка: без связи с конкретным следом трудно восстановить цепочку шагов до сбоя и повторить ситуацию на стенде.
При включённом Observe
непойманное исключение из
контроллера или провайдера
попадает в тот же след,
что и успешный ответ.
В дашборде видны тип ошибки,
кадр источника и полное дерево
вызовов. Если ошибку перехватывают
и всё равно нужно зафиксировать
её в следе, вызывают
TracerService.captureError
внутри активного контекста запроса.
Покажем на примере постов:
import { Injectable, NotFoundException } from '@nestjs/common';
@Injectable()
export class PostService {
getPosts(): string {
throw new NotFoundException('No posts yet');
}
}
Страница списка по-прежнему
зовёт сервис. Ответ клиенту
станет ошибкой, а в Observe
тот же HTTP след получит
отметку сбоя на узле
PostService.
import { Controller, Get } from '@nestjs/common';
import { PostService } from './post.service.js';
@Controller()
export class PostController {
constructor(private postService: PostService) {}
@Get('posts')
getPosts(): string {
return this.postService.getPosts();
}
}
Сделайте так, чтобы
WorkerService
при пустом списке
отдавал ошибку клиенту,
и откройте след запроса
в дашборде с отметкой сбоя.