Resolves https://github.com/elastic/ingest-dev/issues/3933. For deployments that support agentless, integrations with agentless deployment mode enabled will allow the status of agentless integration policies to be tracked.
Key technical changes
A new field supports_agentless was added to package policies. This field also exists on agent policies. When an agentless integration is created, supports_agentless: true is now added to both the package policy and its parent agent policy.
This allows easier filtering for agentless integrations as we avoid having to retrieve & check against every parent agent policy.
This also means existing agentless policies do not get this new status tracking UI, only new ones created after this change. Since agentless is not yet GA, I think this is okay.
/api/fleet/agent_status/data now takes an optional query param pkgKey. When pkgKey is specified, the API will check if agent(s) have ingested data for only that package's datastreams.
UI walkthrough
Click to show
1. **Integration policies** page now shows two tables for integrations meeting the above condition, one for agentless policies and one for agent-based policies:
![image](https://github.com/user-attachments/assets/58c6a932-9bda-4229-ba5f-d341bdbd539a)
2. Clicking the status badge in the agentless policies table opens a flyout with two steps: confirm agentless enrollment and confirm incoming data:
![image](https://github.com/user-attachments/assets/e19e6ba0-f40d-48a7-a524-0373934ac46a)
3. Confirm agentless enrollment polls for an agent enrolled into that integration policy's agent policy. If that agent is reporting an unhealthy status, the integration component UI is shown. This UI is the same one used on Fleet > Agents > Agent details page and shows all components reported by that agent:
![image](https://github.com/user-attachments/assets/ce214f7f-4bdd-48e5-a5eb-a1e8fcc7a512)
4. Once a healthy agentless enrollment is established, confirm incoming data starts polling for data for that integration ingested by that agent ID in the past 5 minutes:
![image](https://github.com/user-attachments/assets/7f3de40b-3418-4174-b529-e805407949b6)
5. If data could not be retrieved in 5 minutes, an error message shows while polling continues in the background:
![image](https://github.com/user-attachments/assets/a3fd198e-1570-4357-9b7f-e541a769d33f)
6. If data is retrieved, a success message is shown:
![image](https://github.com/user-attachments/assets/f4e442af-ca60-4448-9bfb-3f244cd03c2d)
To-do
[ ] API tests
[ ] Unit UI tests
[ ] Manual Cloud tests
[ ] File docs request
[ ] Update troubleshooting guide link
Checklist
Delete any items that are not applicable to this PR.
:robot: Jobs for this PR can be triggered through checkboxes. :construction:
:information_source: To trigger the CI, please tick the checkbox below :point_down:
- [ ] Click to trigger **kibana-pull-request** for this PR!
- [ ] Click to trigger **kibana-deploy-project-from-pr** for this PR!
Summary
Resolves https://github.com/elastic/ingest-dev/issues/3933. For deployments that support agentless, integrations with agentless deployment mode enabled will allow the status of agentless integration policies to be tracked.
Key technical changes
supports_agentless
was added to package policies. This field also exists on agent policies. When an agentless integration is created,supports_agentless: true
is now added to both the package policy and its parent agent policy./api/fleet/agent_status/data
now takes an optional query parampkgKey
. WhenpkgKey
is specified, the API will check if agent(s) have ingested data for only that package's datastreams.UI walkthrough
Click to show
1. **Integration policies** page now shows two tables for integrations meeting the above condition, one for agentless policies and one for agent-based policies: ![image](https://github.com/user-attachments/assets/58c6a932-9bda-4229-ba5f-d341bdbd539a) 2. Clicking the status badge in the agentless policies table opens a flyout with two steps: confirm agentless enrollment and confirm incoming data: ![image](https://github.com/user-attachments/assets/e19e6ba0-f40d-48a7-a524-0373934ac46a) 3. Confirm agentless enrollment polls for an agent enrolled into that integration policy's agent policy. If that agent is reporting an unhealthy status, the integration component UI is shown. This UI is the same one used on Fleet > Agents > Agent details page and shows all components reported by that agent: ![image](https://github.com/user-attachments/assets/ce214f7f-4bdd-48e5-a5eb-a1e8fcc7a512) 4. Once a healthy agentless enrollment is established, confirm incoming data starts polling for data for that integration ingested by that agent ID in the past 5 minutes: ![image](https://github.com/user-attachments/assets/7f3de40b-3418-4174-b529-e805407949b6) 5. If data could not be retrieved in 5 minutes, an error message shows while polling continues in the background: ![image](https://github.com/user-attachments/assets/a3fd198e-1570-4357-9b7f-e541a769d33f) 6. If data is retrieved, a success message is shown: ![image](https://github.com/user-attachments/assets/f4e442af-ca60-4448-9bfb-3f244cd03c2d)To-do
Checklist
Delete any items that are not applicable to this PR.