Still trying to debut the Payment MFE with Cybersource in Lilac. With both the Native and the Tutor installations.
By default the Payment MFE uses the logging set up in frontend-platform which uses NewRelic. We do not use NewRelic. How can I change this locally for an MFE? And what service implementation are available besides New Relic?
This brings up concerns that the defaults in frontend-platform might be too edX centric.
And since all MFEs refer to frontend-platform, it might cause issues for Open edX instances that do not use New Relic for Logging or Segment for Analytics. Just 2 examples.
It’s also a case of a repo (frontend-platform) being used but not being tagged for a specific open-release. How will this allow people to make changes if they do not use the same implementations as edX.org ? Theoretical question for now.
Speaking as a small to medium operator and not being an expert developer as most people in this group, I have concerns with regards to the use and modifications of logging and analytics implementations by small or medium operators who cannot afford New Relic or Segment.
If someone has an idea how to easily change New Relic to an implementation that would log to a terminal console or a file, I am all ears. Especially without a need to reinstall the MFE. I would also gladly accept a solution if I need to reinstall the MFE.
I don’t think there is any quick answer to this question, but I’d love to learn more about it to see how and if this could be updated to work for more operators. I had written What observability tools do you use for application monitoring? a long time ago to try to learn about what is going on in the community, but based on the zero replies, you can see it wasn’t very effective.
I must have missed it or I didn’t reply to it because we were still in the middle of figuring out how to upgrade to Tutor without our payment processor (Paysafe) that was no longer supported by the new Payment MFE. We finally had a breakthrough with our finance department who allowed us to use Cybersource after they switched from a previous backend to Moneris who was supporting Cybersource.
Even now, we don’t really have anything for application monitoring just monitoring tools for the system (AWS Cloudwatch and Munin). You can’t afford a lot when you do not have a huge budget and most of it goes into the hosting costs at AWS.
There are some open source APM (Application Performance Monitoring) products out there, I recently summarized the ones that looked most promising for use with Open edX in https://openedx.atlassian.net/wiki/spaces/AC/pages/3555754025/Application+Performance+Monitoring . I was thinking about utility in development environments at the time, but they’re probably useful for at least some scales of production sites also.
I’m sad to report that there’s an oversight here in the original plans for configurability in frontend-platform. While the logging and analytics services are well-factored enough to allow us to replace the default implementations (New Relic and Segment), the last-mile configurability that would allow you to set a different implementation from environment variables was never completed. Replacing the services if you fork the repo is quite straightforward, you can edit the initialize function call to supply your implementation. But without forking, you can’t tell the build process to use a different implementation.
This is further limited by the fact that the build process only allows string-based environment variables. There’s nascent code in frontend-platform/frontend-build to allow us to configure MFEs via JS files (instead of .env files), which would allow us to import a custom implementation and have it consumed by frontend-platform’s initialization process, but we’re just not quite there. I recall creating a backlog item in the frontend working group for this a long while back, but I can’t seem to find it anymore.