Skip to content

Dependências e scripts

Scripts principais

ScriptComandoUso
start:devnode --env-file=.env --import tsx --watch src/server.tsDesenvolvimento com reload.
start:localnode --env-file=.env --import tsx src/server.tsExecução local simples.
buildtsup src --out-dir buildBuild da aplicação.
testvitest runTestes automatizados.
docs:devvitepress dev docsDesenvolvimento da documentação.
docs:buildvitepress build docsBuild estático da documentação.
observability:updocker compose -f infra/docker-compose.yml up -d --buildSobe a stack completa.
observability:downdocker compose -f infra/docker-compose.yml down -vDerruba a stack e remove volumes.
observability:logsdocker compose -f infra/docker-compose.yml logs -fAcompanha logs da stack.
observability:psdocker compose -f infra/docker-compose.yml psLista status dos containers.
observability:smokebash infra/scripts/generate-telemetry.shGera tráfego para validar telemetria.

Dependências de runtime

BibliotecaPapel no projeto
fastifyServidor HTTP da aplicação.
pinoLogger estruturado principal da aplicação e base do loggerInstance do Fastify.
@fastify/otelInstrumentação do Fastify orientada ao ecossistema atual do framework.
@opentelemetry/apiAPI base de tracing, metrics e logs.
@opentelemetry/sdk-nodeSDK principal do OpenTelemetry no Node.js.
@opentelemetry/auto-instrumentations-nodePacote de auto-instrumentação para bibliotecas comuns do runtime.
@opentelemetry/exporter-metrics-otlp-httpExportador OTLP/HTTP usado explicitamente para métricas.
@opentelemetry/exporter-trace-otlp-httpDependência necessária para exportação OTLP de traces.
@opentelemetry/resourcesSuporte a atributos de recurso como service.name.

Dependências de desenvolvimento

BibliotecaPapel no projeto
typescriptTipagem e compilação.
tsxExecução TypeScript no Node sem build prévio para desenvolvimento.
pino-prettyRenderização legível dos logs locais em development.
vitestTestes unitários.
vitepressSite da documentação.
@types/nodeTipos do Node.js.

Variáveis relevantes de logging

VariávelPapel
LOG_LEVELNível principal de logging da aplicação.
APP_LOG_LEVELFallback legado mantido por compatibilidade.
NODE_ENVDefine se a saída usa pretty ou JSON puro.
OTEL_SERVICE_NAMENome do serviço exposto nos logs e traces.
OTEL_SERVICE_NAMESPACENamespace semântico do serviço nos logs.

Regras gerais de uso

Convenção prática

O projeto usa bibliotecas de observabilidade tanto em código quanto em infraestrutura. A regra é simples: a aplicação produz telemetria, o Collector distribui e o Grafana consome os backends.

  • A aplicação não envia dados diretamente para Grafana.
  • O Collector é o ponto central de ingestão.
  • O Grafana consulta Tempo, Loki, Mimir e Prometheus.

Checklist operacional rápido

bash
npm run start:local
npm test
npm run docs:build
npm run observability:up
npm run observability:smoke

Documentação técnica do estado atual do projeto e da stack de observabilidade.