You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by "wu-sheng (via GitHub)" <gi...@apache.org> on 2026/03/10 06:54:45 UTC
[PR] LAL: generalize extraLog type, add EnvoyAccessLogBuilder, and DSL class generator test [skywalking]
wu-sheng opened a new pull request, #13736:
URL: https://github.com/apache/skywalking/pull/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.
- [ ] If this pull request closes/resolves/fixes an existing issue, replace the issue number. Closes #<issue number>.
- [ ] Update the [`CHANGES` log](https://github.com/apache/skywalking/blob/master/docs/en/changes/changes.md).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] LAL: generalize extraLog type, add EnvoyAccessLogBuilder, and DSL class generator test [skywalking]
Posted by "wu-sheng (via GitHub)" <gi...@apache.org>.
wu-sheng merged PR #13736:
URL: https://github.com/apache/skywalking/pull/13736
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org