Giter Club home page Giter Club logo

xray-laravel's People

Contributors

adrianpaiva1 avatar aran112000 avatar d8vjork avatar derekmd avatar emaadali avatar gavrisimo avatar junamai2000 avatar kimegede avatar laravel-shift avatar lorenzorogai avatar nicdamours avatar steveporter92 avatar umbert-cobiro 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

Watchers

 avatar  avatar  avatar  avatar  avatar

xray-laravel's Issues

Backtracer fails when eager loading deeply nested relations

When eager loading a large set of nested relations it may happen that the backtracer does not find a frame in the first 50 that is not filtered out. As a consequence, when the sql-segment tries to get the caller class it crashes because $backtrace[0] is undefined.

A solution is probably to be more defensive when determining the class name and provide a default in case the class name was not found in the first 50 stack frames.

[Error] Unprocessed trace - Invalid Subsegment Name

So I'm using the daemon and most of my requests are not being logged, only some of my GET requests are working.

Looking through the Daemon logs, there are a bunch of these errors.

It looks to me like it's failing because there are invalid characters being set for the sub segment names, in my case my best guess is the '?' in "name": "mysql at RouteBinding:?", below. If I disable the Database query traces it appears to be working.

Is it possible to remove non supported characters from the segment names to match the supported ones?

https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html#api-segmentdocuments-fields

2023-01-18T18:05:40Z [Error] Unprocessed trace 1-63c834f4-107c98a429f50b1a561f013a, segment: { xray_1 | ErrorCode: "InvalidName", xray_1 | Id: "ca2a3dfacbb4db1d", xray_1 | Message: "Invalid subsegment. ErrorCode: InvalidName, Cause: null" xray_1 | }

This is an example of the trace it's trying to submit

