Skip to content

Commit 76e5925

Browse files
authored
Merge pull request #5 from drewblin/v1.4.0
V1.4.0
2 parents a8592af + 202f890 commit 76e5925

File tree

3 files changed

+68
-10
lines changed

3 files changed

+68
-10
lines changed

src/Decorator/JaegerConnectionDecorator.php

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,15 @@ class JaegerConnectionDecorator extends AbstractConnectionDecorator
2020
{
2121
private $tracer;
2222

23-
public function __construct(Connection $connection, TracerInterface $tracer)
23+
/**
24+
* @var int|null
25+
*/
26+
private $maxSqlLength;
27+
28+
public function __construct(Connection $connection, TracerInterface $tracer, ?int $maxSqlLength = null)
2429
{
2530
$this->tracer = $tracer;
31+
$this->maxSqlLength = $maxSqlLength;
2632
parent::__construct($connection);
2733
}
2834

@@ -56,7 +62,7 @@ public function prepare($prepareString)
5662
->addTag(new DbUser($this->getUsername()))
5763
->addTag(new DbType($this->getDatabasePlatform()->getName()))
5864
->addTag(new DbalAutoCommitTag($this->isAutoCommit()))
59-
->addTag(new DbStatementTag($prepareString))
65+
->addTag(new DbStatementTag($this->cutLongSql($prepareString)))
6066
->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()));
6167
try {
6268
return parent::prepare($prepareString);
@@ -77,7 +83,7 @@ public function executeQuery($query, array $params = [], $types = [], QueryCache
7783
->addTag(new DbUser($this->getUsername()))
7884
->addTag(new DbType($this->getDatabasePlatform()->getName()))
7985
->addTag(new DbalAutoCommitTag($this->isAutoCommit()))
80-
->addTag(new DbStatementTag($query))
86+
->addTag(new DbStatementTag($this->cutLongSql($query)))
8187
->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()));
8288
try {
8389
return parent::executeQuery($query, $params, $types, $qcp);
@@ -98,7 +104,7 @@ public function executeUpdate($query, array $params = [], array $types = [])
98104
->addTag(new DbUser($this->getUsername()))
99105
->addTag(new DbType($this->getDatabasePlatform()->getName()))
100106
->addTag(new DbalAutoCommitTag($this->isAutoCommit()))
101-
->addTag(new DbStatementTag($query))
107+
->addTag(new DbStatementTag($this->cutLongSql($query)))
102108
->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()));
103109
try {
104110
return parent::executeUpdate($query, $params, $types);
@@ -116,7 +122,7 @@ public function query()
116122
$args = func_get_args();
117123
$span = $this->tracer
118124
->start('dbal.query')
119-
->addTag(new DbStatementTag($args[0]))
125+
->addTag(new DbStatementTag($this->cutLongSql($args[0])))
120126
->addTag(new DbInstanceTag($this->getDatabase()))
121127
->addTag(new DbUser($this->getUsername()))
122128
->addTag(new DbType($this->getDatabasePlatform()->getName()))
@@ -212,4 +218,13 @@ public function rollBack()
212218
$span->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()))->finish();
213219
}
214220
}
221+
222+
private function cutLongSql(string $string): string
223+
{
224+
if (null === $this->maxSqlLength) {
225+
return $string;
226+
}
227+
228+
return substr($string, 0, $this->maxSqlLength);
229+
}
215230
}

src/Wrapper/JaegerConnectionWrapper.php

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,25 @@ class JaegerConnectionWrapper extends Connection
2323
*/
2424
private $tracer;
2525

26+
/**
27+
* @var int|null
28+
*/
29+
private $maxSqlLength = null;
30+
2631
public function setTracer(TracerInterface $tracer)
2732
{
2833
$this->tracer = $tracer;
2934

3035
return $this;
3136
}
3237

