Skip to content

[checkpoint] Change fingerprint creation - #16918

Merged
ilyannn merged 21 commits into
elastic:mainfrom
ash-darin:change_hash_creation
May 22, 2026
Merged

[checkpoint] Change fingerprint creation#16918
ilyannn merged 21 commits into
elastic:mainfrom
ash-darin:change_hash_creation

Conversation

@ash-darin

@ash-darin ash-darin commented Jan 9, 2026

Copy link
Copy Markdown
Contributor

Enhancement

Proposed commit message

This changes the fields used to create a unique fingerprint for the event. The currently selected fields are lacking in achieving this as rejects have been observed. Checkpoint apparently often generate events that are "updates" to previous events. These events have the timestamp of the original event but incorporate a "lastupdatetime" timestamp and an update_count. Fingerprint creation therefore creates duplicates.

  • @timestamp is included, but @timestamp is renamed before use and is therefore always nil. -> removed
  • segment_time is not unique, replaced with lastupdatetime
  • add update_count

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.

How to test this PR locally

Check your logs/indices if any messages are rejected. Apply fix and check whether numbers go down..

The fields originally chosen for fingerprinting do not create a unique fingerprint. The new fields create a more unique fingerprint.
just reordering for possible better reading
Updated PR number
@ash-darin ash-darin changed the title Change hash creation Jan 9, 2026
@ash-darin ash-darin changed the title [checkpoint] Change hash creation Jan 9, 2026
@andrewkroh andrewkroh added the Integration:checkpoint Check Point label Jan 9, 2026
@botelastic

botelastic Bot commented Feb 19, 2026

Copy link
Copy Markdown

Hi! We just realized that we haven't looked into this PR in a while. We're sorry! We're labeling this issue as Stale to make it hit our filters and make sure we get back to it as soon as possible. In the meantime, it'd be extremely helpful if you could take a look at it as well and confirm its relevance. A simple comment with a nice emoji will be enough :+1. Thank you for your contribution!

@botelastic botelastic Bot added the Stalled label Feb 19, 2026
@botelastic botelastic Bot removed the Stalled label Feb 19, 2026
@ash-darin
ash-darin marked this pull request as ready for review March 19, 2026 09:59
@ash-darin
ash-darin requested a review from a team as a code owner March 19, 2026 09:59
@andrewkroh andrewkroh added the Team:Integration-Experience Security Integrations Integration Experience [elastic/integration-experience] label Mar 19, 2026
@elasticmachine

Copy link
Copy Markdown

Pinging @elastic/integration-experience (Team:Integration-Experience)

@ilyannn

ilyannn commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

Hey @efd6, @gogochan — this PR changes the checkpoint fingerprint fields used for document _id calculation. It swaps out @timestamp and checkpoint.segment_time for checkpoint.lastupdatetime and checkpoint.update_count, keeping checkpoint.loguid, checkpoint.time, and checkpoint.sequencenum.

@efd6 — you built the original fingerprint logic in #6483 to handle loguid collisions. Would you mind weighing in on whether dropping @timestamp and segment_time could reintroduce that issue?

@gogochan — you added sequencenum to the fingerprint in #12439. Does this change look right to you?

🤖 Generated by Claude Code/Opus 4.6

@ilyannn
ilyannn requested review from efd6 and gogochan March 24, 2026 04:46
@efd6

efd6 commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

@ilyannn The change will not reintroduce the issue I fixed. However segment_time should not be removed from the set of fields. It should be

fields:
  - checkpoint.loguid
  - checkpoint.time
  - checkpoint.segment_time
  - checkpoint.lastupdatetime
  - checkpoint.sequencenum
  - checkpoint.update_count
target_field: "_id"
ignore_missing: true

The description text in the changelog could be improved. Suggest something like "Fix document fingerprint to prevent rejection of Check Point update events. Previously, fingerprints lacked fields that would distinguish update events from their originals."

The integration should probably add a latest transform as well, but that is future work.

@ash-darin

ash-darin commented Mar 24, 2026

Copy link
Copy Markdown
Contributor Author

HI @efd6 ,

as I have used the described fingerprint forsome time and have not observed drops, do you remember why segment_time is important? It's perfectly possible that your combination is only observed in certain circumstances, we all only see what the installations before us produce after all. You mentiond an issue, do you have a link?

P.S. I don't mean to haggle over this, I am just genuinely curious, especially if you have any documentation I could use to develop my understanding further.

@ilyannn

ilyannn commented May 18, 2026

Copy link
Copy Markdown
Contributor

@ash-darin Thank you for your work. Can you please resolve the conflicts? I'm running the checks in the meanwhile.

@ash-darin

Copy link
Copy Markdown
Contributor Author

@ash-darin Thank you for your work. Can you please resolve the conflicts? I'm running the checks in the meanwhile.

@ilyannn I have corrected the conflicts. Didn't notice them, probably a problem with my notifications.

@ilyannn
ilyannn self-requested a review May 19, 2026 13:16

@ilyannn ilyannn left a comment

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.

LGTM, everything as done as @efd6 requested

@ilyannn

ilyannn commented May 19, 2026

Copy link
Copy Markdown
Contributor

/test

@elastic-vault-github-plugin-prod

elastic-vault-github-plugin-prod Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

🚀 Benchmarks report

Package checkpoint 👍(0) 💚(0) 💔(1)

Expand to view
Data stream Previous EPS New EPS Diff (%) Result
firewall 1182.03 938.09 -243.94 (-20.64%) 💔

To see the full report comment with /test benchmark fullreport

@ilyannn

ilyannn commented May 20, 2026

Copy link
Copy Markdown
Contributor

/test

@ilyannn

ilyannn commented May 22, 2026

Copy link
Copy Markdown
Contributor

/test

@ilyannn
ilyannn enabled auto-merge (squash) May 22, 2026 18:19
@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

@ilyannn
ilyannn merged commit 13106aa into elastic:main May 22, 2026
8 checks passed
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package checkpoint - 1.46.0 containing this change is available at https://epr.elastic.co/package/checkpoint/1.46.0/

tejasc-metron pushed a commit to metron-labs/Doppel-Elastic-Security-SIEM that referenced this pull request May 25, 2026
The fields originally chosen for fingerprinting do not create a unique fingerprint. The new fields create a more unique fingerprint.

---------

Co-authored-by: Ilya Nikokoshev <ilya.nikokoshev@elastic.co>
@ash-darin
ash-darin deleted the change_hash_creation branch June 1, 2026 14:50
herrBez pushed a commit to herrBez/integrations that referenced this pull request Jun 1, 2026
The fields originally chosen for fingerprinting do not create a unique fingerprint. The new fields create a more unique fingerprint.

---------

Co-authored-by: Ilya Nikokoshev <ilya.nikokoshev@elastic.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Integration:checkpoint Check Point Team:Integration-Experience Security Integrations Integration Experience [elastic/integration-experience]

6 participants