Giter VIP home page Giter VIP logo

wp-newrelic's Introduction

WP New Relic

New Relic APM reports for WordPress.

Support Level Release Version WordPress tested up to version GPL-2.0-or-later License

Overview

WP New Relic (WPNR) is designed to be used with the New Relic APM, and uses the New Relic PHP Agent API to augment existing metrics with valuable WordPress details such as templates, users, request type, and Transaction names. This plugin is tested with New Relic's PHP Agent version 10.19.0.9. Data collected by this plugin can be queried in New Relic's Insights product, using New Relic Query Language (NRQL).

New Relic is a trademark of New Relic, Inc.

Administrative settings

After activating the plugin, You will see a new option named New Relic under the Tools menu in your WordPress Dashboard. If you are running WordPress in Network Mode, the settings page will be found in your Network Dashboard.

wp-nr-settings

Capture URL Parameters

If the Capture URLs setting is enabled, the plugin will capture URL parameters for displaying in Transaction traces. As an example, turning on this feature will store a URL like http://example.com/?p=1234, while leaving it off will result in the URL being stored as http://example.com/. This feature can be useful for debugging or providing granular data if required. In certain cases, however, it can cause confusion by creating a "false positive" appearance of multiple URLs (e.g. UTM codes or tracking info from social media).

Basic Config

By default the plugin will setup 3 New Relic configuration parameters:

appname and capture_params config can be overridden using the wp_nr_config filter. The wp_nr_setup_config action hook can also be used to setup any extra config.

New Relic Custom Attributes

Certain useful custom attributes (you can think of these as 'post meta for New Relic') will be set for each event and can provide additional information related to your WordPress installation. You can query events and filter them using these attributes in New Relic Insights. See the NRQL reference for more details on how to query events.

User

The user attribute is set using newrelic_set_user_attributes. If the user is logged in, the user ID will be set as the user attribute and if not the user attribute will be set to not-logged-in. Ex: In New Relic Insights you can query Transactions for non-logged in users as

SELECT * FROM Transaction WHERE appName = '{appName}' AND user = 'not-logged-in'

Post ID

For single posts, the post ID will be set via the post_id custom attribute.

Ex: Get all Transactions for a post with ID 190.

SELECT * FROM Transaction WHERE appName = '{appName}' AND post_id = '190'

You can also perform more complex queries, such as counting the number of views for a post. This can be helpful for determining top content on your site.

SELECT count(*) FROM Transaction WHERE appName = '{appName}' AND post_id = '190'

Template

For each request, the Template being used is set as the template custom attribute.

Ex: You can query all Transactions for a particular template.

SELECT * FROM Transaction WHERE appName = '{appName}' AND template = '{Absolute Template Path}'

Theme

The current theme is set as the theme custom attribute.

Ex: Query all Transactions running the "Twenty Fifteen" theme.

SELECT * FROM Transaction WHERE appName = '{appName}' AND theme = 'Twenty Fifteen'

Request type

There can be 3 type of requests: web, ajax and cli. The current request type is set as the request_type custom attribute. The request type can be overridden using the wp_nr_request_type filter.

Ex: Get all Transactions for the "ajax" request type

SELECT * FROM Transaction WHERE appName = '{appName}' AND request_type = 'ajax'

Transaction Name

The Transaction name is set based on the main WP_Query parameters using newrelic_name_transaction. Possible values are Default Home Page, Front Page, Blog Page, Network Dashboard, Dashboard, Single - {post_type}, Page - {pagename}, Date Archive, Search Page, Feed, Archive - {post_type}, Category - {cat_name}, Tag - {tag_name}, Tax - {taxonomy} - {term}

Custom Error Logging

Using the wp_nr_log_errors function, any plugin/theme can log errors/notices to New Relic for the current Transaction. Note: This function can be called more than once, but only the last call will log the error to New Relic. This is a known limitation of the PHP Agent API. As a reminder, since the PHP Agent runs only when PHP does, any cached requests will not appear in your error logs.

wp_nr_log_errors( 'Error message', Exception $exception );

Runtime of async tasks

This plugin also tracks the runtime of gearman async tasks. A Gearman async task run for a particular hook and its runtime can be tracked using the “wp_async_task-{hook}” custom attribute and queried in New Relic Insights.

Screenshots

wp-nr-transactions (Transactions in New Relic APM)

