Skip to content

Commit 1dfdd7d

Browse files
committed
Add endpoint method and path to metrics name.
Signed-off-by: Jakub Dardzinski <kuba0221@gmail.com>
1 parent 8010387 commit 1dfdd7d

3 files changed

Lines changed: 55 additions & 1 deletion

File tree

api/src/main/java/marquez/MarquezApp.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import marquez.db.DbMigration;
3737
import marquez.jobs.DbRetentionJob;
3838
import marquez.logging.LoggingMdcFilter;
39+
import marquez.logging.SmarterNameStrategy;
3940
import marquez.tracing.SentryConfig;
4041
import marquez.tracing.TracingContainerResponseFilter;
4142
import marquez.tracing.TracingSQLLogger;
@@ -162,7 +163,7 @@ private Jdbi newJdbi(
162163
.installPlugin(new SqlObjectPlugin())
163164
.installPlugin(new PostgresPlugin())
164165
.installPlugin(new Jackson2Plugin());
165-
SqlLogger sqlLogger = new InstrumentedSqlLogger(env.metrics());
166+
SqlLogger sqlLogger = new InstrumentedSqlLogger(env.metrics(), new SmarterNameStrategy());
166167
if (isSentryEnabled(config)) {
167168
sqlLogger = new TracingSQLLogger(sqlLogger);
168169
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Copyright 2018-2023 contributors to the Marquez project
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package marquez.logging;
7+
8+
import com.codahale.metrics.MetricRegistry;
9+
import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
10+
import org.jdbi.v3.core.extension.ExtensionMethod;
11+
import org.jdbi.v3.core.statement.StatementContext;
12+
import org.slf4j.MDC;
13+
14+
public class EndpointNameStrategy implements StatementNameStrategy {
15+
16+
@Override
17+
public String getStatementName(StatementContext statementContext) {
18+
ExtensionMethod extensionMethod = statementContext.getExtensionMethod();
19+
if (extensionMethod != null) {
20+
if (MDC.get("method") != null && MDC.get("path") != null) {
21+
StringBuilder builder =
22+
new StringBuilder()
23+
.append(extensionMethod.getMethod().getName())
24+
.append(".")
25+
.append(MDC.get("method"))
26+
.append(".")
27+
.append(MDC.get("path"));
28+
return MetricRegistry.name(extensionMethod.getType(), builder.toString());
29+
}
30+
}
31+
return null;
32+
}
33+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2018-2023 contributors to the Marquez project
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package marquez.logging;
7+
8+
import com.codahale.metrics.jdbi3.strategies.DefaultNameStrategy;
9+
import com.codahale.metrics.jdbi3.strategies.DelegatingStatementNameStrategy;
10+
11+
public class SmarterNameStrategy extends DelegatingStatementNameStrategy {
12+
13+
public SmarterNameStrategy() {
14+
super(
15+
DefaultNameStrategy.CHECK_EMPTY,
16+
new EndpointNameStrategy(),
17+
DefaultNameStrategy.SQL_OBJECT,
18+
DefaultNameStrategy.CONSTANT_SQL_RAW);
19+
}
20+
}

0 commit comments

Comments
 (0)