# telescope
**Repository Path**: jory/telescope
## Basic Information
- **Project Name**: telescope
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: 3.0
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-27
- **Last Updated**: 2024-12-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Telescope
An elegant debug assistant for the hyperf framework.
## Functions
- [x] request
- [x] exception
- [x] sql
- [x] grpc server/client
- [x] redis
- [x] log
- [x] command
- [x] event
- [x] guzzle
- [x] cache
- [x] rpc server/client
## Installation
```shell
composer require friendsofhyperf/telescope:~3.0.0
```
## Publish
```shell
php bin/hyperf.php vendor:publish friendsofhyperf/telescope
```
## Migrate
```shell
php bin/hyperf.php migrate
```
## Add Listener
```php
[
FriendsOfHyperf\Telescope\Middleware\TelescopeMiddleware::class,
],
];
```
> TelescopeMiddleware or RequestHandledListener, you can choose one of them.
## Add env
```env
# telescope
TELESCOPE_DB_CONNECTION=default
TELESCOPE_ENABLE_REQUEST=true
TELESCOPE_ENABLE_COMMAND=true
TELESCOPE_ENABLE_GRPC=true
TELESCOPE_ENABLE_LOG=true
TELESCOPE_ENABLE_REDIS=true
TELESCOPE_ENABLE_EVENT=true
TELESCOPE_ENABLE_EXCEPTION=true
TELESCOPE_ENABLE_JOB=true
TELESCOPE_ENABLE_DB=true
TELESCOPE_ENABLE_GUZZLE=true
TELESCOPE_ENABLE_CACHE=true
TELESCOPE_ENABLE_RPC=true
TELESCOPE_SERVER_ENABLE=true
```
## Visit
`http://127.0.0.1:9509/telescope/requests`
## Tagging
you may want to attach your own custom tags to entries. To accomplish this, you may use the **`Telescope::tag`** method.
## Filtering
You may only want to record entries under certain special conditions. To achieve this, you may use the **`Telescope::filter`** method.
Example
```php
use FriendsOfHyperf\Telescope\Telescope;
use Hyperf\Event\Contract\ListenerInterface;
use Hyperf\Framework\Event\BootApplication;
use FriendsOfHyperf\Telescope\IncomingEntry;
class TelescopeInitListener implements ListenerInterface
{
public function listen(): array
{
return [
BootApplication::class,
];
}
public function process(object $event): void
{
// attach your own custom tags
Telescope::tag(function (IncomingEntry $entry) {
if ($entry->type === 'request') {
return [
'status:' . $entry->content['response_status'],
'uri:'. $entry->content['uri'],
];
}
});
// filter entry
Telescope::filter(function (IncomingEntry $entry): bool {
if ($entry->type === 'request'){
if ($entry->content['uri'] == 'xxxx') {
return false;
}
}
return true;
});
}
}
```
> You can also do this in middleware.