wp-nr-single-post-query (New Relic Insights query for a single post)

wp-nr-total-post-view-count (Total post view counts for a single post using post_id custom parameter)

wp-nr-databaseduration-query (Get Template used and Transactions whose database duration is more than 0.1)

Known Issues/Caveats

PHP version

PHP version 7.3.3 is known to cause issues with this plugin, updating to 7.3.11 or greater appears to resolve these issues. For more details, see issue#39.

Have an issue to report?

If you identify any errors or have an idea for improving the plugin, please open an issue. We're excited to see what the community thinks of this project, and we would love your input!

Support Level

Stable: 10up is not planning to develop any new features for this, but will still respond to bug reports and security concerns. We welcome PRs, but any that include new features should be small and easy to integrate and should not include breaking changes. We otherwise intend to keep this tested up to the most recent version of WordPress.

Like what you see?

wp-newrelic's People

Contributors

bmarshall511 avatar brandwaffle avatar burhandodhy avatar dkotter avatar eugene-manuilov avatar goldenapples avatar herewithme avatar jeckman avatar jeffpaul avatar msaggiorato avatar nicholasio avatar ninnypants avatar oscarssanchez avatar oscarssanchezz avatar rahe avatar ritesh-patel avatar sidsector9 avatar tott avatar zamanq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wp-newrelic's Issues

wp new relic: new relic is not installed.

Describe your question

PHP 8.2 and the latest wordpress 6.4.1

When I go to tools it says new relic is not installed.

Any advice ?

Code of Conduct

  • I agree to follow this project's Code of Conduct

WordFence flags this plugin not being updated past 2 years?

Describe the bug

This is a concern using this plugin, will this be updated soon?

Steps to Reproduce

Checking on if you are planning to make updates

Screenshots, screen recording, code snippet

No response

Environment information

Wordpress

WordPress information

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Add plugin ZIP action

Is your enhancement related to a problem? Please describe.

Useful in the release process (example) and for other testing scenarios, so let's add in the action to build a plugin ZIP.

Designs

No response

Describe alternatives you've considered

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Add context for "Capture URLs"

There's 1 checkbox in the settings for this plugin. I have no idea what "capture URLs" means. I'd be more user-friendly to add some explanation for what this checkbox is doing.

screenshot 2016-12-05 14 54 16

WP New Relic setup issue

Describe your question

I'm using a "WP New Relic" plugin suggested by the New Relic team that adds extra functionality to New Relic and lets us get more detailed with the information captured.

I have added the plugin to my website and when I'm using the custom attributes provided by the plugin on the query monitor I don't see any data. Sometimes it also shows the error of an invalid attribute.

I need help setting up the plugin correctly so that I can get the desired data. Please find the attachment, it shows how the plugin setup looks on our end.

The motive for using the "WP New Relic" plugin is to fetch the list of plugins which is getting called when a specific page is requested by the user.
Screen Shot 2022-09-15 at 7 12 47 PM

Code of Conduct

  • I agree to follow this project's Code of Conduct

Missing argument 2 for WP_NR_APM::add_custom_parameter()

I'm running this plugin on a production multisite install and I have one error that is happening over and over again, appears to be on every request, and filling up my error logs:

[21-Mar-2017 19:59:45 UTC] PHP Warning:  Missing argument 2 for WP_NR_APM::add_custom_parameter(), called in /var/www/sites/multisite/wp-content/plugins/wp-newrelic/classes/class-wp-nr-apm.php on line 138 and defined in /var/www/sites/multisite/wp-content/plugins/wp-newrelic/classes/class-wp-nr-apm.php on line 197

What other info would help with debugging this?

Add optional post_id attribute to allowing filtering of single posts

NR's NRQL API enables us to do things like query for popular posts. That said, NR itself has no idea what a 'post' is vs a category page, for example. To get around this, we should save a custom attribute of 'post_slug' that is only saved when a single post is loaded. This will enable a NRQL query filtered only to post_slugs, or to enable us to retrieve the pageviews associated with a particular slug (helpful if permalink structure changes).

Release version 1.3.2