{ "id": "ca2a3dfacbb4db1d", "trace_id": "1-63c834f4-107c98a429f50b1a561f013a", "name": "APP HTTP", "start_time": 1674065140.307433, "end_time": 1674065140.44286, "subsegments": [ { "id": "2273081f032ba796", "name": "laravel boot", "start_time": 1674065140.294943, "end_time": 1674065140.316362 }, { "id": "ad292b6331b4980c", "name": "mysql at AuthDomain:33", "start_time": 1674065140.413419, "end_time": 1674065140.5058491, "metadata": { "backtrace": [ "App\\AuthDomain:33", "App\\AuthDomain:44", "App\\AuthDomain:132", "Illuminate\\Auth\\SessionGuard:124", "Illuminate\\Auth\\SessionGuard:336", "Illuminate\\Auth\\AuthManager:25", "App\\Scopes\\DomainScope:1170", "Illuminate\\Auth\\EloquentUserProvider:42", "Laravel\\Passport\\PassportUserProvider:229", "Laravel\\Passport\\Guards\\TokenGuard:112" ] }, "namespace": "remote", "sql": { "database_type": "mysql", "sanitized_query": "select * from domainswheresub_domain= 'dev' anddomains.deleted_atis null limit 1" } }, { "id": "329d707c49dba220", "name": "mysql at EloquentUserProvider:42", "start_time": 1674065140.416229, "end_time": 1674065140.417839, "metadata": { "backtrace": [ "Illuminate\\Auth\\EloquentUserProvider:42", "Laravel\\Passport\\PassportUserProvider:229", "Laravel\\Passport\\Guards\\TokenGuard:112", "Laravel\\Passport\\Guards\\TokenGuard:309", "Laravel\\Passport\\PassportServiceProvider:?", "Illuminate\\Auth\\RequestGuard:60", "Illuminate\\Auth\\RequestGuard:63", "Illuminate\\Auth\\Middleware\\Authenticate:42", "Illuminate\\Auth\\Middleware\\Authenticate:167", "Illuminate\\Pipeline\\Pipeline:103" ] }, "namespace": "remote", "sql": { "database_type": "mysql", "sanitized_query": "select * fromuserswhereid= 'c642ff79-1d03-40d1-9094-7885fa7033da' andusers.deleted_atis null andusers.domain_id= '19d49344-1173-4ae1-b2fd-500632db0ec6' limit 1" } }, { "id": "72d3fc0e1ac03e30", "name": "mysql at RouteBinding:?", "start_time": 1674065140.42018, "end_time": 1674065140.42206, "metadata": { "backtrace": [ "Illuminate\\Routing\\RouteBinding:?", "Illuminate\\Routing\\Router:842", "Illuminate\\Routing\\Router:39", "Illuminate\\Routing\\Middleware\\SubstituteBindings:167", "Illuminate\\Pipeline\\Pipeline:65", "Illuminate\\Routing\\Middleware\\ThrottleRequestsWithRedis:63", "Illuminate\\Routing\\Middleware\\ThrottleRequests:167", "Illuminate\\Pipeline\\Pipeline:44", "Illuminate\\Auth\\Middleware\\Authenticate:167", "Illuminate\\Pipeline\\Pipeline:103" ] }, "namespace": "remote", "sql": { "database_type": "mysql", "sanitized_query": "select * fromdomainswheresub_domain= 'dev' anddomains.deleted_atis null limit 1" } }, { "id": "41ee2cb8b5eb623e", "name": "mysql at CmsFolder:34", "start_time": 1674065140.429208, "end_time": 1674065140.433018, "metadata": { "backtrace": [ "App\\Models\\CmsFolder:34", "App\\Models\\CmsFolder:1475", "App\\Models\\CmsFolder:20", "App\\Models\\CmsFolder:1475", "App\\Services\\CmsFolderService:45", "App\\Http\\Controllers\\Api\\CmsFolderController:54", "Illuminate\\Routing\\Controller:45", "Illuminate\\Routing\\ControllerDispatcher:262", "Illuminate\\Routing\\Route:205", "Illuminate\\Routing\\Route:721" ] }, "namespace": "remote", "sql": { "database_type": "mysql", "sanitized_query": "select * fromcms_folderswhereparent_idis null andcms_folders.domain_id= '19d49344-1173-4ae1-b2fd-500632db0ec6' andcms_folders.deleted_atis null limit 1" } }, { "id": "bd2f1abe49e2e804", "name": "mysql at CmsFolderService:45", "start_time": 1674065140.433237, "end_time": 1674065140.436227, "metadata": { "backtrace": [ "App\\Services\\CmsFolderService:45", "App\\Http\\Controllers\\Api\\CmsFolderController:54", "Illuminate\\Routing\\Controller:45", "Illuminate\\Routing\\ControllerDispatcher:262", "Illuminate\\Routing\\Route:205", "Illuminate\\Routing\\Route:721", "Illuminate\\Routing\\Router:128", "Illuminate\\Pipeline\\Pipeline:47", "App\\Http\\Middleware\\SetLocale:167", "Illuminate\\Pipeline\\Pipeline:50" ] }, "namespace": "remote", "sql": { "database_type": "mysql", "sanitized_query": "select count(*) as aggregate fromcms_folderswhereparent_idis not null andparent_id= 'cab2b68f-d6bd-457f-9a21-cb8e9ed8abf3' andcms_folders.domain_id= '19d49344-1173-4ae1-b2fd-500632db0ec6' andcms_folders.deleted_atis null" } }, { "id": "0c4985a4754d397e", "name": "mysql at CmsFolderService:45", "start_time": 1674065140.43718, "end_time": 1674065140.4404101, "metadata": { "backtrace": [ "App\\Services\\CmsFolderService:45", "App\\Http\\Controllers\\Api\\CmsFolderController:54", "Illuminate\\Routing\\Controller:45", "Illuminate\\Routing\\ControllerDispatcher:262", "Illuminate\\Routing\\Route:205", "Illuminate\\Routing\\Route:721", "Illuminate\\Routing\\Router:128", "Illuminate\\Pipeline\\Pipeline:47", "App\\Http\\Middleware\\SetLocale:167", "Illuminate\\Pipeline\\Pipeline:50" ] }, "namespace": "remote", "sql": { "database_type": "mysql", "sanitized_query": "select * fromcms_folderswhereparent_idis not null andparent_id= 'cab2b68f-d6bd-457f-9a21-cb8e9ed8abf3' andcms_folders.domain_id= '19d49344-1173-4ae1-b2fd-500632db0ec6' andcms_folders.deleted_atis null order bynameasc,updated_at desc limit 100 offset 0" } } ], "annotations": { "Framework": "Laravel 8.80.0", "PHP Version": "8.1.10" }, "http": { "request": { "url": "https://dev.mydomain.com/api/cms-folders", "method": "GET", "client_ip": "10.1.0.248" }, "response": { "status": 200 } } }

