algolia search

Tìm thấy x bài viết trong xms.

Giới thiệu về Laravel Telescope - Siêu phẩm mùa thu 2018

Giới thiệu về Laravel Telescope - Siêu phẩm mùa thu 2018


Laravel Telescope là một trợ lý gỡ rối ứng dụng mới từ Laravel, được viết bởi Mohamed Said và Taylor Otwell. Laravel Telescope là mã nguồn mở, miễn phí trên GitHub và sẽ được phát hành vào tuần tới (hiện tại là 2018-10-19).

Hình ảnh được chụp trực tiếp tại hội nghị Laracon diễn ra tại Úc nên chất lượng hơi củ chuối nhé

Bạn sẽ bỏ nó vào các ứng dụng của bạn như là một depedency của bên thứ ba thông qua Composer.

Khi bạn cài đặt Telescope, bạn sẽ truy cập nó bằng cách truy cập vào /telescope của ứng dụng của bạn.

Laravel Telescope là gì?

Telescope tiếng anh nghĩa là Kính viễn vọng, chắc là muốn nói là nó có thể nhìn được xa tít mù khơi luôn ha

Nếu bạn đã từng sử dụng Clockwork hoặc Laravel Debugbar, hãy nghĩ rằng nó là độc lập UI và có siêu năng lực đi cho nó ngầu.

Telescope giống như bọn cảnh vệ bảo vệ đứa con gái nhà giàu, bố làm to (chính là project của bạn - làm mình liên tưởng đến bộ phim In Time - Thời khắc sinh tử, nếu rảnh bạn có thể xem), Telescope sẽ theo dõi mọi yêu cầu đi vào ứng dụng của bạn, cho dù từ yêu cầu HTTP, từ dòng lệnh, từ trình lên lịch hoặc từ hàng đợi (Clockwork hoặc Laravel Debugbar chắc chỉ đủ ngửi khói). Mình tạm gọi Telescope là những người theo dõi vậy.

Những người theo dõi này nắm bắt tất cả các loại thông tin về các yêu cầu hay dữ liệu liên quan - những thứ như truy vấn cơ sở dữ liệu (database queries) và thời gian thực hiện (execution time), lần truy cập bộ nhớ cache (cache hits) và số lần bỏ lỡ (misses), events fired, thư được gửi và nhiều thứ khác nữa...

Dưới đây là liệt kê sơ sơ có bao nhiêu thằng theo dõi nè:

  1. Requests
  2. Commands
  3. Schedule
  4. Jobs
  5. Exceptions
  6. Logs
  7. Dumps
  8. Queries
  9. Models
  10. Events
  11. Mail
  12. Notifications
  13. Cache
  14. Redis

Tabs/watchers

Hãy xem qua từng tab này và những gì nhé

(HTTP) Requests

telescope request

Tab này cho phép bạn xem tất cả các yêu cầu HTTP đi vào ứng dụng của bạn. Bạn sẽ có thể xem xét tất cả các yêu cầu HTTP và tất cả các loại thông tin hữu ích về từng yêu cầu. Ví dụ:

  • payload
  • headers
  • session
  • response
  • hostname
  • method
  • path
  • status

Mỗi trang yêu cầu cũng hiển thị bất kỳ dữ liệu nào mà nó có từ những người theo dõi khác có liên quan đến yêu cầu này; ví dụ, tất cả các truy vấn cơ sở dữ liệu và chúng mất bao lâu; người dùng nào được xác thực cho yêu cầu này; và hơn thế nữa.

Commands & Schedule

Tab commands và tab schedule cho phép bạn xem danh sách tất cả các lệnh đã chạy và exit code của chúng, xem các đối số và tùy chọn của chúng và trên trang schedule xem tất cả thông tin lập lịch của chúng như lịch biểu cron của chúng (ví dụ * * * * *).

Jobs

Tab công việc liệt kê tất cả các công việc đã chạy hoặc tất cả chạy. Nó tương tự như Horizon, nhưng là Redis-only và không chỉ là giao diện người dùng - nó cũng tương tác với queue works đang chạy. mặt khác Telescope, chỉ là một giao diện người dùng, nhưng nó cũng hoạt động cho tất cả queue drivers.

Trên trang danh sách công việc, bạn sẽ có thể thấy tên công việc, hàng đợi và kết nối mà nó chạy, trạng thái của nó và khi nó xảy ra.

Trên trang chi tiết công việc bạn sẽ có thể xem tất cả dữ liệu đó và hơn thế nữa: tên máy chủ, tên đầy đủ của job class, kết nối, hàng đợi, số lần thử, thời gian chờ, tag.

Công việc được tự động gắn thẻ với bất kỳ Eloquent model đính kèm nào (ví dụ: App\Video:1), với người dùng nếu có người dùng được đính kèm, v.v.

Cũng giống như với các yêu cầu HTTP, bạn có thể xem tất cả các loại thông tin liên quan đến công việc này như các truy vấn cơ sở dữ liệu mà nó đã kích hoạt, công việc mà công việc này khởi động và mọi bản ghi mà nó tạo ra.

