ok
Direktori : /proc/thread-self/root/home2/selectio/www/fms-worksuite/vendor/sentry/sentry/src/ |
Current File : //proc/thread-self/root/home2/selectio/www/fms-worksuite/vendor/sentry/sentry/src/Event.php |
<?php declare(strict_types=1); namespace Sentry; use Sentry\Context\OsContext; use Sentry\Context\RuntimeContext; use Sentry\Profiling\Profile; use Sentry\Tracing\Span; /** * This is the base class for classes containing event data. * * @author Stefano Arlandini <sarlandini@alice.it> */ final class Event { public const DEFAULT_ENVIRONMENT = 'production'; /** * @var EventId The ID */ private $id; /** * @var float|null The date and time of when this event was generated */ private $timestamp; /** * This property is used if it's a Transaction event together with $timestamp it's the duration of the transaction. * * @var float|null The date and time of when this event was generated */ private $startTimestamp; /** * @var Severity|null The severity of this event */ private $level; /** * @var string|null The name of the logger which created the record */ private $logger; /** * @var string|null the name of the transaction (or culprit) which caused this exception */ private $transaction; /** * @var CheckIn|null The check in data */ private $checkIn; /** * @var string|null The name of the server (e.g. the host name) */ private $serverName; /** * @var string|null The release of the program */ private $release; /** * @var string|null The error message */ private $message; /** * @var string|null The formatted error message */ private $messageFormatted; /** * @var string[] The parameters to use to format the message */ private $messageParams = []; /** * @var string|null The environment where this event generated (e.g. production) */ private $environment; /** * @var array<string, string> A list of relevant modules and their versions */ private $modules = []; /** * @var array<string, mixed> The request data */ private $request = []; /** * @var array<string, string> A list of tags associated to this event */ private $tags = []; /** * @var OsContext|null The server OS context data */ private $osContext; /** * @var RuntimeContext|null The runtime context data */ private $runtimeContext; /** * @var UserDataBag|null The user context data */ private $user; /** * @var array<string, array<string, mixed>> An arbitrary mapping of additional contexts associated to this event */ private $contexts = []; /** * @var array<string, mixed> An arbitrary mapping of additional metadata */ private $extra = []; /** * @var string[] An array of strings used to dictate the deduplication of this event */ private $fingerprint = []; /** * @var Breadcrumb[] The associated breadcrumbs */ private $breadcrumbs = []; /** * @var Span[] The array of spans if it's a transaction */ private $spans = []; /** * @var ExceptionDataBag[] The exceptions */ private $exceptions = []; /** * @var Stacktrace|null The stacktrace that generated this event */ private $stacktrace; /** * A place to stash data which is needed at some point in the SDK's * event processing pipeline but which shouldn't get sent to Sentry. * * @var array<string, mixed> */ private $sdkMetadata = []; /** * @var string The Sentry SDK identifier */ private $sdkIdentifier = Client::SDK_IDENTIFIER; /** * @var string The Sentry SDK version */ private $sdkVersion = Client::SDK_VERSION; /** * @var EventType The type of the Event */ private $type; /** * @var Profile|null The profile data */ private $profile; private function __construct(?EventId $eventId, EventType $eventType) { $this->id = $eventId ?? EventId::generate(); $this->timestamp = microtime(true); $this->type = $eventType; } /** * Creates a new event. * * @param EventId|null $eventId The ID of the event */ public static function createEvent(?EventId $eventId = null): self { return new self($eventId, EventType::event()); } /** * Creates a new transaction event. * * @param EventId|null $eventId The ID of the event */ public static function createTransaction(EventId $eventId = null): self { return new self($eventId, EventType::transaction()); } public static function createCheckIn(?EventId $eventId = null): self { return new self($eventId, EventType::checkIn()); } /** * Gets the ID of this event. */ public function getId(): EventId { return $this->id; } /** * Gets the identifier of the SDK package that generated this event. * * @internal */ public function getSdkIdentifier(): string { return $this->sdkIdentifier; } /** * Sets the identifier of the SDK package that generated this event. * * @internal */ public function setSdkIdentifier(string $sdkIdentifier): void { $this->sdkIdentifier = $sdkIdentifier; } /** * Gets the version of the SDK package that generated this Event. * * @internal */ public function getSdkVersion(): string { return $this->sdkVersion; } /** * Sets the version of the SDK package that generated this Event. * * @internal */ public function setSdkVersion(string $sdkVersion): void { $this->sdkVersion = $sdkVersion; } /** * Gets the timestamp of when this event was generated. * * @return float */ public function getTimestamp(): ?float { return $this->timestamp; } /** * Sets the timestamp of when the Event was created. */ public function setTimestamp(?float $timestamp): void { $this->timestamp = $timestamp; } /** * Gets the severity of this event. */ public function getLevel(): ?Severity { return $this->level; } /** * Sets the severity of this event. * * @param Severity|null $level The severity */ public function setLevel(?Severity $level): void { $this->level = $level; } /** * Gets the name of the logger which created the event. */ public function getLogger(): ?string { return $this->logger; } /** * Sets the name of the logger which created the event. * * @param string|null $logger The logger name */ public function setLogger(?string $logger): void { $this->logger = $logger; } /** * Gets the name of the transaction (or culprit) which caused this * exception. */ public function getTransaction(): ?string { return $this->transaction; } /** * Sets the name of the transaction (or culprit) which caused this * exception. * * @param string|null $transaction The transaction name */ public function setTransaction(?string $transaction): void { $this->transaction = $transaction; } public function setCheckIn(?CheckIn $checkIn): void { $this->checkIn = $checkIn; } public function getCheckIn(): ?CheckIn { return $this->checkIn; } /** * Gets the name of the server. */ public function getServerName(): ?string { return $this->serverName; } /** * Sets the name of the server. * * @param string|null $serverName The server name */ public function setServerName(?string $serverName): void { $this->serverName = $serverName; } /** * Gets the release of the program. */ public function getRelease(): ?string { return $this->release; } /** * Sets the release of the program. * * @param string|null $release The release */ public function setRelease(?string $release): void { $this->release = $release; } /** * Gets the error message. */ public function getMessage(): ?string { return $this->message; } /** * Gets the formatted message. */ public function getMessageFormatted(): ?string { return $this->messageFormatted; } /** * Gets the parameters to use to format the message. * * @return string[] */ public function getMessageParams(): array { return $this->messageParams; } /** * Sets the error message. * * @param string $message The message * @param string[] $params The parameters to use to format the message * @param string|null $formatted The formatted message */ public function setMessage(string $message, array $params = [], ?string $formatted = null): void { $this->message = $message; $this->messageParams = $params; $this->messageFormatted = $formatted; } /** * Gets a list of relevant modules and their versions. * * @return array<string, string> */ public function getModules(): array { return $this->modules; } /** * Sets a list of relevant modules and their versions. * * @param array<string, string> $modules */ public function setModules(array $modules): void { $this->modules = $modules; } /** * Gets the request data. * * @return array<string, mixed> */ public function getRequest(): array { return $this->request; } /** * Sets the request data. * * @param array<string, mixed> $request The request data */ public function setRequest(array $request): void { $this->request = $request; } /** * Gets an arbitrary mapping of additional contexts. * * @return array<string, array<string, mixed>> */ public function getContexts(): array { return $this->contexts; } /** * Sets data to the context by a given name. * * @param string $name The name that uniquely identifies the context * @param array<string, mixed> $data The data of the context */ public function setContext(string $name, array $data): self { if (!empty($data)) { $this->contexts[$name] = $data; } return $this; } /** * Gets an arbitrary mapping of additional metadata. * * @return array<string, mixed> */ public function getExtra(): array { return $this->extra; } /** * Sets an arbitrary mapping of additional metadata. * * @param array<string, mixed> $extra The context object */ public function setExtra(array $extra): void { $this->extra = $extra; } /** * Gets a list of tags associated to this event. * * @return array<string, string> */ public function getTags(): array { return $this->tags; } /** * Sets a list of tags associated to this event. * * @param array<string, string> $tags The tags to set */ public function setTags(array $tags): void { $this->tags = $tags; } /** * Sets or updates a tag in this event. * * @param string $key The key that uniquely identifies the tag * @param string $value The value */ public function setTag(string $key, string $value): void { $this->tags[$key] = $value; } /** * Removes a given tag from the event. * * @param string $key The key that uniquely identifies the tag */ public function removeTag(string $key): void { unset($this->tags[$key]); } /** * Gets the user context. */ public function getUser(): ?UserDataBag { return $this->user; } /** * Sets the user context. * * @param UserDataBag|null $user The context object */ public function setUser(?UserDataBag $user): void { $this->user = $user; } /** * Gets the server OS context. */ public function getOsContext(): ?OsContext { return $this->osContext; } /** * Sets the server OS context. * * @param OsContext|null $osContext The context object */ public function setOsContext(?OsContext $osContext): void { $this->osContext = $osContext; } /** * Gets the runtime context data. */ public function getRuntimeContext(): ?RuntimeContext { return $this->runtimeContext; } /** * Sets the runtime context data. * * @param RuntimeContext|null $runtimeContext The context object */ public function setRuntimeContext(?RuntimeContext $runtimeContext): void { $this->runtimeContext = $runtimeContext; } /** * Gets an array of strings used to dictate the deduplication of this * event. * * @return string[] */ public function getFingerprint(): array { return $this->fingerprint; } /** * Sets an array of strings used to dictate the deduplication of this * event. * * @param string[] $fingerprint The strings */ public function setFingerprint(array $fingerprint): void { $this->fingerprint = $fingerprint; } /** * Gets the environment in which this event was generated. */ public function getEnvironment(): ?string { return $this->environment; } /** * Sets the environment in which this event was generated. * * @param string|null $environment The name of the environment */ public function setEnvironment(?string $environment): void { $this->environment = $environment; } /** * Gets the breadcrumbs. * * @return Breadcrumb[] */ public function getBreadcrumbs(): array { return $this->breadcrumbs; } /** * Set new breadcrumbs to the event. * * @param Breadcrumb[] $breadcrumbs The breadcrumb array */ public function setBreadcrumb(array $breadcrumbs): void { $this->breadcrumbs = $breadcrumbs; } /** * Gets the exception. * * @return ExceptionDataBag[] */ public function getExceptions(): array { return $this->exceptions; } /** * Sets the exceptions. * * @param ExceptionDataBag[] $exceptions The exceptions */ public function setExceptions(array $exceptions): void { foreach ($exceptions as $exception) { if (!$exception instanceof ExceptionDataBag) { throw new \UnexpectedValueException(sprintf('Expected an instance of the "%s" class. Got: "%s".', ExceptionDataBag::class, get_debug_type($exception))); } } $this->exceptions = $exceptions; } /** * Gets the stacktrace that generated this event. */ public function getStacktrace(): ?Stacktrace { return $this->stacktrace; } /** * Sets the stacktrace that generated this event. * * @param Stacktrace|null $stacktrace The stacktrace instance */ public function setStacktrace(?Stacktrace $stacktrace): void { $this->stacktrace = $stacktrace; } public function getType(): EventType { return $this->type; } /** * Sets the SDK metadata with the given name. * * @param string $name The name that uniquely identifies the SDK metadata * @param mixed $data The data of the SDK metadata */ public function setSdkMetadata(string $name, $data): void { $this->sdkMetadata[$name] = $data; } /** * Gets the SDK metadata. * * @return mixed * * @psalm-template T of string|null * * @psalm-param T $name * * @psalm-return (T is string ? mixed : array<string, mixed>|null) */ public function getSdkMetadata(?string $name = null) { if (null !== $name) { return $this->sdkMetadata[$name] ?? null; } return $this->sdkMetadata; } /** * Gets a timestamp representing when the measuring of a transaction started. */ public function getStartTimestamp(): ?float { return $this->startTimestamp; } /** * Sets a timestamp representing when the measuring of a transaction started. * * @param float|null $startTimestamp The start time of the measurement */ public function setStartTimestamp(?float $startTimestamp): void { $this->startTimestamp = $startTimestamp; } /** * A list of timed application events that have a start and end time. * * @return Span[] */ public function getSpans(): array { return $this->spans; } /** * Sets a list of timed application events that have a start and end time. * * @param Span[] $spans The list of spans */ public function setSpans(array $spans): void { $this->spans = $spans; } public function setProfile(?Profile $profile): void { $this->profile = $profile; } public function getProfile(): ?Profile { return $this->profile; } public function getTraceId(): ?string { $traceId = $this->getContexts()['trace']['trace_id']; if (\is_string($traceId) && !empty($traceId)) { return $traceId; } return null; } }