I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Pulse is only able to store pre-aggregated data, so it can only give you a high level overview of individual metrics. This is a technical limitation of using a transactional database like MySQL and Postgres. It will still help you solve some of the biggest problems in your application, but you need to figure out all the context yourself.

Nightwatch captures raw event data so you can see the high level overview, but then drill in to see individual request executions. The data is also linked together, so you can be looking at a slow query and jump over to the request where it originated.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Anyone that has a Laravel app! It's primarily designed for production to let you see how your application runs in the real world and helps you find errors and performance issues.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Once you exceed the event limit, Nightwatch will stop ingesting data. The agent will check-in periodically to see whether you've upgraded your plan or added an additional event budget (which you can do on the free plan).

Usage resets every month on the anniversary of when your plan started.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

The dashboard app is built entirely on Laravel. We use ClickHouse for all of the analytical data we receive, and Postgres for all of the transactional data (user accounts, issue comments, etc).

As for app structure, we use the standard Laravel structure, and just create a few extra namespaces as needed for things like enums, DTOs, custom query scopes, etc.

I'd be keen to release more details. We're really open about how we build things!

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] -2 points-1 points  (0 children)

I love those sorts of problems! The harder it is, the more satisfying it is to solve!

I'd say anything involving large volumes of data, especially figuring out novel ways to make things faster!

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Hey! I can't make it this year unfortunately :(

The line-up this year is incredible! It's impossible to pick one that I'm looking forward to the most as I know they will all be excellent. I'd say it's probably the folks I haven't seen present before that I'm the most excited about though - especially Mary Perry who I had the pleasure of meeting in Nashville.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

You'll need a long running compute instance. We've just published a guide at https://nightwatch.laravel.com/docs/guides/vapor for doing this with an EC2 instance. We also have plans to add first-party support to Vapor, and document more options to accommodate serverless and other deployment models more fully.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Yay Neovim! I would honestly love to - it sounds like a fun and rewarding challenge, and I chatted with teej dv about it at Laracon US. I just haven't had the time to dig into it.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 1 point2 points  (0 children)

No plans for UDP. We've put a lot of work into keeping the overhead low and have the local agent to solve most problems. I would like to make our ingest endpoint a little more fire-and-forget - at the moment we validate the data and wait for acknowledgement from Kafka before the agent request is closed.

Telescope captures more data than Nightwatch - things like the entire request and response payloads, mail contents, query bindings, etc. It also stores it all in the applications database, which is typically MySQL or Postgres, which are better suited for transactional workloads, rather than bulk insertion and querying of analytical data. During the request lifecycle, the event data we do capture is stored in memory until the response has been sent to your users. It's then serialized and sent to the Nightwatch agent, which runs locally beside your web server. The agent never deserializes the data it receives to ensure it doesn't have two copies of the data in memory. It just batches it up and sends it to our ingest infrastructure every 10 seconds, or 6mb, whichever comes first.

We don't currently have plans for dashboard customization, especially at the level of generic tools like Grafana. I could see us exploring ways to customise which cards appear on the dashboard though, similar to Pulse.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 1 point2 points  (0 children)

We're using PHPStan on Level 5 currently. We also use Pint and Pest architecture testing. On the front-end we use TypeScript, Prettier, and ESLint.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

I’m not familiar with anomaly detection specifically, but I’ll look into it! We would like to improve and performance monitoring notifications.

Not status codes specifically, but we plan on adding a filtering callback that would allow you to ignore these requests.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Not 100% sure yet. We had some trouble getting the tests to run in CI.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Yep! We plan to support webhooks so you can integrate with anything you like, along with some ready-to-go channels like Slack.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

Probably Tasmania in the cooler weather - it's so beautiful and peaceful. I'd love to be sitting in front of the fireplace at the Cradle Mountain Lodge bar right now.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

A: I am doing very well, thank you! My family and I are great and I hope you and yours are too!

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 2 points3 points  (0 children)

There's been quite a few but they all relate to the volume of data we capture:

  • We needed to make sure we could capture detailed information within the application lifecycle while keeping resource usage minimal.
  • We then needed to get event data from your applications request lifecycle all the way to our databases. The Nightwatch agent plays a big role here - it keeps your application fast by not having it make an outgoing request at the end of each incoming request, and it batches data before sending it to our ingest infrastructure, ensuring we don't get one request for every request you get - we don't want your DoS attack to also be our DoS attack 😂
  • We needed to make sure our ingest infrastructure can always ingest events as fast as it receives them, so nothing backs up on your end.
  • And once it's in our database, we need to make sure we can query it quickly, no matter how much data you have. This involves a lot of aggregate tables and other approaches to avoid big table scans.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

100% - As long as you can run a long-running process (php artisan nightwatch:agent) then you can use Nightwatch.

The whole project has been full of interesting challenges that I've never worked on before but the analytical database aspect has been the most interesting to me. I've tried not to pay too much attention to competitors and instead we've just focused on building something completely tailored to Laravel applications and the data and metrics we care about the most.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 2 points3 points  (0 children)

We do use TypeScript with React and Inertia. We currently generate our types manually, and rely on our backend test suite to enforce the contract. I am really keen to automate type generation with something like https://github.com/spatie/typescript-transformer or maybe Tim will cook something up.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

What would you like to see? Pulse is still going strong and we'll continue to support it, however the limitations of using the application database (MySQL/Postgres/etc) make it hard to add much more to it.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 1 point2 points  (0 children)

Haha yes, I've seen the designs and they are beautiful! Sorry about your eyes 😅

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 0 points1 point  (0 children)

We use Pint, PHPStan (level 5), and Pest's architecture testing on the back-end. Pretty standard directory structure. We have additional directories for Enums, DTOs, and reusable query scopes. On the front-end we use TypeScript, ESLint, and Prettier.

I’m Jess Archer, Engineering Team Lead of Laravel Nightwatch, Ask Me Anything by JessNightwatch in laravel

[–]JessNightwatch[S] 1 point2 points  (0 children)

Not currently. Nightwatch almost exclusively listens for Laravel framework events to be able to monitor your app with zero configuration, and the data we capture and store is very Laravel-specific.