{"id":160014,"date":"2022-07-15T13:45:06","date_gmt":"2022-07-15T13:45:06","guid":{"rendered":"https:\/\/en-gb.wordpress.org\/plugins\/anomify\/"},"modified":"2024-03-19T13:42:51","modified_gmt":"2024-03-19T13:42:51","slug":"anomify","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/anomify\/","author":5842531,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"0.3.6","stable_tag":"0.3.6","tested":"6.5.8","requires":"5.0","requires_php":"7.0","requires_plugins":null,"header_name":"Anomify","header_author":"Anomify AI","header_description":"Send data about your WordPress site to anomify.ai for anomaly detection","assets_banners_color":"","last_updated":"2024-03-19 13:42:51","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"http:\/\/wordpress.org\/plugins\/anomify","header_author_uri":"https:\/\/anomify.ai\/","rating":5,"author_block_rating":0,"active_installs":10,"downloads":2642,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["installation","changelog","description"],"tags":{"0.2.7":{"tag":"0.2.7","author":"simon.holliday","date":"2022-07-15 13:46:00"},"0.2.9":{"tag":"0.2.9","author":"simon.holliday","date":"2022-08-03 14:20:01"},"0.3.0":{"tag":"0.3.0","author":"simon.holliday","date":"2022-08-04 09:23:34"},"0.3.1":{"tag":"0.3.1","author":"simon.holliday","date":"2022-08-24 15:22:09"},"0.3.2":{"tag":"0.3.2","author":"simon.holliday","date":"2022-08-25 15:18:12"},"0.3.3":{"tag":"0.3.3","author":"simon.holliday","date":"2023-07-12 14:24:02"},"0.3.4":{"tag":"0.3.4","author":"simon.holliday","date":"2024-03-12 11:38:17"},"0.3.5":{"tag":"0.3.5","author":"simon.holliday","date":"2024-03-14 18:07:39"},"0.3.6":{"tag":"0.3.6","author":"simon.holliday","date":"2024-03-19 13:42:51"}},"upgrade_notice":{"0.2.1":"<p>Now works without requiring the cURL library.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.7","0.2.9","0.3.0","0.3.1","0.3.2","0.3.3","0.3.4","0.3.5","0.3.6"],"block_files":[],"assets_screenshots":[],"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[1108,212088,212087,1124,3283],"plugin_category":[],"plugin_contributors":[83903],"plugin_business_model":[],"class_list":["post-160014","plugin","type-plugin","status-publish","hentry","plugin_tags-analysis","plugin_tags-anomalies","plugin_tags-anomaly","plugin_tags-detection","plugin_tags-metrics","plugin_contributors-simonholliday","plugin_committers-simonholliday"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/anomify.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=installation-->\n<p>You will need to obtain an API key and data URL from <a href=\"https:\/\/anomify.ai\/\">Anomify AI<\/a> before the plugin can be enabled. Anomify has a free Developer account which allows up to 100 metrics.<\/p>\n\n<!--section=changelog-->\n<h4>0.3.6<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.5.0<\/li>\n<\/ul>\n\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Increased HTTP timeout to handle slower server connections<\/li>\n<\/ul>\n\n<h4>0.3.4<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.4.3<\/li>\n<\/ul>\n\n<h4>0.3.3<\/h4>\n\n<ul>\n<li>Tested with WordPress 6.2.3<\/li>\n<li>Update to documentation<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Added metrics for successful and failed logins<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Integration with WooCommerce plugin<\/li>\n<li>Fix for WP Statistics integration<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Addition of 'platform' from WP Statistics<\/li>\n<\/ul>\n\n<h4>0.2.9<\/h4>\n\n<ul>\n<li>Integration with WP Statistics plugin<\/li>\n<\/ul>\n\n<h4>0.2.8<\/h4>\n\n<ul>\n<li>Bug fix for updating config<\/li>\n<li>Delete config from DB when plugin is deleted<\/li>\n<\/ul>\n\n<h4>0.2.7<\/h4>\n\n<ul>\n<li>Sanitize text inputs<\/li>\n<\/ul>\n\n<h4>0.2.6<\/h4>\n\n<ul>\n<li>Use WordPress HTTP_API for all requests<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Add ability for other plugins to send metrics<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Add exception handler to send metric for unhandled exceptions<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Remove debug info from config page<\/li>\n<li>Fix to params passed into _addHookAction()<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Add form validation and user feedback<\/li>\n<li>Add API key and URL live validation<\/li>\n<li>Catch exceptions on HTTP POST errors<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>Always use file_get_contents() for POST, even when cURL is available<\/li>\n<li>Add User-agent HTTP header<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Store config JSON in the database rather than filesystem<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>\n\n<!--section=description-->\n<p>The Anomify plugin sends selected performance metrics about your WordPress site to the Anomify.ai service for anomaly detection and alerting.<\/p>\n\n<p>After ingesting data we learn normal patterns, detect any unusual behaviour, alert on anomalies in real time, and constantly feed back to improve the model.<\/p>\n\n<p>You will need to obtain an API key and data URL from <a href=\"https:\/\/anomify.ai\/\">Anomify AI<\/a> before the plugin can be enabled. Anomify has a free Developer account which allows up to 100 metrics.<\/p>\n\n<h3>Intro<\/h3>\n\n<p>Anomify AI is a UK based anomaly detection company for real time time-series data. Using machine learning and multi-stage analysis we enable organisations to react quickly to the changing health of their data at scale.<\/p>\n\n<p>We provide a cost-effective anomaly detection solution, which can be deployed flexibly via the cloud or on-premise.<\/p>\n\n<p>Anomify employs a semi-supervised system model that allows domain experts to directly train the system and continually improve its performance and usefulness.<\/p>\n\n<h3>Native Metrics<\/h3>\n\n<ul>\n<li>content.comment.added.{approved|not-approved|spam}<\/li>\n<li>content.{post_id}.deleted<\/li>\n<li>content.{post_id}.updated<\/li>\n<li>content.{post_type}.status.transition.{new_status}<\/li>\n<li>login.fail<\/li>\n<li>login.success<\/li>\n<li>php.exception<\/li>\n<\/ul>\n\n<h3>Integration with other WordPress plugins<\/h3>\n\n<p>Anomify can integrate with certain other plugins to send metrics describing their performance to Anomify which wll automatically detect anomalies.<\/p>\n\n<p>The Anomify Wordpress plugin can detect anomalies on metrics generated from certain other plugins.<\/p>\n\n<p>To enable a third-party plugin integration, first install and activate the plugin, then enable it from the Anomify plugin settings page. All plugin integrations are disabled by default.<\/p>\n\n<p>Metrics generated from plugins are automatically prefixed with \"plugin.{plugin_name}.\" e.g. \"plugin.woocommerce.\".<\/p>\n\n<p>These integrations are works in progress. If you find them useful, <a href=\"https:\/\/wordpress.org\/support\/plugin\/anomify\/\">please let us know<\/a> as it will help us to prioritise further development.<\/p>\n\n<h3>WP Statistics<\/h3>\n\n<p><a href=\"https:\/\/wordpress.org\/plugins\/wp-statistics\/\">Plugin page<\/a><\/p>\n\n<p>Metrics that Anomify will collect:<\/p>\n\n<ul>\n<li>visitor.new - number of new visitors today<\/li>\n<li>visitor.returning - number of return visitors today<\/li>\n<li>visitor.country.$country_code - number of visitors from country with ISO code $country_code e.g. \"ca\"<\/li>\n<li>visitor.agent.$agent - number of visitors using user agent $agent e.g. \"chrome\"<\/li>\n<li>visitor.device.$device - number of visitors using device type $device e.g. \"desktop\"<\/li>\n<li>visitor.platform.$platform - number of visitors using platform $platform e.g. \"windows\"<\/li>\n<li>exclusion.$exclusion_reason - number of requests which are excluded from visit counts due to $exclusion_reason e.g. \"robot\"<\/li>\n<\/ul>\n\n<p>Metrics from this plugin are prefixed with \"plugin.wp-statistics\", e.g. \"plugin.wp-statistics.visitor.new\"<\/p>\n\n<h3>WooCommerce<\/h3>\n\n<p><a href=\"https:\/\/wordpress.org\/plugins\/woocommerce\/\">Plugin page<\/a><\/p>\n\n<p>Metrics that Anomify will collect:<\/p>\n\n<ul>\n<li>cart.added<\/li>\n<li>cart.emptied<\/li>\n<li>cart.updated<\/li>\n<li>customer.created<\/li>\n<li>customer.deleted<\/li>\n<li>customer.password.reset<\/li>\n<li>order.cancelled<\/li>\n<li>order.created<\/li>\n<li>payment.complete<\/li>\n<\/ul>\n\n<p>Metrics from this plugin are prefixed with \"plugin.woocommerce\", e.g. \"plugin.woocommerce.payment.complete\"<\/p>\n\n<h3>For plugin developers<\/h3>\n\n<p>If you want to send metrics from your own plugin, install the Anomify plugin, and use the following syntax in your own code:<\/p>\n\n<pre><code>do_action('anomify_increment_plugin_metric', 'my.metric.name');\n<\/code><\/pre>\n\n<p>Or to increment the metric by a value other than 1, e.g. 5, add an optional third parameter:<\/p>\n\n<pre><code>do_action('anomify_increment_plugin_metric', 'my.metric.name', 5);\n<\/code><\/pre>\n\n<p>The name of your plugin will be automatically prepended to the metric name so you don't need to include it in the name that you pass.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Always on<\/li>\n<li>Analysing your data 24\/7<\/li>\n<li>Real-time alerts<\/li>\n<li>Custom algorithms<\/li>\n<li>Root cause analysis<\/li>\n<li>API access<\/li>\n<li>Patented tech<\/li>\n<\/ul>","raw_excerpt":"The Anomify plugin sends selected performance metrics about your WordPress site to the Anomify.ai service for anomaly detection and alerting.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/160014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=160014"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/simonholliday"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=160014"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=160014"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=160014"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=160014"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=160014"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=160014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}