Skip to content

Commit e00a542

Browse files
committed
JigMetricsはinitとcloseだけ受け持つようにする
Micrometer直接使うでもそんな冗長じゃない感じなので。
1 parent fa038f6 commit e00a542

4 files changed

Lines changed: 18 additions & 37 deletions

File tree

jig-core/src/main/java/org/dddjava/jig/JigExecutor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.dddjava.jig;
22

3+
import io.micrometer.core.instrument.Metrics;
34
import org.dddjava.jig.application.JigDocumentGenerator;
45
import org.dddjava.jig.application.metrics.JigMetrics;
56
import org.dddjava.jig.domain.model.information.JigRepository;
@@ -25,7 +26,7 @@ public JigExecutor(Configuration configuration) {
2526
*/
2627
public static List<HandleResult> execute(Configuration configuration, SourceBasePaths sourceBasePaths) {
2728
try (var __ = JigMetrics.init(configuration)) {
28-
return JigMetrics.of("jig.execution.time").measure("total_execution", () ->
29+
return Metrics.timer("jig.execution.time", "phase", "total_execution").record(() ->
2930
new JigExecutor(configuration).execute(sourceBasePaths));
3031
}
3132
}

jig-core/src/main/java/org/dddjava/jig/application/JigDocumentGenerator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.dddjava.jig.application;
22

3+
import io.micrometer.core.instrument.Metrics;
34
import org.dddjava.jig.HandleResult;
45
import org.dddjava.jig.adapter.CompositeAdapter;
56
import org.dddjava.jig.adapter.diagram.DiagramAdapter;
@@ -8,7 +9,6 @@
89
import org.dddjava.jig.adapter.excel.ListAdapter;
910
import org.dddjava.jig.adapter.html.*;
1011
import org.dddjava.jig.adapter.html.dialect.JigDialect;
11-
import org.dddjava.jig.application.metrics.JigMetrics;
1212
import org.dddjava.jig.domain.model.documents.documentformat.JigDocument;
1313
import org.dddjava.jig.domain.model.documents.stationery.JigDiagramOption;
1414
import org.dddjava.jig.domain.model.documents.stationery.JigDocumentContext;
@@ -68,7 +68,7 @@ public JigDocumentGenerator(JigDocumentContext jigDocumentContext, JigService ji
6868
}
6969

7070
public void generateIndex(List<HandleResult> results) {
71-
JigMetrics.of("jig.document.time").measureVoid("index", () -> {
71+
Metrics.timer("jig.document.time", "record", "index").record(() -> {
7272
IndexView indexView = new IndexView(thymeleafTemplateEngine, diagramOption.graphvizOutputFormat());
7373
indexView.render(results, outputDirectory);
7474
});
@@ -106,7 +106,7 @@ private void prepareOutputDirectory() {
106106
}
107107

108108
HandleResult generateDocument(JigDocument jigDocument, Path outputDirectory, JigRepository jigRepository) {
109-
return JigMetrics.of("jig.document.time").measure(jigDocument.name(), () -> {
109+
return Metrics.timer("jig.document.time", "phase", jigDocument.name()).record(() -> {
110110
try {
111111
long startTime = System.currentTimeMillis();
112112

jig-core/src/main/java/org/dddjava/jig/application/metrics/JigMetrics.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,10 @@
1515
import java.io.IOException;
1616
import java.io.UncheckedIOException;
1717
import java.nio.file.Files;
18-
import java.util.function.Supplier;
1918

2019
public class JigMetrics {
2120
private static final Logger logger = LoggerFactory.getLogger(JigMetrics.class);
2221

23-
private final String metricName;
24-
25-
private JigMetrics(String metricName) {
26-
this.metricName = metricName;
27-
}
28-
29-
public static JigMetrics of(String metricName) {
30-
return new JigMetrics(metricName);
31-
}
32-
3322
public static Closeable init(Configuration configuration) {
3423
var registry = Metrics.globalRegistry;
3524
registry.add(new PrometheusMeterRegistry(PrometheusConfig.DEFAULT));
@@ -86,12 +75,4 @@ public void close() {
8675
});
8776
}
8877
}
89-
90-
public <T> T measure(String phase, Supplier<T> operation) {
91-
return Metrics.timer(metricName, "phase", phase).record(operation);
92-
}
93-
94-
public void measureVoid(String phase, Runnable operation) {
95-
Metrics.timer(metricName, "phase", phase).record(operation);
96-
}
9778
}

jig-core/src/main/java/org/dddjava/jig/infrastructure/javaproductreader/DefaultJigRepositoryFactory.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package org.dddjava.jig.infrastructure.javaproductreader;
22

3+
import io.micrometer.core.instrument.Metrics;
34
import io.micrometer.core.instrument.Timer;
45
import org.dddjava.jig.application.GlossaryRepository;
56
import org.dddjava.jig.application.JigDataProvider;
67
import org.dddjava.jig.application.JigEventRepository;
7-
import org.dddjava.jig.application.metrics.JigMetrics;
88
import org.dddjava.jig.domain.model.data.rdbaccess.MyBatisStatements;
99
import org.dddjava.jig.domain.model.data.terms.Glossary;
1010
import org.dddjava.jig.domain.model.data.types.JigTypeHeader;
@@ -26,6 +26,7 @@
2626
import java.nio.file.Path;
2727
import java.util.Collection;
2828
import java.util.List;
29+
import java.util.Objects;
2930

3031
public class DefaultJigRepositoryFactory {
3132

@@ -82,31 +83,29 @@ public JigRepository createJigRepository(SourceBasePaths sourceBasePaths) {
8283
* プロジェクト情報を読み取る
8384
*/
8485
private JigRepository analyze(LocalSource sources) {
85-
var timer = JigMetrics.of("jig.analysis.time");
86-
return timer.measure("code_analysis_total", () -> {
86+
var metricName = "jig.analysis.time";
87+
return Metrics.timer(metricName, "phase", "code_analysis_total").record(() -> {
8788
JavaFilePaths javaFilePaths = sources.javaFilePaths();
8889

89-
timer.measureVoid("package_info_parsing", () ->
90+
Metrics.timer(metricName, "phase", "package_info_parsing").record(() ->
9091
javaFilePaths.packageInfoPaths().forEach(
9192
path -> javaparserReader.loadPackageInfoJavaFile(path, glossaryRepository))
9293
);
9394

94-
JavaSourceModel javaSourceModel = timer.measure("java_source_parsing", () ->
95+
JavaSourceModel javaSourceModel = Metrics.timer(metricName, "phase", "java_source_parsing").record(() ->
9596
javaFilePaths.javaPaths().stream()
9697
.map(path -> javaparserReader.parseJavaFile(path, glossaryRepository))
9798
.reduce(JavaSourceModel::merge)
98-
.orElseGet(JavaSourceModel::empty)
99-
);
99+
.orElseGet(JavaSourceModel::empty));
100100

101-
Collection<ClassDeclaration> classDeclarations = timer.measure("class_file_parsing", () ->
102-
asmClassSourceReader.readClasses(sources.classFiles())
103-
);
101+
Collection<ClassDeclaration> classDeclarations = Objects.requireNonNull(
102+
Metrics.timer(metricName, "phase", "class_file_parsing").record(() ->
103+
asmClassSourceReader.readClasses(sources.classFiles())));
104104

105-
MyBatisStatements myBatisStatements = timer.measure("mybatis_reading", () ->
106-
readMyBatisStatements(sources, classDeclarations)
107-
);
105+
MyBatisStatements myBatisStatements = Metrics.timer(metricName, "phase", "mybatis_reading").record(() ->
106+
readMyBatisStatements(sources, classDeclarations));
108107

109-
return timer.measure("jig_repository_creation", () -> {
108+
return Metrics.timer(metricName, "phase", "jig_repository_creation").record(() -> {
110109
DefaultJigDataProvider defaultJigDataProvider = new DefaultJigDataProvider(javaSourceModel, myBatisStatements);
111110
JigTypes jigTypes = JigTypeFactory.createJigTypes(classDeclarations, glossaryRepository.all());
112111
return new JigRepository() {

0 commit comments

Comments
 (0)