LAL: generalize extraLog type, add EnvoyAccessLogBuilder, and DSL class generator test (#13736) ### Follow-up improvements to LAL v2 outputType mechanism (#13733) These changes fix several issues discovered after the initial outputType PR and add a DSL class generator test for offline validation. **Key changes:** 1. **Generalize `extraLog` from `Message` to `Object`** — `ILogAnalyzerService.doAnalysis()` and the entire listener chain now use `Optional<Object>` instead of `com.google.protobuf.Message`. This removes the protobuf coupling and allows non-protobuf input types in the future. 2. **`LALOutputBuilder.init()` accepts `Object` instead of `LogData`** — Each builder casts to its expected input type internally (e.g., `LogData` for standard logs, `HTTPAccessLogEntry` for envoy). This enables the envoy access log builder to receive the raw protobuf entry directly. 3. **Add `EnvoyAccessLogBuilder`** — A new `LALOutputBuilder` implementation for envoy access logs that extends `LogBuilder` and serializes the raw access log entry as JSON content. Registered via SPI and declared as the default output type for the MESH layer in `EnvoyHTTPLALSourceTypeProvider`. 4. **Move `addTag` off `LALOutputBuilder` interface** — `addTag()` was a default no-op on the interface, silently dropping tags for non-Log output types. Now it only exists on `LogBuilder`, and the LAL compiler validates at compile time that `tag` assignments are only used with LogBuilder-compatible output types. 5. **Remove dead `LogSinkListenerFactory` methods** — `addSinkListenerFactory()` and `getSinkListenerFactory()` on `ILogAnalysisListenerManager` were unused after the v2 refactoring. 6. **Remove unused `ModuleManager`/`ModuleConfig` from `LogAnalyzer`** — Constructor now only takes `ILogAnalysisListenerManager`. 7. **Add `DSLClassGeneratorTest`** — A test in `server-starter` that compiles all OAL, MAL, LAL, and Hierarchy scripts and dumps `.class` files to `target/generated-dsl-classes/` for offline inspection. Documents the tool in the debugging guide.
SkyWalking: an APM (Application Performance Monitoring) system, especially designed for microservices, cloud native and container-based architectures.
SkyWalking is an open-source APM system that provides monitoring, tracing and diagnosing capabilities for distributed systems in Cloud Native architectures.
Please head to the releases page to download a release of Apache SkyWalking.
Follow this document.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.
dev-subscribe@skywalking.apache.org, follow the reply to subscribe the mail list.Request to join SkyWalking slack mail to the mail list(dev@skywalking.apache.org), we will invite you in.[CN] Request to join SkyWalking slack mail to the mail list(dev@skywalking.apache.org), we will invite you in.Hundreds of companies and organizations use SkyWalking for research, production, and commercial purposes. Visit our website to find the user page.