Apply application-wide annotations

Is there a convenience method to insert annotations for the entire app (all requests should have them)?

Right now seems like needing to customise SegmentCollector.php

public function initHttpTracer(Request $request): void
{
	if (! $this->isTracerEnabled()) {
		return;
	}

	$this->segments = [];
	$tracer = $this->tracer()
		->setTraceHeader($_SERVER['HTTP_X_AMZN_TRACE_ID'] ?? null)
		->setName(config('app.name'))
		->setClientIpAddress($request->getClientIp())
		->addAnnotation('Framework', 'Laravel ' . app()->version())
		->addAnnotation('PHP Version', PHP_VERSION)
		// EXTRA ANNONTATION TO DEFINE SYSTEM BOUNDARY
		->addAnnotation("System", "SYSTEM NAME TO DIFFERENTIATE FROM OTHERS")
		->setUrl($request->url())
		->setMethod($request->method());

	$tracer->begin(100);
}

AWS Client return error MissingEndTime

Get the error from AWS client.
Do you have any idea about my error message?

AWS Client return error
"UnprocessedTraceSegments": [ { "Id": "c2a0319811ccbc58", "ErrorCode": "MissingEndTime", "Message": "Invalid subsegment. ErrorCode: MissingEndTime, Cause: null" } ], "@metadata": { "statusCode": 200, "effectiveUri": "https:\/\/xray.ap-east-1.amazonaws.com\/TraceSegments", "headers": { "date": "Sat, 15 May 2021 10:56:22 GMT", "content-type": "application\/json", "content-length": "156", "connection": "keep-alive", "x-amzn-requestid": "022d118f-b269-448c-b895-ae8e195d8962" }, "transferStats": { "http": [ [] ] } }

Submit data
{ "id": "c2a0319811ccbc58", "trace_id": "1-609fa8d4-1fad76e1dd7f69f43beb0695", "name": "***", "start_time": 1621076180.124956, "end_time": 1621076181.859172, "subsegments": [...] } ], "annotations": { "Framework": "Laravel 5.8.38", "PHP Version": "7.4.2" }, "http": { "request": { "url": "***", "method": "GET", "client_ip": "::1" }, "response": { "status": 200 } } }

Target class [Illuminate\\Foundation\\Application] does not exist while using the package with Lumen

Hi,
I have had encountered an issue while installing this package on Lumen.

Steps to reproduce:

  1. Install a new Lumen Empty Project.
  2. Install the library.
  3. Add the steps as suggested in readme.

Stack Trace:

