Add process autodiscovery infrastructure and support to krakend#24238
Add process autodiscovery infrastructure and support to krakend#24238vitkyrka wants to merge 1 commit into
Conversation
|
e2025d0 to
504c1b2
Compare
6ed4871 to
baaed78
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: baaed78950
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c04e675036
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
c04e675 to
010a0d8
Compare
70374be to
669d600
Compare
669d600 to
377010f
Compare
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Adds process-based autodiscovery for krakend, on top of the existing container-based autodiscovery, using a CEL selector to match the krakend process by name. Both flavors run as parametrized variants of the same e2e test in a single environment: the process variant scopes DD_AUTOCONFIG_EXCLUDE_FEATURES=docker to just that discovery invocation (via the new ddev --env support) so that invocation's autodiscovery run never learns about containers, letting the otherwise container-bound krakend process be matched by process-based autodiscovery instead. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
377010f to
cbbf8e2
Compare
8d60800 to
b585bc6
Compare
Validation ReportAll 21 validations passed. Show details
|

What does this PR do?
Adds process autodiscovery infrastructure, and support to the krakend integration. When krakend runs as a process in environments without containers, the agent's process autodiscovery listener matches it via a CEL expression and the existing configuration discovery flow finds the metrics endpoint and schedules the check automatically.
The essential change to add the support to krakend is the change to
auto_conf.yaml(regenerated fromspec.yaml). The other changes are infrastructure to allow process autodiscovery support to be added to integrations and to be E2E tested while keeping the amount of changes required in each integration relatively small.The main challenge is cleanly re-using the existing container-based E2E infrastructure for process autodiscovery testing without running krakend as a true host process (since that would require a lot of extra work in each integration's tests to set up the respective services without using containers).
The chosen approach is to keep the existing Docker Compose setup unchanged and instead hide the containers from the agent by setting
DD_AUTOCONFIG_EXCLUDE_FEATURES=docker, which makes the agent's process autodiscovery component handle the processes as normal host processes. This environment variable is pass to theagent checkinvocation. The Docker environment for the agent also needs a few extra caps and config options for the processes tests, but these options should not affect the container-based tests.Motivation
https://datadoghq.atlassian.net/browse/DSCVR-493
Review checklist (to be filled by reviewers)
qa/requiredif this PR needs QA validation, orqa/skip-qaif it does not. Exactly one of the two is required.backport/<branch-name>label to the PR and it will automatically open a backport PR once this one is merged