Skip to content

Reliability tracking framework#3206

Merged
candemiralp merged 25 commits intomainfrom
feature/reliability
Jan 6, 2026
Merged

Reliability tracking framework#3206
candemiralp merged 25 commits intomainfrom
feature/reliability

Conversation

@candemiralp
Copy link
Contributor

@candemiralp candemiralp commented Jan 2, 2026

Reliability Tracking Framework is a built-in feature of the plugin where the SLOs of the critical payment flows can be measured by calculating the ratio of the number of successful relevant events. As a part of this initiative, the following actions are being tracked if the feature is enabled.

  1. Obtaining Adyen payment methods
  2. Fetching redeemed gift cards
  3. Place order action with an Adyen payment method
  4. Submitting payment's details to Adyen
  5. Donations and campaign management

Note that, this feature is disabled by default and can be enabled by setting Collect and submit application reliability data field to Yes under Testing and performance section of the configuration block.

This framework collects the events for the above mentioned actions and submits to Adyen every minute. The framework is especially useful for Adyen's operational team's to proactively monitor the health of merchants' instances and for the development team to measure the quality of the releases.

There is no payment data or PII collected for the desired purpose.
The plugin only sends the state of the tracked event name together with the timestamp.

khushboo-singhvi and others added 12 commits July 10, 2025 15:29
* [ECP-9745] Update the DB schema and refactor related classes

* [ECP-9745] Update argument type declarations

* [ECP-9745] Update example event handlers

* [ECP-9745] Fix model argument
* [ECP-9751] Implement a cronjob to submit pending events

* [ECP-9751] Enable main workflow on the feature branch

* [ECP-9751] Write unit tests

* [ECP-9751] Update tests
* [ECP-9417] Implement analytics event dispatchers

* [ECP-9417] Add try-catch block
#3114)

* [ECP-9727] Implement an event dispatcher for plugin installation event

* [ECP-9727] Add missing module setup end flag
…3138)

* [ECP-9835] Add version field to the dbschema and entity definition

* [ECP-9835] Dispatch events only for Adyen namespace

* [ECP-9835] Group entities by version and submit them separately

* [ECP-9835] Put the feature behind a config flag

* Update SubmitAnalyticsEvents.php
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @candemiralp, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a comprehensive reliability data collection mechanism for the Adyen Payment module. Its primary purpose is to enhance the module's stability and performance by systematically tracking key operational events, including API interactions and controller dispatches. This data is then processed and securely transmitted to Adyen for in-depth analysis, providing valuable insights into the module's behavior in real-world scenarios. Merchants retain full control over this feature, with an explicit option to enable or disable data collection.

Highlights

  • Reliability Data Collection: Introduced a new feature to collect and submit application reliability data to Adyen for performance analysis. This feature can be enabled or disabled by the merchant.
  • Analytics Event Management: Added new API interfaces, models, and a repository for managing 'AnalyticsEvent' entities, which store details about various system events.
  • Cron Job for Data Submission: Implemented a new cron job, 'SubmitAnalyticsEvents', responsible for gathering pending analytics events, grouping them by version, and sending them to Adyen's Checkout Analytics service.
  • Event Tracking Plugins: Developed plugins for the Magento FrontController and REST API to track the start and end of Adyen-related operations, capturing both expected and unexpected outcomes as analytics events.
  • Database Schema Update: A new database table, 'adyen_analytics_event', has been added to persist analytics events before their submission, ensuring data durability and retry mechanisms.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/main.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a comprehensive reliability and analytics tracking feature. The implementation is generally solid, leveraging modern PHP features and following good design patterns for event tracking, processing, and retries. I've identified a critical bug in the analytics event collection query that could prevent events from being processed correctly. Additionally, there are several areas for improvement regarding code style, test correctness, and configuration, for which I've provided specific suggestions. Addressing these points will enhance the robustness and maintainability of this new feature.

* Optimize rest events to intercept

* Write unit tests

* Enable workflows

* Fix static code issues
* Implement clean up functionality

* Prevent the duplicate db query
@candemiralp candemiralp marked this pull request as ready for review January 6, 2026 08:11
@candemiralp candemiralp requested a review from a team as a code owner January 6, 2026 08:11
shubhamk67
shubhamk67 previously approved these changes Jan 6, 2026
@candemiralp candemiralp changed the title Feature/reliability Reliability tracking framework Jan 6, 2026
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 6, 2026

@candemiralp candemiralp merged commit a929783 into main Jan 6, 2026
9 of 10 checks passed
@candemiralp candemiralp deleted the feature/reliability branch January 6, 2026 14:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants