Skip to content

Commit b9df9e5

Browse files
committed
monitoring
1 parent 5bed813 commit b9df9e5

File tree

4 files changed

+156
-19
lines changed

4 files changed

+156
-19
lines changed

ConsumedMessageStats.php

Lines changed: 110 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ class ConsumedMessageStats implements Stats
3131
*/
3232
protected $queue;
3333

34+
/**
35+
* @var string
36+
*/
37+
protected $messageId;
38+
39+
/**
40+
* @var string
41+
*/
42+
protected $correlationId;
43+
3444
/**
3545
* @var array
3646
*/
@@ -41,27 +51,81 @@ class ConsumedMessageStats implements Stats
4151
*/
4252
protected $properties;
4353

54+
/**
55+
* @var bool;
56+
*/
57+
protected $redelivered;
58+
4459
/**
4560
* @var string
4661
*/
4762
protected $status;
4863

64+
/**
65+
* @var string
66+
*/
67+
protected $errorClass;
68+
69+
/**
70+
* @var string
71+
*/
72+
protected $errorMessage;
73+
74+
/**
75+
* @var int
76+
*/
77+
protected $errorCode;
78+
79+
/**
80+
* @var string
81+
*/
82+
protected $errorFile;
83+
84+
/**
85+
* @var int
86+
*/
87+
protected $errorLine;
88+
89+
/**
90+
* @var string
91+
*/
92+
protected $trance;
93+
4994
public function __construct(
5095
string $consumerId,
5196
int $timestampMs,
5297
int $receivedAtMs,
5398
string $queue,
99+
?string $messageId,
100+
?string $correlationId,
54101
array $headers,
55102
array $properties,
56-
string $status
103+
bool $redelivered,
104+
string $status,
105+
string $errorClass = null,
106+
string $errorMessage = null,
107+
int $errorCode = null,
108+
string $errorFile = null,
109+
int $errorLine = null,
110+
string $trace = null
57111
) {
58112
$this->consumerId = $consumerId;
59113
$this->timestampMs = $timestampMs;
60114
$this->receivedAtMs = $receivedAtMs;
61115
$this->queue = $queue;
116+
$this->messageId = $messageId;
117+
$this->correlationId = $correlationId;
62118
$this->headers = $headers;
63119
$this->properties = $properties;
120+
$this->redelivered = $redelivered;
64121
$this->status = $status;
122+
123+
$this->errorClass = $errorClass;
124+
$this->errorMessage = $errorMessage;
125+
$this->errorCode = $errorCode;
126+
$this->errorFile = $errorFile;
127+
$this->errorLine = $errorLine;
128+
$this->trance = $trace;
65129
}
66130

67131
public function getConsumerId(): string
@@ -84,6 +148,16 @@ public function getQueue(): string
84148
return $this->queue;
85149
}
86150

151+
public function getMessageId(): ?string
152+
{
153+
return $this->messageId;
154+
}
155+
156+
public function getCorrelationId(): ?string
157+
{
158+
return $this->correlationId;
159+
}
160+
87161
public function getHeaders(): array
88162
{
89163
return $this->headers;
@@ -94,8 +168,43 @@ public function getProperties(): array
94168
return $this->properties;
95169
}
96170

171+
public function isRedelivered(): bool
172+
{
173+
return $this->redelivered;
174+
}
175+
97176
public function getStatus(): string
98177
{
99178
return $this->status;
100179
}
180+
181+
public function getErrorClass(): ?string
182+
{
183+
return $this->errorClass;
184+
}
185+
186+
public function getErrorMessage(): ?string
187+
{
188+
return $this->errorMessage;
189+
}
190+
191+
public function getErrorCode(): ?int
192+
{
193+
return $this->errorCode;
194+
}
195+
196+
public function getErrorFile(): ?string
197+
{
198+
return $this->errorFile;
199+
}
200+
201+
public function getErrorLine(): ?int
202+
{
203+
return $this->errorLine;
204+
}
205+
206+
public function getTrance(): ?string
207+
{
208+
return $this->trance;
209+
}
101210
}

InfluxDbStorage.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ public function pushConsumedMessageStats(ConsumedMessageStats $stats): void
122122
$values = [
123123
'receivedAt' => $stats->getReceivedAtMs(),
124124
'processedAt' => $stats->getTimestampMs(),
125+
'redelivered' => $stats->isRedelivered(),
125126
];
126127

127128
if (ConsumedMessageStats::STATUS_FAILED === $stats->getStatus()) {

MonitoringExtension.php

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,24 @@
33
namespace Enqueue\Monitoring;
44

55
use Enqueue\Consumption\Context\End;
6-
use Enqueue\Consumption\Context\InitLogger;
76
use Enqueue\Consumption\Context\MessageReceived;
87
use Enqueue\Consumption\Context\MessageResult;
9-
use Enqueue\Consumption\Context\PostConsume;
10-
use Enqueue\Consumption\Context\PostMessageReceived;
118
use Enqueue\Consumption\Context\PreConsume;
129
use Enqueue\Consumption\Context\PreSubscribe;
1310
use Enqueue\Consumption\Context\ProcessorException;
1411
use Enqueue\Consumption\Context\Start;
15-
use Enqueue\Consumption\ExtensionInterface;
12+
use Enqueue\Consumption\EndExtensionInterface;
13+
use Enqueue\Consumption\MessageReceivedExtensionInterface;
14+
use Enqueue\Consumption\MessageResultExtensionInterface;
15+
use Enqueue\Consumption\PreConsumeExtensionInterface;
16+
use Enqueue\Consumption\PreSubscribeExtensionInterface;
17+
use Enqueue\Consumption\ProcessorExceptionExtensionInterface;
1618
use Enqueue\Consumption\Result;
19+
use Enqueue\Consumption\StartExtensionInterface;
1720
use Psr\Log\LoggerInterface;
1821
use Ramsey\Uuid\Uuid;
1922

20-
class MonitoringExtension implements ExtensionInterface
23+
class MonitoringExtension implements StartExtensionInterface, PreSubscribeExtensionInterface, PreConsumeExtensionInterface, EndExtensionInterface, ProcessorExceptionExtensionInterface, MessageReceivedExtensionInterface, MessageResultExtensionInterface
2124
{
2225
/**
2326
* @var StatsStorage
@@ -165,9 +168,18 @@ public function onProcessorException(ProcessorException $context): void
165168
$timeMs,
166169
$context->getReceivedAt(),
167170
$context->getConsumer()->getQueue()->getQueueName(),
171+
$context->getMessage()->getMessageId(),
172+
$context->getMessage()->getCorrelationId(),
168173
$context->getMessage()->getHeaders(),
169174
$context->getMessage()->getProperties(),
170-
ConsumedMessageStats::STATUS_FAILED
175+
$context->getMessage()->isRedelivered(),
176+
ConsumedMessageStats::STATUS_FAILED,
177+
get_class($context->getException()),
178+
$context->getException()->getMessage(),
179+
$context->getException()->getCode(),
180+
$context->getException()->getFile(),
181+
$context->getException()->getLine(),
182+
$context->getException()->getTraceAsString()
171183
);
172184

173185
$this->safeCall(function () use ($event) {
@@ -238,8 +250,11 @@ public function onResult(MessageResult $context): void
238250
$timeMs,
239251
$context->getReceivedAt(),
240252
$context->getConsumer()->getQueue()->getQueueName(),
253+
$context->getMessage()->getMessageId(),
254+
$context->getMessage()->getCorrelationId(),
241255
$context->getMessage()->getHeaders(),
242256
$context->getMessage()->getProperties(),
257+
$context->getMessage()->isRedelivered(),
243258
$status
244259
);
245260

@@ -275,18 +290,6 @@ public function onResult(MessageResult $context): void
275290
}
276291
}
277292

278-
public function onPostConsume(PostConsume $context): void
279-
{
280-
}
281-
282-
public function onPostMessageReceived(PostMessageReceived $context): void
283-
{
284-
}
285-
286-
public function onInitLogger(InitLogger $context): void
287-
{
288-
}
289-
290293
private function getNowMs(): int
291294
{
292295
return (int) (microtime(true) * 1000);

SentMessageStats.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,16 @@ class SentMessageStats implements Stats
1111
*/
1212
protected $timestampMs;
1313

14+
/**
15+
* @var string
16+
*/
17+
protected $messageId;
18+
19+
/**
20+
* @var string
21+
*/
22+
protected $correlationId;
23+
1424
/**
1525
* @var string
1626
*/
@@ -29,11 +39,15 @@ class SentMessageStats implements Stats
2939
public function __construct(
3040
int $timestampMs,
3141
string $queue,
42+
?string $messageId,
43+
?string $correlationId,
3244
array $headers,
3345
array $properties
3446
) {
3547
$this->timestampMs = $timestampMs;
3648
$this->queue = $queue;
49+
$this->messageId = $messageId;
50+
$this->correlationId = $correlationId;
3751
$this->headers = $headers;
3852
$this->properties = $properties;
3953
}
@@ -48,6 +62,16 @@ public function getQueue(): string
4862
return $this->queue;
4963
}
5064

65+
public function getMessageId(): ?string
66+
{
67+
return $this->messageId;
68+
}
69+
70+
public function getCorrelationId(): ?string
71+
{
72+
return $this->correlationId;
73+
}
74+
5175
public function getHeaders(): array
5276
{
5377
return $this->headers;

0 commit comments

Comments
 (0)