{
    "message": "Target class [Illuminate\\Foundation\\Application] does not exist.",
    "exception": "Illuminate\\Contracts\\Container\\BindingResolutionException",
    "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
    "line": 914,
    "trace": [
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 795,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 731,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Application.php",
            "line": 327,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 1066,
            "function": "make",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 982,
            "function": "resolveClass",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 943,
            "function": "resolveDependencies",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 795,
            "function": "build",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 731,
            "function": "resolve",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Application.php",
            "line": 327,
            "function": "make",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/helpers.php",
            "line": 42,
            "function": "make",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/libs/xray-laravel/src/XrayServiceProvider.php",
            "line": 60,
            "function": "app"
        },
        {
            "file": "/var/www/open-source/libs/xray-laravel/src/XrayServiceProvider.php",
            "line": 51,
            "function": "registerCollectors",
            "class": "Napp\\Xray\\XrayServiceProvider",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/BoundMethod.php",
            "line": 36,
            "function": "boot",
            "class": "Napp\\Xray\\XrayServiceProvider",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Util.php",
            "line": 41,
            "function": "Illuminate\\Container\\{closure}",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/BoundMethod.php",
            "line": 93,
            "function": "unwrapIfClosure",
            "class": "Illuminate\\Container\\Util",
            "type": "::"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/BoundMethod.php",
            "line": 37,
            "function": "callBoundMethod",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/illuminate/container/Container.php",
            "line": 662,
            "function": "call",
            "class": "Illuminate\\Container\\BoundMethod",
            "type": "::"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Application.php",
            "line": 304,
            "function": "call",
            "class": "Illuminate\\Container\\Container",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Application.php",
            "line": 289,
            "function": "bootProvider",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php",
            "line": 165,
            "function": "boot",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php",
            "line": 112,
            "function": "dispatch",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/public/index.php",
            "line": 28,
            "function": "run",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        }
    ]
}{
    "message": "Call to undefined function Napp\\Xray\\Submission\\now()",
    "exception": "Error",
    "file": "/var/www/open-source/libs/xray-laravel/src/Submission/APISegmentSubmitter.php",
    "line": 21,
    "trace": [
        {
            "file": "/var/www/open-source/libs/xray-laravel/src/Collectors/SegmentCollector.php",
            "line": 142,
            "function": "__construct",
            "class": "Napp\\Xray\\Submission\\APISegmentSubmitter",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/libs/xray-laravel/src/Xray.php",
            "line": 81,
            "function": "submitHttpTracer",
            "class": "Napp\\Xray\\Collectors\\SegmentCollector",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/libs/xray-laravel/src/Middleware/RequestTracing.php",
            "line": 32,
            "function": "submitHttpTracer",
            "class": "Napp\\Xray\\Xray",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php",
            "line": 149,
            "function": "terminate",
            "class": "Napp\\Xray\\Middleware\\RequestTracing",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/vendor/laravel/lumen-framework/src/Concerns/RoutesRequests.php",
            "line": 121,
            "function": "callTerminableMiddleware",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        },
        {
            "file": "/var/www/open-source/lumen-oss/public/index.php",
            "line": 28,
            "function": "run",
            "class": "Laravel\\Lumen\\Application",
            "type": "->"
        }
    ]
}

Allow request filtering

Problem

Currently, all the incoming request are recorded. This can be problematic since they might have some request we wish not to be recorded. For example, we have a health check path that is used to determine whether the application is running correctly or not. This url is called once every 10 seconds or so, which creates a lot of noise in AWS X-Ray.

Proposed solution

There should have a way to do some sort of request filtering. Maybe by adding a callback that is used to check if the current request should be recorded or not. This callback could take the incoming request as an argument and return true or false.

Note. I will attempt to fix this problem and submit a pull request for review.

Laravel Vapor not logging Method or URL

Great package; everything worked well except I'm not seeing Method or URL in my traces. I'm using Laravel Vapor and the DaemonSegmentSubmitter.

Screenshot for my app:

Screen Shot 2020-08-18 at 23 17 25

Laravel 8.* installation failure

Hello,

This package fails to install on Laravel 8 giving the following error output

