Download the PHP package jackwh/laravel-new-relic without Composer

On this page you can find all versions of the php package jackwh/laravel-new-relic. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-new-relic

Laravel New Relic

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

This package makes it simple to set up and monitor your Laravel application with New Relic APM.

New Relic provides some excellent low-level insights into your application. The New Relic PHP agent is particularly useful in production environments, as it hooks in at a lower level than other monitoring services, and with little to no impact on performance.

New Relic has a fully-featured free plan which is ideal for growing Laravel applications. This package isn't affiliated with them — I just built it because I've found the service very helpful whilst scaling my app, and wanted a more tailored solution for Laravel.

Whilst New Relic can monitor a Laravel application out-of-the-box, this package reports transactions that are optimised for Laravel, and reported in a more consisted way.

Installation

To monitor your application in production you'll need a New Relic API account, and you should install the PHP monitoring agent. You don't need to install New Relic in your development environment (unless you really want to). If the extension isn't detected the package will simulate calls to the New Relic PHP agent, and log each one so you can test before deploying.

If you're installing this on a server which is already being monitored by New Relic, be aware this package reports transactions with different naming conventions than New Relic normally auto-detects. If your existing New Relic data is very important to you, don't install this.

To install the package, add it to your Laravel project with Composer:

Then publish the config file:

That's it, you're done! The package is ready to go, and configured out-of-the-box.

How It Works

The Service Provider

Laravel will auto-discover the LaravelNewRelicServiceProvider class, which binds NewRelicTransactionHandler and NewRelicTransaction classes as scoped singletons to the service container.

New Relic's transaction API only allows a single transaction to be active at a time. That's why the classes are loaded as singletons. Generally speaking, don't try to start a new transaction mid-way through the request lifecycle.

Loggable Environments

The package checks if New Relic is installed. If it's not found, you can log simulated transactions.

In a loggable environment, the package will simulate calls it would normally make to New Relic's methods (e.g. newrelic_start_transaction()). These are loaded from the LoggableNewRelicFunctions.php helper file. You can check your logs to see what's happening under the hood.

Don't worry if your logs don't show a "transaction ended" item, as New Relic automatically finishes them at the end of a request. This is only really important for long-running processes, like the queue handler.

Once you're happy logging is working as expected, you can comment out local in the config/new-relic.php file. This is just intended to help you check the package is working before initial deployment, or when making changes which would affect New Relic transactions.

Live Environments

Assuming the New Relic extension is loaded, the package sets up hooks into Laravel to monitor requests at different stages of the lifecycle:

The package also registers a php artisan new-relic:deploy command, to notify New Relic of changes as part of your deployment process.

Configuration

The configuration file is documented in detail — read through each comment to understand how it will affect transaction reporting. A few settings worth pointing out here are below:

HTTP Requests

The built-in NewRelicMiddleware class should be fine for most use cases, but you can extend it with your own implementation if needed.

The rewrite key is useful for routes which don't have names defined (often the case with packages that expose public resources, like Livewire). You can rewrite their names for consistency here.

We've set some sensible ignore rules by default, feel free to adjust as required.

Queue Handling

By default the sync connection will be ignored. This means a new job starting on this queue won't interrupt the existing transaction that started at the beginning of the request. You can also filter out specific queues and jobs, too.

Deployments

After each new deployment, you should notify New Relic so they can report on metric variances across multiple releases. The package includes a command to do this:

If you don't provide a git revision hash, the package can attempt to auto-detect it by calling git log --pretty="%H" -n1 HEAD


To-Do

  1. Improve the loggable transactions, make it clearer that HTTP transactions will end automatically
  2. Add some tests
  3. Hopefully someone can confirm if this works with Octane?

Contributing

All contributions are welcome! And if you found this useful, I'd love to know.

Credits

License

The MIT License (MIT). Please see License File for more information.


All versions of laravel-new-relic with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
illuminate/contracts Version ^9.0|^10.0
illuminate/support Version ^9.0|^10.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package jackwh/laravel-new-relic contains the following files

Loading the files please wait ....