This issue is for tracking changes for the 1.3.2 release. Target release date: 27 June 2022.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.3.2 for your changes.
  • Version bump: Bump the version number in newrelic-reporting-for-wordpress.php and readme.txt if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt.
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .gitattributes.
  • Readme updates: Make any other readme changes as necessary. README.md is geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Merge: Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into trunk (git checkout trunk && git merge --no-ff develop). trunk contains the stable development version.
  • Push: Push your trunk branch to GitHub (e.g. git push origin trunk).
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the trunk branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the 1.3.2 milestone.
  • SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
  • Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/wp-newrelic/. This may take a few minutes.
  • Close milestone: Edit the 1.3.2 milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.3.2 do not make it into the release, update their milestone to 1.4.0 or Future Release.

Rest Requests never show up

Hello,

I have noticed that the action "wp" isn't launched on REST requests so no "REST API" traces are logged into New Relic.
I have fixed this with this code

                if ( is_admin() ) {
                        add_action( 'admin_init', array( $this, 'set_admin_transaction' ) );
                } else {
                        add_action( 'wp', array( $this, 'set_wp_transaction' ) );
                        add_action( 'rest_api_init', array( $this, 'set_wp_transaction' ) );
                }

Maybe there is a better way to do this ?

Cheers
Nicolas,

Too many metric names being created

I installed this plugin on a client site last week and all was looking good. But over the weekend New Relic opened a ticket saying "This ticket was created due to a very large number of metric names being created for your php application"

It appears that a distinct transation type is being created for each custom post type, tag, category and page. 183 were created before New Relic stopped allowing new metric creation on this application.

Test against WordPress 5.9

Is your enhancement related to a problem? Please describe.

Describe the solution you'd like

  • test WP New Relic on WordPress 5.9
  • open issues for any incompatibilities noted in testing
  • resolve issues identified in testing
  • bump "tested up to" version
  • if code changes needed due to incompatibilities, ship a plugin release, otherwise use "Plugin asset/readme update" action to update "tested up to" version on .org repo

Designs
n/a

Describe alternatives you've considered
None

Additional context

Test against WordPress 5.5

Is your enhancement related to a problem? Please describe.
Once WordPress 5.5 is released, we'll want to test WP New Relic to see if any incompatibility issues arise.

Describe the solution you'd like

  • test WP New Relic on WordPress 5.5
  • open issues for any incompatibilities noted in testing
  • resolve issues identified in testing
  • bump "tested up to" version
  • if code changes needed due to incompatibilities, ship a plugin release, otherwise use "Plugin asset/readme update" action to update "tested up to" version on .org repo

Designs
n/a

Describe alternatives you've considered
none

Additional context
none

Allow disabling of Installation notice

In some cases NewRelic APM is not installed on all available servers due to the cost impact. In this cases the installation notice that is fired when the NewRelic extension is not installed can be troublesome. The following code change can provide a work-around.