`Your requirements could not be resolved to an installable set of packages.

Problem 1
- Conclusion: remove laravel/framework v8.20.1
- Conclusion: don't install laravel/framework v8.20.1
- napp/xray-laravel 1.1.0 requires illuminate/console ^5.5|^6.0|^7.0 -> satisfiable by illuminate/console[5.5.x-dev, 5.6.x-dev, 5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, 7.x-dev, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11, v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.19, v6.18.2, v6.18.20, v6.18.21, v6.18.22, v6.18.23, v6.18.24, v6.18.25, v6.18.26, v6.18.27, v6.18.28, v6.18.29, v6.18.3, v6.18.30, v6.18.31, v6.18.32, v6.18.33, v6.18.34, v6.18.35, v6.18.36, v6.18.37, v6.18.38, v6.18.39, v6.18.4, v6.18.40, v6.18.41, v6.18.42, v6.18.43, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.19.0, v6.19.1, v6.2.0, v6.20.0, v6.20.1, v6.20.2, v6.20.3, v6.20.4, v6.20.5, v6.20.6, v6.20.7, v6.20.8, v6.20.9, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0, v7.0.0, v7.0.1, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.1.0, v7.1.1, v7.1.2, v7.1.3, v7.10.0, v7.10.1, v7.10.2, v7.10.3, v7.11.0, v7.12.0, v7.13.0, v7.14.0, v7.14.1, v7.15.0, v7.16.0, v7.16.1, v7.17.0, v7.17.1, v7.17.2, v7.18.0, v7.19.0, v7.19.1, v7.2.0, v7.2.1, v7.2.2, v7.20.0, v7.21.0, v7.22.0, v7.22.1, v7.22.2, v7.22.3, v7.22.4, v7.23.0, v7.23.1, v7.23.2, v7.24.0, v7.25.0, v7.26.0, v7.26.1, v7.27.0, v7.28.0, v7.28.1, v7.28.2, v7.28.3, v7.28.4, v7.29.0, v7.29.1, v7.29.2, v7.29.3, v7.3.0, v7.30.0, v7.30.1, v7.4.0, v7.5.0, v7.5.1, v7.5.2, v7.6.0, v7.6.1, v7.6.2, v7.7.0, v7.7.1, v7.8.0, v7.8.1, v7.9.0, v7.9.1, v7.9.2].
- napp/xray-laravel 1.1.1 requires illuminate/console ^5.5|^6.0|^7.0 -> satisfiable by illuminate/console[5.5.x-dev, 5.6.x-dev, 5.7.17, 5.7.18, 5.7.19, 5.7.x-dev, 5.8.x-dev, 6.x-dev, 7.x-dev, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43, v5.5.44, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, v5.6.36, v5.6.37, v5.6.38, v5.6.39, v5.6.4, v5.6.5, v5.6.6, v5.6.7, v5.6.8, v5.6.9, v5.7.0, v5.7.1, v5.7.10, v5.7.11, v5.7.15, v5.7.2, v5.7.20, v5.7.21, v5.7.22, v5.7.23, v5.7.26, v5.7.27, v5.7.28, v5.7.3, v5.7.4, v5.7.5, v5.7.6, v5.7.7, v5.7.8, v5.7.9, v5.8.0, v5.8.11, v5.8.12, v5.8.14, v5.8.15, v5.8.17, v5.8.18, v5.8.19, v5.8.2, v5.8.20, v5.8.22, v5.8.24, v5.8.27, v5.8.28, v5.8.29, v5.8.3, v5.8.30, v5.8.31, v5.8.32, v5.8.33, v5.8.34, v5.8.35, v5.8.36, v5.8.4, v5.8.8, v5.8.9, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4, v6.1.0, v6.10.0, v6.11.0, v6.12.0, v6.13.0, v6.13.1, v6.14.0, v6.15.0, v6.15.1, v6.16.0, v6.17.0, v6.17.1, v6.18.0, v6.18.1, v6.18.10, v6.18.11, v6.18.12, v6.18.13, v6.18.14, v6.18.15, v6.18.16, v6.18.17, v6.18.18, v6.18.19, v6.18.2, v6.18.20, v6.18.21, v6.18.22, v6.18.23, v6.18.24, v6.18.25, v6.18.26, v6.18.27, v6.18.28, v6.18.29, v6.18.3, v6.18.30, v6.18.31, v6.18.32, v6.18.33, v6.18.34, v6.18.35, v6.18.36, v6.18.37, v6.18.38, v6.18.39, v6.18.4, v6.18.40, v6.18.41, v6.18.42, v6.18.43, v6.18.5, v6.18.6, v6.18.7, v6.18.8, v6.18.9, v6.19.0, v6.19.1, v6.2.0, v6.20.0, v6.20.1, v6.20.2, v6.20.3, v6.20.4, v6.20.5, v6.20.6, v6.20.7, v6.20.8, v6.20.9, v6.3.0, v6.4.1, v6.5.0, v6.5.1, v6.5.2, v6.6.0, v6.6.1, v6.6.2, v6.7.0, v6.8.0, v7.0.0, v7.0.1, v7.0.2, v7.0.3, v7.0.4, v7.0.5, v7.0.6, v7.0.7, v7.0.8, v7.1.0, v7.1.1, v7.1.2, v7.1.3, v7.10.0, v7.10.1, v7.10.2, v7.10.3, v7.11.0, v7.12.0, v7.13.0, v7.14.0, v7.14.1, v7.15.0, v7.16.0, v7.16.1, v7.17.0, v7.17.1, v7.17.2, v7.18.0, v7.19.0, v7.19.1, v7.2.0, v7.2.1, v7.2.2, v7.20.0, v7.21.0, v7.22.0, v7.22.1, v7.22.2, v7.22.3, v7.22.4, v7.23.0, v7.23.1, v7.23.2, v7.24.0, v7.25.0, v7.26.0, v7.26.1, v7.27.0, v7.28.0, v7.28.1, v7.28.2, v7.28.3, v7.28.4, v7.29.0, v7.29.1, v7.29.2, v7.29.3, v7.3.0, v7.30.0, v7.30.1, v7.4.0, v7.5.0, v7.5.1, v7.5.2, v7.6.0, v7.6.1, v7.6.2, v7.7.0, v7.7.1, v7.8.0, v7.8.1, v7.9.0, v7.9.1, v7.9.2].
- don't install illuminate/console 6.x-dev|don't install laravel/framework v8.20.1
- don't install illuminate/console 7.x-dev|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.0.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.0.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.0.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.0.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.0.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.1.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.10.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.11.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.12.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.13.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.13.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.14.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.15.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.15.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.16.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.17.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.17.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.10|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.11|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.12|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.13|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.14|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.15|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.16|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.17|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.18|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.19|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.20|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.21|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.22|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.23|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.24|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.25|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.26|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.27|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.28|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.29|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.30|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.31|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.32|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.33|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.34|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.35|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.36|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.37|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.38|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.39|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.40|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.41|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.42|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.43|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.5|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.6|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.7|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.8|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.18.9|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.19.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.19.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.2.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.5|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.6|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.7|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.8|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.20.9|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.3.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.4.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.5.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.5.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.5.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.6.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.6.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.6.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.7.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v6.8.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.5|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.6|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.7|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.0.8|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.1.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.1.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.1.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.1.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.10.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.10.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.10.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.10.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.11.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.12.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.13.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.14.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.14.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.15.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.16.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.16.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.17.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.17.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.17.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.18.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.19.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.19.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.2.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.2.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.2.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.20.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.21.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.22.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.22.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.22.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.22.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.22.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.23.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.23.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.23.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.24.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.25.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.26.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.26.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.27.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.28.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.28.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.28.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.28.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.28.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.29.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.29.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.29.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.29.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.3.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.30.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.30.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.4.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.5.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.5.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.5.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.6.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.6.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.6.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.7.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.7.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.8.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.8.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.9.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.9.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v7.9.2|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.5.x-dev|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.6.x-dev|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.7.17|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.7.18|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.7.19|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.7.x-dev|don't install laravel/framework v8.20.1
- don't install illuminate/console 5.8.x-dev|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.16|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.17|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.28|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.33|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.34|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.35|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.36|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.37|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.39|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.40|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.41|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.43|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.5.44|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.10|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.11|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.12|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.13|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.14|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.15|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.16|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.17|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.19|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.20|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.21|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.22|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.23|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.24|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.26|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.27|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.28|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.29|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.30|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.31|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.32|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.33|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.34|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.35|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.36|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.37|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.38|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.39|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.5|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.6|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.7|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.8|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.6.9|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.1|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.10|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.11|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.15|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.20|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.21|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.22|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.23|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.26|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.27|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.28|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.5|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.6|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.7|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.8|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.7.9|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.0|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.11|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.12|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.14|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.15|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.17|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.18|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.19|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.2|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.20|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.22|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.24|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.27|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.28|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.29|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.3|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.30|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.31|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.32|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.33|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.34|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.35|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.36|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.4|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.8|don't install laravel/framework v8.20.1
- don't install illuminate/console v5.8.9|don't install laravel/framework v8.20.1
- Installation request for laravel/framework (locked at v8.20.1, required as ^8.12) -> satisfiable by laravel/framework[v8.20.1].
- Installation request for napp/xray-laravel ^1.1 -> satisfiable by napp/xray-laravel[1.1.0, 1.1.1].`

