Sentry
The sentry component for Hyperf.
Installation
shell
composer require friendsofhyperf/sentry
Publish Configuration
shell
php bin/hyperf.php vendor:publish friendsofhyperf/sentry
Register LoggerHandler
php
<?php
# use it send customer log to sentry
//\FriendsOfHyperf\Helpers\logs('project-name', 'sentry')->warning('this is a test warning issue!');
return [
// ...
'sentry' => [
'handler' => [
'class' => FriendsOfHyperf\Sentry\SentryHandler::class,
'constructor' => [
'level' => \Monolog\Level::Debug,
],
],
'formatter' => [
'class' => \Monolog\Formatter\LineFormatter::class,
'constructor' => [
'format' => null,
'dateFormat' => null,
'allowInlineLineBreaks' => true,
]
],
],
// ...
];
Configure Sentry Runtime Logs
php
<?php
# config/autoload/sentry.php
return [
// ...
'logger' => Hyperf\Contract\StdoutLoggerInterface::class,
// ...
];
Annotations
php
<?php
namespace App;
use FriendsOfHyperf\Sentry\Annotation\Breadcrumb;
class Foo
{
#[Breadcrumb(category: 'foo')]
public function bar($a = 1, $b = 2)
{
return __METHOD__;
}
}
Tracing
env
SENTRY_TRACING_ENABLE_AMQP=true
SENTRY_TRACING_ENABLE_ASYNC_QUEUE=true
SENTRY_TRACING_ENABLE_COMMAND=true
SENTRY_TRACING_ENABLE_CRONTAB=true
SENTRY_TRACING_ENABLE_KAFKA=true
SENTRY_TRACING_ENABLE_MISSING_ROUTES=true
SENTRY_TRACING_ENABLE_REQUEST=true
SENTRY_TRACING_SPANS_COROUTINE=true
SENTRY_TRACING_SPANS_DB=true
SENTRY_TRACING_SPANS_ELASTICSEARCH=true
SENTRY_TRACING_SPANS_GUZZLE=true
SENTRY_TRACING_SPANS_RPC=true
SENTRY_TRACING_SPANS_REDIS=true
SENTRY_TRACING_SPANS_SQL_QUERIES=true