diff --git a/classes/class-wp-nr.php b/classes/class-wp-nr.php
index ec454ea..b99d343 100644
--- a/classes/class-wp-nr.php
+++ b/classes/class-wp-nr.php
@@ -13,6 +13,11 @@ class WP_NR {
                        $this->include_files();
                        $this->init();
                } else {
+                       // enable a bypass for installations where you might want to install the plugin only on a specified set of servers
+                       if ( defined( 'WP_NR_DISABLE_INSTALL_NOTICE' ) && true === WP_NR_DISABLE_INSTALL_NOTICE ) {
+                               return;
+                       }
+
                        if ( WP_NR_IS_NETWORK_ACTIVE ) {
                                add_action( 'network_admin_notices', array( $this, 'wp_nr_not_installed_notice' ) );
                        } else {

Update Support Level from Active to Stable

Is your enhancement related to a problem? Please describe.

Is your enhancement related to a problem? Please describe.

Once the following are completed:

... we can then work to update the support level for this plugin from Active to Stable as we can generally consider the optimal feature set of the plugin complete. Tasks to complete this change:

Designs

n/a

Describe alternatives you've considered

n/a

Code of Conduct

  • I agree to follow this project's Code of Conduct

Designs

No response

Describe alternatives you've considered

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Incompatibility /w Multisite & Beaver Builder

We had installed this for a client a few weeks ago and it's caused us good 8 hours of research as to why administrators on some pages would get denied access to edit Beaver Builder pages...

It seems that by running

newrelic_set_user_attributes( $user->ID, '', array_shift( $user->roles ) );

You guys are unsetting user roles for that particular user... users administrator roles were being removed... after disabling that line in class-wp-nr-apm.php functionality to BB has returned to normal...

Not a great way to spend 8 hours of company time trying to track this down today :(

PHP 8.1 deprecation on Constant `FILTER_SANITIZE_STRING`

Describe the bug

The following came in from Sven <[email protected]>:

Hello,
Php 8.1 PHP Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home/chilevapo.cl/public_html/wp-content/plugins/wp-newrelic/classes/class-wp-nr-dashboard.php on line 27

Steps to Reproduce

Coordinating via email to capture additional information.

Screenshots, screen recording, code snippet

No response

Environment information

No response

WordPress information

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Test against WordPress 6.0

Is your enhancement related to a problem? Please describe.
Once WordPress 6.0 RC1 is released, we'll want to test WP New Relic to see if any incompatibility issues arise.

Describe the solution you'd like

  • test WP New Relic on WordPress 6.0 RC1
  • open issues for any incompatibilities noted in testing
  • resolve issues identified in testing
  • bump "tested up to" version
  • if code changes needed due to incompatibilities, ship a plugin release, otherwise use "Plugin asset/readme update" action to update "tested up to" version on .org repo

Designs
n/a

Describe alternatives you've considered
none

Additional context
Related: #44.

Write Cypress E2E test scripts

Is your enhancement related to a problem? Please describe.

Write Cypress E2E test scripts for automated testing

Designs

No response

Describe alternatives you've considered

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Posts that are served through caching plugins like batcache bypass `disable_nr_autorum()` logic

I've noticed on a production site that posts which are retrieved through batcache seem to be getting New Relic's <script> tags embedded, in cases where it should be disabled.

An example is AMP pages. On the initial page render, the action pre_amp_render_post action is fired, which causes disable_nr_autorum() to fire, preventing the New Relic browser scripts from being injected on the page.

However, if that same page request is served through batcache, the appropriate action isn't fired, and New Relic scripts are inserted (in some cases, re-inserted) into the HTML markup retrieved from memcache.

This may not be an issue that can be easily fixed in this plugin, but I wanted to open an issue here to track progress on it. It may be possible to output a special vary_cache_on function if batcache is detected. If not, and this is something that needs to be fixed with a special nginx directive or a function in the wp-config file, it would be good to at least have it documented here. Perhaps we can show example code that users can copy into their webserver configuration in an admin notice or help page?

WPSEO Sitemap is getting attributed to the Blog page

When the WPSEO plugin generates the sitemap for a site with a large number of posts it tends to cause a slow query. The plugin is attributing that slow query to the Blog Page. It would be nice for it to get attributed to a sitemap page making it easier to distinguish between the transactions that impact the blog page versus the sitemap.

Test against WP 5.3

Is your enhancement related to a problem? Please describe.
Now that WordPress 5.3 is released, we'll want to test WP New Relic to see if any incompatibility issues arise.

Describe the solution you'd like

  • test WP New Relic on WP 5.3
  • open issues for any incompatibilities noted in testing
  • resolve issues identified in testing
  • bump "tested up to" version
  • if code changes needed due to incompatibilities, ship a plugin release, otherwise use "Plugin asset/readme update" action to update "tested up to" version on .org repo

Designs
n/a

Describe alternatives you've considered
none

Additional context
none

Small typo in description {browse|d}

Looking at the description from /wp-admin/network/plugins.php on a multisite environment, I am seeing a word that may be used incorrectly.

Admin settings can be browse after activating plugin. You should see a new option named New Relic under Tools menu. In case of WPMU, it could be found in network dashboard.

This seems to make more sense written as:

Admin settings can be browsed after activating plugin. You should see a new option named New Relic under Tools menu. In case of WPMU, it could be found in network dashboard.

Release version 1.3.1

This issue is for tracking changes for the 1.3.1 release. Target release date: Friday, January 31st.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.3.1 for your changes.
  • Version bump: Bump the version number in newrelic-reporting-for-wordpress.php and readme.txt if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .gitattributes.
  • Readme updates: Make any other readme changes as necessary. CHANGELOG.md and README.md are geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Merge: Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into master (git checkout master && git merge --no-ff develop). master contains the stable development version.
  • Push: Push your master branch to GitHub (e.g. git push origin master).
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the master branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the 1.3.1 milestone.
  • SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
  • Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/wp-newrelic/. This may take a few minutes.
  • Close milestone: Edit the 1.3.1 milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.3.1 do not make it into the release, update their milestone to 1.3.2, 1.4.0, 2.0.0 or Future Release.

Release version 1.3.3

Describe your question

This issue is for tracking changes for the 1.3.3 release. Target release date: June 2024.

Release steps

  • Branch: Starting from develop, cut a release branch named release/1.3.3 for your changes.
  • Version bump: Bump the version number in newrelic-reporting-for-wordpress.php and readme.txt if it does not already reflect the version being released.
  • Changelog: Add/update the changelog in CHANGELOG.md and readme.txt.
  • Props: update CREDITS.md file with any new contributors, confirm maintainers are accurate
  • New files: Check to be sure any new files/paths that are unnecessary in the production version are included in .gitattributes.
  • Readme updates: Make any other readme changes as necessary. README.md is geared toward GitHub and readme.txt contains WordPress.org-specific content. The two are slightly different.
  • Make a non-fast-forward merge from your release branch to develop (or merge the pull request), then do the same for develop into trunk, ensuring you pull the most recent changes into develop first (git checkout develop && git pull origin develop && git checkout trunk && git merge --no-ff develop). trunk contains the stable development version.
  • Push: Push your trunk branch to GitHub (e.g. git push origin trunk).
  • Compare trunk to develop to ensure no additional changes were missed.
  • Release: Create a new release, naming the tag and the release with the new version number, and targeting the trunk branch. Paste the changelog from CHANGELOG.md into the body of the release and include a link to the closed issues on the milestone.
  • SVN: Wait for the GitHub Action to finish deploying to the WordPress.org repository. If all goes well, users with SVN commit access for that plugin will receive an emailed diff of changes.
  • Check WordPress.org: Ensure that the changes are live on https://wordpress.org/plugins/wp-newrelic/. This may take a few minutes.
  • Close milestone: Edit the milestone with release date (in the Due date (optional) field) and link to GitHub release (in the Description field), then close the milestone.
  • Punt incomplete items: If any open issues or PRs which were milestoned for 1.3.3 do not make it into the release, update their milestone to 1.4.0 or Future Release.

Code of Conduct

  • I agree to follow this project's Code of Conduct

Add GitHub Action workflows for deployment

Is your enhancement related to a problem? Please describe.
Let's add the GitHub Action workflows to allow for automated deploys to WordPress.ORG.

Describe the solution you'd like

  • Add plugin deploy workflow
  • Add asset deploy workflow
  • Add user/pass secrets to repo settings
  • Add build step

Designs
n/a

Describe alternatives you've considered
keep deploying manually 👎

Additional context
n/a

"Disable for AMP" is an unnecessary option

From a usability standpoint, having a "Disable for AMP" checkbox option in this plugin's settings is meaningless. Injecting the New Relic scripts into AMP pages will always break AMP validation and will not work for monitoring those pages, so you would never want to uncheck that box.

I'd recommend removing that option field and always disabling NR scripts for AMP pages.

Move New Relic menu item into settings

Doesn't feel to me that New Relic should be a top level nav item in the wp-admin. This feels much more appropriate to have in the Settings menu.

Open for discussion if people feel differently.
screenshot 2016-12-05 14 54 16

readme updates

  • add version badge
  • add support level section & badge
  • add license and badge

Documentation updates

Is your enhancement related to a problem? Please describe.
It's not obvious the level of support provided for this repo, so let's add some clarification.

Describe the solution you'd like

  • add CHANGELOG.md
  • add CODE_OF_CONDUCT.md
  • add CONTRIBUTING.md
  • add CREDITS.md
  • add all new markdown files to .gitattributes

Designs
n/a

Describe alternatives you've considered
n/a

Additional context
n/a

Readme is out of date

We recently made some changes to what data is logged for Transaction Names. We'll need to update the readme to reflect what the plugin actually logs now.

Add WordPress Playground integration

Is your enhancement related to a problem? Please describe.

  • add blueprint to dotorg folder
  • enable preview on dotorg
  • add repo badge to playground

Designs

No response

Describe alternatives you've considered

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Logs in context feature

Describe your question

Does this plugin support the relatively new logs in context feature? A fellow team member installed the plugin, and we're able to view metrics exported from Wordpress in the New Relic UI. However, we don't see any log messages when navigating to APM > Logs.

Before debugging, I'd like to ask for verification that this feature is supported. If it's not currently supported, are there plans to add this feature in the future?

Code of Conduct

  • I agree to follow this project's Code of Conduct

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.