Custom sampling rules

How should this library be set up to apply a pre-defined sampling rule from X-Ray console?

Furthermore, the sampling rate should also be passed down to back-end tiers when making HTTP requests to them. Which probably means determining whether to apply the Sampled=1 parameter in the X-Amzn-Trace-Id HTTP header.

Allow more granular tracing

Would be nice to have a more granular control over what it's traced. Basically expanding on the current options.

Nice package.
It's much appreciated.

Auto hook-up with downstream HTTP client requests?

I tested using Laravel's recommended Guzzle HTTP client request pattern to a traced back-end API tier. It does not look like the trace ID in Laravel is being handed down to the back-end.

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Http;
use Napp\Xray\Facades\Xray;

class XRayController extends Controller
{
    public function trace()
    {
		Xray::addSegment('XRayController');

		// HTTP call to back-end tier.
		$apiUrl = "http://localhost:8081/api/Tier";
		$response = Http::get($apiUrl);
		$delayTime = $response->body();

		Xray::endSegment('XRayController');
      
		return view('traceapi', ['timing' => $delayTime]);
    }
}

Where can the client get the trace ID to forward into the X-Amzn-Trace-Id header?

Argument #1 ($host) must be of type string, null given

\Xray\Submission\DaemonSegmentSubmitter::__construct(): Argument #1 ($host) must be of type string, null given, called in /vendor/napp/xray-laravel/src/Submission/DaemonSegmentSubmitter.php on line 44

