mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
# Backport This will backport the following commits from `main` to `8.6`: - [[Fleet] Fix agent status computation to support agent v2 uppercase (#146757)](https://github.com/elastic/kibana/pull/146757) <!--- Backport version: 8.9.7 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Nicolas Chaulet","email":"nicolas.chaulet@elastic.co"},"sourceCommit":{"committedDate":"2022-12-01T14:12:53Z","message":"[Fleet] Fix agent status computation to support agent v2 uppercase (#146757)","sha":"11451129d2b3c14e989a4071d188937af98a614d","branchLabelMapping":{"^v8.7.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Fleet","v8.6.0","v8.7.0"],"number":146757,"url":"https://github.com/elastic/kibana/pull/146757","mergeCommit":{"message":"[Fleet] Fix agent status computation to support agent v2 uppercase (#146757)","sha":"11451129d2b3c14e989a4071d188937af98a614d"}},"sourceBranch":"main","suggestedTargetBranches":["8.6"],"targetPullRequestStates":[{"branch":"8.6","label":"v8.6.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.7.0","labelRegex":"^v8.7.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/146757","number":146757,"mergeCommit":{"message":"[Fleet] Fix agent status computation to support agent v2 uppercase (#146757)","sha":"11451129d2b3c14e989a4071d188937af98a614d"}}]}] BACKPORT--> Co-authored-by: Nicolas Chaulet <nicolas.chaulet@elastic.co>
This commit is contained in:
parent
37558e76f1
commit
fa936350f5
4 changed files with 77 additions and 9 deletions
|
@ -33,10 +33,10 @@ export function getAgentStatus(agent: Agent | FleetServerAgent): AgentStatus {
|
|||
return 'unenrolling';
|
||||
}
|
||||
|
||||
if (agent.last_checkin_status === 'error') {
|
||||
if (agent.last_checkin_status?.toLowerCase() === 'error') {
|
||||
return 'error';
|
||||
}
|
||||
if (agent.last_checkin_status === 'degraded') {
|
||||
if (agent.last_checkin_status?.toLowerCase() === 'degraded') {
|
||||
return 'degraded';
|
||||
}
|
||||
|
||||
|
@ -61,10 +61,10 @@ export function getPreviousAgentStatusForOfflineAgents(
|
|||
return 'unenrolling';
|
||||
}
|
||||
|
||||
if (agent.last_checkin_status === 'error') {
|
||||
if (agent.last_checkin_status?.toLowerCase() === 'error') {
|
||||
return 'error';
|
||||
}
|
||||
if (agent.last_checkin_status === 'degraded') {
|
||||
if (agent.last_checkin_status?.toLowerCase() === 'degraded') {
|
||||
return 'degraded';
|
||||
}
|
||||
|
||||
|
@ -96,7 +96,7 @@ export function buildKueryForOnlineAgents(path: string = ''): string {
|
|||
}
|
||||
|
||||
export function buildKueryForErrorAgents(path: string = ''): string {
|
||||
return `(${path}last_checkin_status:error or ${path}last_checkin_status:degraded) ${addExclusiveKueryFilter(
|
||||
return `(${path}last_checkin_status:error or ${path}last_checkin_status:degraded or ${path}last_checkin_status:DEGRADED or ${path}last_checkin_status:ERROR) ${addExclusiveKueryFilter(
|
||||
[buildKueryForOfflineAgents, buildKueryForUnenrollingAgents],
|
||||
path
|
||||
)}`;
|
||||
|
|
|
@ -372,6 +372,30 @@ describe('test endpoint routes', () => {
|
|||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
should: [
|
||||
{
|
||||
match: {
|
||||
'united.agent.last_checkin_status': 'DEGRADED',
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
should: [
|
||||
{
|
||||
match: {
|
||||
'united.agent.last_checkin_status': 'ERROR',
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
|
|
|
@ -170,6 +170,32 @@ export const expectedCompleteUnitedIndexQuery = {
|
|||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
should: [
|
||||
{
|
||||
match: {
|
||||
'united.agent.last_checkin_status':
|
||||
'DEGRADED',
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
should: [
|
||||
{
|
||||
match: {
|
||||
'united.agent.last_checkin_status':
|
||||
'ERROR',
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
|
@ -248,6 +274,24 @@ export const expectedCompleteUnitedIndexQuery = {
|
|||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
should: [
|
||||
{
|
||||
match: { 'united.agent.last_checkin_status': 'DEGRADED' },
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
{
|
||||
bool: {
|
||||
should: [
|
||||
{ match: { 'united.agent.last_checkin_status': 'ERROR' } },
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
},
|
||||
],
|
||||
minimum_should_match: 1,
|
||||
},
|
||||
|
|
|
@ -93,7 +93,7 @@ describe('test filtering endpoint hosts by agent status', () => {
|
|||
const status = ['healthy'];
|
||||
const kuery = buildStatusesKuery(status);
|
||||
expect(kuery).toMatchInlineSnapshot(
|
||||
`"(united.agent.last_checkin:* AND not ((united.agent.last_checkin < now-300s) or ((((united.agent.upgrade_started_at:*) and not (united.agent.upgraded_at:*)) or (not (united.agent.last_checkin:*)) or (united.agent.unenrollment_started_at:*) or (not united.agent.policy_revision_idx:*)) AND not ((united.agent.last_checkin < now-300s) or ((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*))))) or ((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))))"`
|
||||
`"(united.agent.last_checkin:* AND not ((united.agent.last_checkin < now-300s) or ((((united.agent.upgrade_started_at:*) and not (united.agent.upgraded_at:*)) or (not (united.agent.last_checkin:*)) or (united.agent.unenrollment_started_at:*) or (not united.agent.policy_revision_idx:*)) AND not ((united.agent.last_checkin < now-300s) or ((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded or united.agent.last_checkin_status:DEGRADED or united.agent.last_checkin_status:ERROR) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*))))) or ((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded or united.agent.last_checkin_status:DEGRADED or united.agent.last_checkin_status:ERROR) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))))"`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -107,7 +107,7 @@ describe('test filtering endpoint hosts by agent status', () => {
|
|||
const status = ['unhealthy'];
|
||||
const kuery = buildStatusesKuery(status);
|
||||
expect(kuery).toMatchInlineSnapshot(
|
||||
`"((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))"`
|
||||
`"((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded or united.agent.last_checkin_status:DEGRADED or united.agent.last_checkin_status:ERROR) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))"`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -115,7 +115,7 @@ describe('test filtering endpoint hosts by agent status', () => {
|
|||
const status = ['updating'];
|
||||
const kuery = buildStatusesKuery(status);
|
||||
expect(kuery).toMatchInlineSnapshot(
|
||||
`"((((united.agent.upgrade_started_at:*) and not (united.agent.upgraded_at:*)) or (not (united.agent.last_checkin:*)) or (united.agent.unenrollment_started_at:*) or (not united.agent.policy_revision_idx:*)) AND not ((united.agent.last_checkin < now-300s) or ((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))))"`
|
||||
`"((((united.agent.upgrade_started_at:*) and not (united.agent.upgraded_at:*)) or (not (united.agent.last_checkin:*)) or (united.agent.unenrollment_started_at:*) or (not united.agent.policy_revision_idx:*)) AND not ((united.agent.last_checkin < now-300s) or ((united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded or united.agent.last_checkin_status:DEGRADED or united.agent.last_checkin_status:ERROR) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))))"`
|
||||
);
|
||||
});
|
||||
|
||||
|
@ -130,7 +130,7 @@ describe('test filtering endpoint hosts by agent status', () => {
|
|||
const statuses = ['offline', 'unhealthy'];
|
||||
const kuery = buildStatusesKuery(statuses);
|
||||
expect(kuery).toMatchInlineSnapshot(
|
||||
`"(united.agent.last_checkin < now-300s OR (united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))"`
|
||||
`"(united.agent.last_checkin < now-300s OR (united.agent.last_checkin_status:error or united.agent.last_checkin_status:degraded or united.agent.last_checkin_status:DEGRADED or united.agent.last_checkin_status:ERROR) AND not ((united.agent.last_checkin < now-300s) or (united.agent.unenrollment_started_at:*)))"`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue