New - declarative config parity and deprecated monitor.* config removal#465
Merged
cleverchuk merged 1 commit intomainfrom Apr 20, 2026
Merged
New - declarative config parity and deprecated monitor.* config removal#465cleverchuk merged 1 commit intomainfrom
monitor.* config removal#465cleverchuk merged 1 commit intomainfrom
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Aligns SolarWinds declarative-config customizers with the “user YAML is authoritative” principle by only injecting trace/log pipeline defaults when the corresponding providers are explicitly declared, while also removing deprecated monitor.* (JMX) configuration remnants and adding a couple of new YAML-backed agent settings.
Changes:
- Guard trace/log processor/exporter/sampler injection behind presence of
TracerProviderModel/LoggerProviderModel; keep metrics pipeline viable via defaultMeterProviderModelbut disable export by default when absent. - Make propagator handling additive (append SolarWinds propagator to an existing composite list rather than replacing it).
- Add YAML config parsers for
agent.triggerTraceandagent.sqlQueryMaxLength, and remove deprecatedmonitor.*config properties/fixtures.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| smoke-tests/apm-config.json | Removes deprecated monitor.jmx.* keys from smoke-test config. |
| sdk-config.yaml | Updates guidance comment for disabling log export via YAML. |
| libs/shared/src/test/resources/sdk-config.yaml | Updates test fixture YAML: removes monitor.*, adds new agent keys. |
| libs/shared/src/test/java/.../SharedConfigCustomizerProviderTest.java | Updates existing tests to explicitly declare providers; adds absent-provider coverage. |
| libs/shared/src/test/java/.../TriggerTraceParserTest.java | Adds unit tests for agent.triggerTrace parser behavior/defaults. |
| libs/shared/src/test/java/.../SqlQueryMaxLengthParserTest.java | Adds unit tests for agent.sqlQueryMaxLength parsing + range validation. |
| libs/shared/src/main/java/.../SharedConfigCustomizerProvider.java | Implements provider-presence guards; additive propagators; disables metrics export when meter provider is absent. |
| libs/shared/src/main/java/.../UrlSampleRateConfigParser.java | Simplifies URL sample-rate parsing by removing an unnecessary null guard. |
| libs/shared/src/main/java/.../TriggerTraceParser.java | New YAML parser for agent.triggerTrace (default true). |
| libs/shared/src/main/java/.../SqlQueryMaxLengthParser.java | New YAML parser for agent.sqlQueryMaxLength with range validation. |
| libs/config/src/main/java/.../ConfigProperty.java | Adds YAML key for AGENT_LOG_FILE; removes deprecated MONITOR_* properties. |
| libs/config/src/main/java/.../ConfigGroup.java | Removes defunct MONITOR config group. |
| custom/src/test/java/.../CustomConfigCustomizerProviderTest.java | Updates tests for new “don’t create tracer provider” behavior; adds absent-provider test. |
| custom/src/main/java/.../CustomConfigCustomizerProvider.java | Guards processor injection behind TracerProviderModel presence. |
| agent-lambda/script/solarwinds-apm-config.json | Removes deprecated monitor.jmx.enable from lambda config. |
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.
Summary
Aligns the declarative configuration customizers with the principle that user-provided YAML config is authoritative. Instead of creating default provider models (TracerProvider, LoggerProvider, Propagator) when absent, the customizers now only configure signals that the user explicitly declared. Also removes the defunct JMX monitoring config properties and their references throughout the codebase.
Changes
Respect user-declared signal providers
SharedConfigCustomizerProviderno longer createsTracerProviderModelorLoggerProviderModelwhen they are absent from the config. Sampler, span processors, span exporters, and log exporters are only added when their respective provider is declared by the user.CustomConfigCustomizerProvidersimilarly guards processor injection behind a null check onTracerProviderModel.MeterProviderModelis absent, a default is still created (metrics pipeline requires it), butAGENT_EXPORT_METRICS_ENABLEDis set tofalseso no metric data is exported without explicit opt-in.Propagator handling made additive
PropagatorModelwith acompositeList, the SolarWinds propagator is appended rather than replacing the list. A new default list is only set when no propagator config exists.New YAML config parsers
TriggerTraceParser— readsagent.triggerTrace(boolean, defaults totrue).SqlQueryMaxLengthParser— readsagent.sqlQueryMaxLength(integer, range-validated against existing constants).Remove defunct JMX monitoring config
MONITOR_*config properties (JMX_SCOPES,JMX_ENABLE,JMX_MAX_ENTRY,METRICS_FLUSH_INTERVAL,SPAN_METRICS_ENABLE) and theMONITORconfig group.AGENT_LOG_FILE(agent.javaLogFile).UrlSampleRateConfigParserno longer skips nullTraceConfigentries — the null guard was unnecessary.Test coverage
tracesNotConfiguredWhenTracerProviderAbsent,logsNotConfiguredWhenLoggerProviderAbsent,metricsExportDisabledWhenMeterProviderAbsent,propagatorsAppendedToExistingCompositeList,processorsNotAddedWhenTracerProviderAbsent).Test services data