I gave the hostname and port of the X-Ray daemon from two environment variables, _AWS_XRAY_DAEMON_ADDRESS and _AWS_XRAY_DAEMON_PORT respectively before passing them to this library as well.
I gave the env variables as

....
XRAY_ENABLED=true
_AWS_XRAY_DAEMON_ADDRESS="127.0.0.1"
_AWS_XRAY_DAEMON_PORT=2000
....

Laravel Vapor Xray daemon support?

Hey there,

Great package, thank you! I noticed it looked like your screenshots were running in Vapor. I cannot seem to get DaemonSegmentSubmitter working inside Vapor. Have you by chance gotten that to work?

I'm using the env vars _AWS_XRAY_DAEMON_ADDRESS and _AWS_XRAY_DAEMON_PORT to configure the destination address. Tracing is active on the Lambda too.

Thanks for your time!

Remove hard dependency on Auth facade

Basically if you are not using the full of laravel, in this case using the Auth facade will raise an error.

Maybe should not be a hard dependency, specially when it's enriching the data.

Tracing doesn't work with Elastic Beanstalk

Hi, thank you for this package!
I would like to use AWS X-Ray on an Elastic Beanstalk environment.
I've enabled X-Ray the daemon is listening on 127.0.0.1:2000
AWSXRayDaemonWriteAccess has been attached to the aws-elasticbeanstalk-ec2-role role.
The package has been installed and implemented to my Laravel App.
I've changed the submitter in the /config/xray.php to \Napp\Xray\Submission\DaemonSegmentSubmitter::class