38+
public function setMaxSqlLength(?int $maxSqlLength)
39+
{
40+
$this->maxSqlLength = $maxSqlLength;
41+
42+
return $this;
43+
}
44+
3345
public function connect()
3446
{
3547
if ($this->isConnected()) {
@@ -62,7 +74,7 @@ public function prepare($prepareString)
6274
->addTag(new DbUser($this->getUsername()))
6375
->addTag(new DbType($this->getDatabasePlatform()->getName()))
6476
->addTag(new DbalAutoCommitTag($this->isAutoCommit()))
65-
->addTag(new DbStatementTag($prepareString))
77+
->addTag(new DbStatementTag($this->cutLongSql($prepareString)))
6678
->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()));
6779
try {
6880
return $this->wrappedPrepare($prepareString);
@@ -85,6 +97,7 @@ private function wrappedPrepare($sql)
8597

8698
$stmt->setFetchMode($this->defaultFetchMode);
8799
$stmt->setTracer($this->tracer);
100+
$stmt->setMaxSqlLength($this->maxSqlLength);
88101

89102
return $stmt;
90103
}
@@ -97,7 +110,7 @@ public function executeQuery($query, array $params = [], $types = [], QueryCache
97110
->addTag(new DbUser($this->getUsername()))
98111
->addTag(new DbType($this->getDatabasePlatform()->getName()))
99112
->addTag(new DbalAutoCommitTag($this->isAutoCommit()))
100-
->addTag(new DbStatementTag($query))
113+
->addTag(new DbStatementTag($this->cutLongSql($query)))
101114
->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()));
102115
try {
103116
return parent::executeQuery($query, $params, $types, $qcp);
@@ -118,7 +131,7 @@ public function executeUpdate($query, array $params = [], array $types = [])
118131
->addTag(new DbUser($this->getUsername()))
119132
->addTag(new DbType($this->getDatabasePlatform()->getName()))
120133
->addTag(new DbalAutoCommitTag($this->isAutoCommit()))
121-
->addTag(new DbStatementTag($query))
134+
->addTag(new DbStatementTag($this->cutLongSql($query)))
122135
->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel()));
123136
try {
124137
return parent::executeUpdate($query, $params, $types);
@@ -136,7 +149,7 @@ public function query()
136149
$args = func_get_args();
137150
$span = $this->tracer
138151
->start('dbal.query')
139-
->addTag(new DbStatementTag($args[0]))
152+
->addTag(new DbStatementTag($this->cutLongSql($args[0])))
140153
->addTag(new DbInstanceTag($this->getDatabase()))
141154
->addTag(new DbUser($this->getUsername()))
142155
->addTag(new DbType($this->getDatabasePlatform()->getName()))
@@ -232,4 +245,13 @@ public function rollBack()
232245
$this->tracer->finish($span->addTag(new DbalNestingLevelTag($this->getTransactionNestingLevel())));
233246
}
234247
}
248+
249+
private function cutLongSql(string $string): string
250+
{
251+
if (null === $this->maxSqlLength) {
252+
return $string;
253+
}
254+
255+
return substr($string, 0, $this->maxSqlLength);
256+
}
235257
}

src/Wrapper/JaegerStatementWrapper.php

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,30 @@ class JaegerStatementWrapper extends Statement
1616
*/
1717
private $tracer;
1818

19+
/**
20+
* @var int|null
21+
*/
22+
private $maxSqlLength;
23+
1924
public function setTracer(TracerInterface $tracer)
2025
{
2126
$this->tracer = $tracer;
2227

2328
return $this;
2429
}
2530

31+
public function setMaxSqlLength(?int $maxSqlLength)
32+
{
33+
$this->maxSqlLength = $maxSqlLength;
34+
35+
return $this;
36+
}
37+
2638
public function execute($params = null)
2739
{
2840
$span = $this->tracer
2941
->start('dbal.prepare.execute')
30-
->addTag(new DbStatementTag($this->sql));
42+
->addTag(new DbStatementTag($this->cutLongSql($this->sql)));
3143

3244
try {
3345
return parent::execute($params);
@@ -40,4 +52,13 @@ public function execute($params = null)
4052
$this->tracer->finish($span);
4153
}
4254
}
55+
56+
private function cutLongSql(string $string): string
57+
{
58+
if (null === $this->maxSqlLength) {
59+
return $string;
60+
}
61+
62+
return substr($string, 0, $this->maxSqlLength);
63+
}
4364
}

0 commit comments

Comments
 (0)