Skip to content

[Security Solution][Attacks/Alerts][Attacks page][KPIs section][Summary tab] Attack volume over time (#232607)#251699

Merged
e40pud merged 1 commit intoelastic:mainfrom
e40pud:security/attack-alerts-alignment/232607-attack-volume-over-time
Feb 4, 2026
Merged

[Security Solution][Attacks/Alerts][Attacks page][KPIs section][Summary tab] Attack volume over time (#232607)#251699
e40pud merged 1 commit intoelastic:mainfrom
e40pud:security/attack-alerts-alignment/232607-attack-volume-over-time

Conversation

@e40pud
Copy link
Copy Markdown
Contributor

@e40pud e40pud commented Feb 4, 2026

Summary

Closes #232607

This PR introduces the Attacks Volume Panel to the Attacks page Summary view. It displays a line chart showing the volume of unique attacks detected over time.

Key Features

  • "Attacks volume over time" Chart: A line chart visualization using @elastic/charts.
  • Accurate Time Representation: Uses a two-step querying strategy to fetch actual attack start times:
    1. Aggregation Query: Retrieves unique kibana.alert.attack_ids within the time range from both alerts and attacks indices.
    2. Details Query: Fetches the exact kibana.alert.start (or @timestamp) for each unique attack ID from the attacks index.
  • Dynamic Time Window: The chart's x-axis automatically extends to include the genesis of any attack detected within the selected time range, ensuring visibility of long-running attacks that started before the current window.
  • Responsive Design: Uses EuiLoadingChart for loading states and responsive container sizing.

Technical Implementation

Components & Hooks

  • AttacksVolumePanel: Main component rendering the chart.
  • useAttacksVolumeData: Orchestrator hook that combines data fetching and processing.
  • useAttackIds: Hook responsible for the first step: getting unique attack IDs via terms aggregation.
  • useAttackTimestamps: Hook responsible for the second step: getting precise timestamps for those IDs.

Advanced Setting

  1. Enable the enableAlertsAndAttacksAlignment experimental feature flag in kibana.dev.yml or kibana.yml:
    xpack.securitySolution.enableExperimental: ['enableAlertsAndAttacksAlignment']
  2. Navigate to Stack Management > Advanced Settings > Space Settings > Security Solution.
  3. Find the setting Enable alerts and attacks alignment (securitySolution:enableAlertsAndAttacksAlignment).
  4. Enable the setting and save.
  5. Refresh the page if necessary.

Screenshot

Screenshot 2026-02-04 at 12 19 29

PR developed with Cursor + Gemini 3 Pro

@e40pud e40pud self-assigned this Feb 4, 2026
@e40pud e40pud requested a review from a team as a code owner February 4, 2026 15:45
@e40pud e40pud added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:Threat Hunting Security Solution Threat Hunting Team Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Threat Hunting:Investigations Security Solution Threat Hunting Investigations Team labels Feb 4, 2026
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/security-threat-hunting (Team:Threat Hunting)

@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/security-solution (Team: SecuritySolution)

@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/security-threat-hunting-investigations (Team:Threat Hunting:Investigations)

Copy link
Copy Markdown
Contributor

@NicholasPeretti NicholasPeretti left a comment

Choose a reason for hiding this comment

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

Desk tested and works as expected! Great job! ☺️ 🚀

@elasticmachine
Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #74 / Actions and Triggers app - Rules Rule Details Header should snooze the rule for a set duration
  • [job] [logs] Scout: [ platform / fleet ] plugin / Integrations are visible but cannot be added
  • [job] [logs] Scout: [ platform / fleet ] plugin / stateful - When the user has All privileges for Integrations but None for Fleet - Integrations are visible but cannot be added

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
securitySolution 8709 8717 +8

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
securitySolution 10.8MB 10.9MB +4.7KB

cc @e40pud

@e40pud e40pud merged commit cf43d50 into elastic:main Feb 4, 2026
28 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting release_note:skip Skip the PR/issue when compiling release notes Team: SecuritySolution Security Solutions Team working on SIEM, Endpoint, Timeline, Resolver, etc. Team:Threat Hunting:Investigations Security Solution Threat Hunting Investigations Team Team:Threat Hunting Security Solution Threat Hunting Team v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Security Solution][Attacks/Alerts][Attacks page][KPIs section][Summary tab] attack volume over time

4 participants