@@ -23,13 +23,16 @@ class InfluxDbStorage implements StatsStorage
23
23
*/
24
24
private $ measurMessages ;
25
25
26
+ /**
27
+ * @var string
28
+ */
29
+ private $ measurConsumers ;
30
+
26
31
/**
27
32
* @var Database
28
33
*/
29
34
private $ database ;
30
35
31
- private $ serializer ;
32
-
33
36
/**
34
37
* @param Client $client
35
38
* @param string $dbName
@@ -38,14 +41,41 @@ public function __construct(Client $client, string $dbName)
38
41
{
39
42
$ this ->client = $ client ;
40
43
$ this ->dbName = $ dbName ;
41
- $ this ->measurMessages = 'msg ' ;
42
-
43
- $ this ->serializer = new JsonSerializer ();
44
+ $ this ->measurMessages = 'messages ' ;
45
+ $ this ->measurConsumers = 'consumers ' ;
44
46
}
45
47
46
48
public function pushConsumerStats (ConsumerStats $ event ): void
47
49
{
48
- // echo $this->serializer->toString($event).PHP_EOL;
50
+ $ points = [];
51
+
52
+ foreach ($ event ->getQueues () as $ queue ) {
53
+ $ tags = [
54
+ 'queue ' => $ queue ,
55
+ 'consumerId ' => $ event ->getConsumerId (),
56
+ ];
57
+
58
+ $ values = [
59
+ 'startedAtMs ' => $ event ->getStartedAtMs (),
60
+ 'started ' => $ event ->isStarted (),
61
+ 'finished ' => $ event ->isFinished (),
62
+ 'failed ' => $ event ->isFailed (),
63
+ 'received ' => $ event ->getReceived (),
64
+ 'acknowledged ' => $ event ->getAcknowledged (),
65
+ 'rejected ' => $ event ->getRejected (),
66
+ 'requeued ' => $ event ->getRequeued (),
67
+ 'memoryUsage ' => $ event ->getMemoryUsage (),
68
+ 'systemLoad ' => $ event ->getSystemLoad (),
69
+ ];
70
+
71
+ if ($ event ->getFinishedAtMs ()) {
72
+ $ values ['finishedAtMs ' ] = $ event ->getFinishedAtMs ();
73
+ }
74
+
75
+ $ points [] = new Point ($ this ->measurConsumers , null , $ tags , $ values , $ event ->getTimestampMs ());
76
+ }
77
+
78
+ $ this ->getDb ()->writePoints ($ points , Database::PRECISION_MILLISECONDS );
49
79
}
50
80
51
81
public function pushMessageStats (MessageStats $ event ): void
0 commit comments