New queued closures.

Taylor đã đóng góp cho một thư viện mới để đưa trở lại queued closures, mà Laravel đã từng có nhưng đã biến mất một thời gian trước đây. Với sự đóng góp và thư viện mới này, nếu bạn use một model để import nó vào trong closure, nó sẽ lưu trữ ID của model, không phải toàn bộ model, điều đó tốt hơn nhiều (và các lớp hàng đợi đã làm). Vì vậy, queue closures đã trở lại!

dispatch(function () use ($video) {      // làm thứ gì đó với queued job  });

Exceptions

Ghi lại tất cả các ngoại lệ và cho phép bạn kiểm tra từng trường hợp ngoại lệ. Điều này sẽ hiển thị cho bạn dữ liệu tương tự với các tab khác, như tên máy chủ, loại, yêu cầu, tag, người dùng được xác thực.

Logs

Hiển thị thông báo tường trình, mức độ, khi nào nó xảy ra, nếu truyền vào một mảng bạn có thể xem tất cả dữ liệu đó, ngoài ra còn xem request nào kích hoạt log, người dùng nào đã kích hoạt. "Đẹp và dễ hiểu hơn trước đây, với việc đào bới trong đống ký tự tùm lum tà la".

Dump screen

"Đây là một trong những tính năng yêu thích của tôi"

Nếu bạn thực hiện dump() trong code và bạn mở nó trong Telescope, bạn sẽ thấy dumps trong Telescope chứ không phải ứng dụng thực tế của bạn.

Queries

Danh sách tất cả các truy vấn DB của bạn - giống gói Debugbar. Xem truy vấn đầy đủ, yêu cầu nào đã kích hoạt truy vấn, mất bao lâu v.v ...

Chế độ view đã được format rất đẹp.

select      *  from      `users`  order by      `name`

Truy vấn nào gây mất nhiều thời gian, nó sẽ gắn một cái thẻ slow đỏ chét cho bạn biết mà sửa (hình ở dưới k phải nha)

Models

Bạn có thể xem create, update, delete events; cho thấy những thay đổi đã được thực hiện, v.v.

Events

Hiển thị danh sách tất cả các sự kiện, bạn có thể xem sự kiện nào được broadcast with a tag; xem danh sách tất cả các listeners được tạo ra

Mail

Hiển thị danh sách tất cả các email đã được gửi; ai là người nhận; khi nào nó xảy ra; cho dù đó là hàng đợi và sau khi hoàn thành xong ở hàng đợi. Có thể xem email subject và khi vào sâu hơn cũng sẽ thấy bản xem trước của email như MailTrap vậy.

Notifications

Hiển thị tất cả thông báo, loại chúng là gì, v.v.

Cache

Hiển thị lượt truy cập bộ nhớ cache và các lần bỏ lỡ và cập nhật v.v

Hiển thị khóa, dữ liệu, khi nào hết hạn, có thể xem request nào kích hoạt nó và cũng trên trang request, bạn có thể xem tất cả các lần truy cập bộ nhớ cache/misses

Redis

Tương tự như cache

Authenticated user

Nhận thông tin về người dùng được xác thực trên bất kỳ tab nào

Authorization

List danh sách email ai đã access trong telescope service provider

Filtering

Từ ở trên xuống tới dưới bạn thấy đấy, nhiều vãi phải k nào, bộ lọc là cách để lọc bớt, lấy cái nào bạn cần thôi. Trong Telescope service provider

Telescope::filter(function ($entry) {      // local thì lấy hết      if (local) { return true; }        // lấy cái mình cần thôi      return $entry->isReportableException ||          $entry->isfailedJob() ||          $entry->isScheduledTask() ||          $entry->hasMonitoredTag();  })

Miscellaneous

Laravel Telescope còn có chế độ ban đêm nữa, không biết bỏ ở đâu đại khái Telescope::night() 

Hỏi đáp

Dữ liệu được lưu trữ ở đâu?

Redis, ngoài ra có 6-7 cách gì nữa cho bạn chọn á

Lưu trữ bao nhiêu dữ liệu?

Khoảng 100 mỗi lần

Có thể nhận được thông báo cho Slack không?

Có thể lọc theo thời gian không?

Bây giờ thì không, nhưng nó là open source bạn có thể sửa nó

Tác động của nó đối với thời gian khởi động (có ảnh hưởng tốc độ) không?

Chỉ có một truy vấn được thực thi mỗi lần. Thường thì bạn chắc không dùng nó trên production đâu nhỉ, nó là debug mà 🧐🧐

có thể kiểm tra nhiều ứng dụng trong một giao diện người dùng không?

Yes, chỉ cần chỉ cho họ đăng nhập thông tin của họ trong cùng một cơ sở dữ liệu

Nguồn: @mattstauffer

Dịch và chém gió bởi chungnguyen.xyz

Đánh giá bài viết

Thích thì like
Giới thiệu về Laravel Telescope - Siêu phẩm mùa thu 2018
5/5 1 votes

Bình luận

Hiển thị bình luận Facebook