{"id":318391,"date":"2026-06-18T11:14:48","date_gmt":"2026-06-18T11:14:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/simple-observer\/"},"modified":"2026-06-18T11:14:14","modified_gmt":"2026-06-18T11:14:14","slug":"myobserver-runtime-error-monitor","status":"publish","type":"plugin","link":"https:\/\/sa.wordpress.org\/plugins\/myobserver-runtime-error-monitor\/","author":23506059,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.0","stable_tag":"3.0.0","tested":"7.0","requires":"6.3","requires_php":"8.0","requires_plugins":null,"header_name":"MyObserver Runtime Error Monitor","header_author":"Darris Banks","header_description":"Real-time error reporting based on log events.","assets_banners_color":"","last_updated":"2026-06-18 11:14:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/myobserver.io","rating":0,"author_block_rating":0,"active_installs":0,"downloads":23,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"3.0.0":{"tag":"3.0.0","author":"myobserver","date":"2026-06-18 11:14:14"}},"upgrade_notice":[],"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[262246],"plugin_tags":[434,93,1522,5603,248562],"plugin_category":[54],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-318391","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-dashboard","plugin_tags-errors","plugin_tags-logging","plugin_tags-monitoring","plugin_tags-observability","plugin_category-security-and-spam-protection","plugin_committers-myobserver"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/myobserver-runtime-error-monitor.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>MyObserver Runtime Error Monitor records WordPress and PHP runtime errors, groups recurring failures, and surfaces them in an inline dashboard calendar widget for day-by-day triage.<\/p>\n\n<p>Privacy and data use:\n- Free mode stores logs in WordPress database tables.\n- Free mode does not require an external logging bridge.<\/p>\n\n<p>Distinct focus:\n- Calendar-based daily triage instead of a flat log stream.\n- Grouped recurring errors to reduce alert noise and speed investigation.\n- Built for WordPress admin workflows (dashboard-first visibility for site operators).<\/p>\n\n<p>Bundled build artifacts:\n- This plugin ships compiled Angular assets in <code>templates\/angular-app\/<\/code>.\n- Public source repository with unminified source code for bundled assets: https:\/\/github.com\/darrisb\/simple-observer\n- Build command example to reproduce bundled assets: <code>npm ci &amp;&amp; npm run build<\/code>\n- The source repository is maintained for review and maps to plugin release versions.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the MyObserver API service to power dashboard and premium-related API features in the bundled Angular app.<\/p>\n\n<p>Service domain:\n- https:\/\/api.myobserver.io<\/p>\n\n<p>What the service is used for:\n- Retrieving premium availability\/status.\n- Sending client-side error telemetry from the dashboard app.<\/p>\n\n<p>What data is sent and when:\n- On dashboard load (or when the bundled app checks feature availability), the plugin\/app sends a request to check premium availability. This request is used to return availability status and to enable upgrade flow actions when applicable.\n- When users start an upgrade flow, the app sends request data needed to create a Stripe checkout session (for example, site\/application context needed by the checkout flow).\n- When client-side dashboard errors occur while the dashboard app is in use, the app may send telemetry such as error message, stack trace (if available), page URL, browser user agent, and timestamp for diagnostics and product reliability improvements.\n- As with normal web requests, service-side technical metadata (such as IP address and request headers) may be processed by the API infrastructure for security, abuse prevention, and operational logging.<\/p>\n\n<p>Service policies and terms:\n- Privacy Policy: https:\/\/myobserver.io\/Privacy%20Policy.pdf\n- Terms of Service: https:\/\/myobserver.io\/Terms%20of%20Service.pdf<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload plugin files to <code>\/wp-content\/plugins\/myobserver-runtime-error-monitor\/<\/code> or install from the plugin screen.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<li>Open WordPress Dashboard to view the widget.<\/li>\n<\/ol>\n\n<!--section=changelog-->\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Initial release with runtime error capture and dashboard widget.<\/li>\n<\/ul>","raw_excerpt":"WordPress runtime incident triage plugin with a dashboard calendar, grouped error patterns, and AJAX log retrieval for fast debugging.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/318391","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=318391"}],"author":[{"embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/myobserver"}],"wp:attachment":[{"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=318391"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=318391"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=318391"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=318391"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=318391"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sa.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=318391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}