Everything looks fine, but for some reason, nothing appears on the X-Ray console.
Did I miss something?

Not Able To Log Xray In Elasticbeanstalk

`<?php

\Pkerrigan\Xray\Trace::getInstance()
->setName('my-app')
->setUrl('http:/ss')
->setMethod('GET')
->begin();

echo ' my function ';

\Pkerrigan\Xray\Trace::getInstance()
->end()
->setResponseCode(http_response_code())
->setError(http_response_code() >= 400 && http_response_code() < 500)
->setFault(http_response_code() >= 500)
->submit(new \Pkerrigan\Xray\Submission\DaemonSegmentSubmitter());`

I'm not able not able to log xray in elasticbeanstalk

Doesn't work with Vapor?

Hey, curious if anyone encountered this issue. It just straight up doesn't work with Vapor. From doing some digging issue seems to be that HTTP_X_AMZN_TRACE_ID and LAMBDA_INVOCATION_CONTEXT variable are not present in either $_SERVER or $_ENV.

X-ray ECS Fargate

it is possible to support ECS Fargete. Configure the Daemon with an IP but I still don't have the data.

Thank you

str_replace() error when using query param bindings

TypeError
str_replace(): Argument #3 ($subject) must be of type array|string, null given

/vendor/napp/xray-laravel/src/Collectors/DatabaseQueryCollector.php in str_replace at line 53

capture-2022-03-23-105538

Disabling query bindings a quick workaround it seems.

Problem with composer install

Every time I try composer install it fails on difference repos and environments
image

Does anyone have a solution coz This package will save me alot of time ?!

Allow daemon by env

HI~

Can I edit some code In config.php?

...
submitter' => is_null(env('XRAY_DAEMON_HOST'))
        ? \Napp\Xray\Submission\APISegmentSubmitter::class
        : \Napp\Xray\Submission\DaemonSegmentSubmitter::class,
...

The purpose is to make it able to switching submitter by .env

I will like to build a PR to add this feature :)
but it seems like I have no permission to write on the code.

Requests don't get logged into Xray

Hi and thanks for the great package.

I have hard time understanding what goes wrong. For some reason I can't get the default data for bootstrapping etc to be logged and present in Xray. I looked into the source code and found that it is because

    /**
     * @param SegmentSubmitter $submitter
     */
    public function submit(SegmentSubmitter $submitter)
    {
        if (!$this->isSampled()) {
            return;
        }

        $submitter->submitSegment($this);
    }

$this->isSampled() is always false. I saw in your package you set it from the header

    ->setTraceHeader($_SERVER['HTTP_X_AMZN_TRACE_ID'] ?? null)

You look for the part Sampled=1 but when I log this header in my lama function the header always contains only the Root field and nothing else. I've tried to add a sample rule that matches everything with higher rate, but with no luck. Also the AWS documentation on this header says the only valid parts are Root and Self.

Can you please tell me from where we expect this Sampled part to be present in the HTTP_X_AMZN_TRACE_ID header and how to make the default logging for every request to work?

Thanks

Service name for entire Laravel app

How can the whole Laravel web app be configured with a default service node name and main segment?

After the basic setup, X-Ray picks the traces up as "Laravel HTTP".

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.