Feature/telemetry hooks - #521
Merged
regyssilveira merged 6 commits intoJul 11, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
samples/delphi/console_telemetry/ConsoleTelemetry.dprque demonstra o registro, uso correto e as melhores práticas (boundaries try-except) ao utilizar o gancho de telemetriaAddOnTelemetry.2. Provedor IOCP (
src/Horse.Provider.IOCP.pas)except Exit; end) no métodoInternalListenLoop. Anteriormente, qualquer falha durante a escuta física (incluindo falhas disparadas no ganchoBeforeListen) 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)dcc32para 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.dprpara as units em compilações diretas sem.dproj.$env:HORSE_TEST_SILENCE = "1"durante os testes unitários para permitir que a exceção no startup não seja bloqueada porReadinterativos no Console Provider.4. Testes de Integridade ("Vida Real")
Web.ReqMulticondicionalmente ao uses dosamples/delphi/console_complete/ConsoleComplete.dprpara impedir que o linker do Delphi elimine o parser de multipart do executável final via smart-linking, resolvendo a falha na rota/uploadde multipart/form-data.samples/delphi/console_complete/test_integrity.ps1para unificar a contagem de falhas sob a variável de escopo$script:totalErrors, prevenindo falsos positivos de sucesso no console.Testes Realizados
RouterTreeeRadix).