Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@
- Align OpAMP data model guidance with upstream `opamp-spec`.
- Add initial data model for agent identify with OpAMP.
[#379](https://github.com/signalfx/gdi-specification/pull/379)
- Add support for remote config.
[#396](https://github.com/signalfx/gdi-specification/pull/396),
[#402](https://github.com/signalfx/gdi-specification/pull/402)

## [1.9.0] - 2026-04-07

Expand Down
13 changes: 9 additions & 4 deletions specification/opamp_datamodel.md
Original file line number Diff line number Diff line change
Expand Up @@ -307,21 +307,26 @@ distribution:
always_on:
cpu_profiler:
sampling_interval: 1001
memory_profiler:
```

Agents SHOULD be relaxed in parsing and SHOULD ignore all other values.

* When `cpu_profiler` is present, it indicates that the CPU profiler should be started
* When `cpu_profiler` is present, it indicates that the CPU profiler SHOULD be started
if it is not currently running.
* When `cpu_profiler` is omitted, it indicates that the CPU profiler should be stopped
* When `cpu_profiler` is omitted, it indicates that the CPU profiler SHOULD be stopped
if it is currently running.
* When `sampling_interval` is present, it indicates how often the profiler should
* When `sampling_interval` is present, it indicates how often the profiler SHOULD
sample.
* When `memory_profiler` is present, it indicates that the memory profiler
SHOULD be started if it is not currently running.
* When `memory_profiler` is omitted, it indicates that the memory profiler
SHOULD be stopped if it is currently running.
Comment on lines +321 to +324

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These bullets create a runtime lifecycle for SPLUNK_PROFILER_MEMORY_ENABLED that conflicts with the stable Instrumentation Libraries contract in specification/configuration.md: the initial setting SHOULD last for the application run, and a deactivated profiler MUST not add profiling overhead.

A process that starts with memory profiling disabled and later receives this payload cannot satisfy both documents. Startup-bound profilers must either ignore the update or retain hooks/callbacks while disabled. Please define the remote-config exception and precedence, including how unsupported transitions and the disabled-state overhead guarantee work, or keep memory-profiler enablement startup-only.


Comment thread
ysolomchenko marked this conversation as resolved.
Agents SHOULD detect when remote configuration differs from current effective
configuration and SHOULD alter its internal state to match remote config. In
other words, remote config can cause the agent to start or stop the profiler or
modify the sampling interval.
modify profiler settings.

When an agent is able to change state based on remote configuration values,
subsequent effective configuration reports (as requested by the server)
Expand Down
Loading