Skip to content

Feature/telemetry hooks - #521

Merged
regyssilveira merged 6 commits into
HashLoad:masterfrom
regyssilveira:feature/telemetry-hooks
Jul 11, 2026
Merged

Feature/telemetry hooks#521
regyssilveira merged 6 commits into
HashLoad:masterfrom
regyssilveira:feature/telemetry-hooks

Conversation

@regyssilveira

Copy link
Copy Markdown
Contributor

Pull Request: Implementação do Hook de Telemetria

Descrição

Este PR introduz o novo hook nativo de telemetria de alta precisão (AddOnTelemetry) e corrige problemas históricos e silenciosos na suíte de testes de integração, compatibilidade e integridade física de rede do framework.

Alterações e Correções

1. Novo Exemplo de Uso de Telemetria

  • Adicionado o sample samples/delphi/console_telemetry/ConsoleTelemetry.dpr que demonstra o registro, uso correto e as melhores práticas (boundaries try-except) ao utilizar o gancho de telemetria AddOnTelemetry.

2. Provedor IOCP (src/Horse.Provider.IOCP.pas)

  • Correção: Removida a captura silenciosa de exceção (except Exit; end) no método InternalListenLoop. Anteriormente, qualquer falha durante a escuta física (incluindo falhas disparadas no gancho BeforeListen) era silenciada, impedindo o chamador (THorseInstance) de saber que o servidor falhou na inicialização. Agora a exceção é propagada corretamente.

3. Matriz de Testes Delphi (tests/run_delphi_tests.ps1)

  • Correção: Ajustada a compilação via dcc32 para propagar as diretivas dos provedores (HORSE_PROVIDER_HTTPSYS, HORSE_PROVIDER_IOCP, HORSE_RADIX_ROUTER) globalmente para todas as unidades usando o parâmetro -D. Anteriormente, as units eram compiladas sob o escopo padrão devido à falta de propagação de diretivas do .dpr para as units em compilações diretas sem .dproj.
  • Correção: Adicionado o switch temporário $env:HORSE_TEST_SILENCE = "1" durante os testes unitários para permitir que a exceção no startup não seja bloqueada por Read interativos no Console Provider.

4. Testes de Integridade ("Vida Real")

  • Correção: Adicionada a unidade Web.ReqMulti condicionalmente ao uses do samples/delphi/console_complete/ConsoleComplete.dpr para impedir que o linker do Delphi elimine o parser de multipart do executável final via smart-linking, resolvendo a falha na rota /upload de multipart/form-data.
  • Correção: Ajustado o script samples/delphi/console_complete/test_integrity.ps1 para unificar a contagem de falhas sob a variável de escopo $script:totalErrors, prevenindo falsos positivos de sucesso no console.

Testes Realizados

  • Matriz de builds unitários: 24 rodadas de build e testes executadas com sucesso (Delphi 10, 11, 12 e 13) contra todos os provedores (Default/Indy, HttpSys, IOCP).
  • Integridade física: Script de integridade local validado com sucesso nos dois roteadores (RouterTree e Radix).
  • Testes de integração E2E: Validação Multi-Instance (portas paralelas 9001 e 9002) executada com sucesso.

@regyssilveira
regyssilveira merged commit 695a1f7 into HashLoad:master Jul 11, 2026
@regyssilveira
regyssilveira deleted the feature/telemetry-hooks branch July 11, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant