Skip to content

Commit 233774d

Browse files
Capture sub-graph project metrics
Co-authored-by: Ioannis Panagiotas <ioannis.panagiotas@neotechnology.com>
1 parent 5c56a05 commit 233774d

File tree

3 files changed

+29
-6
lines changed

3 files changed

+29
-6
lines changed

applications/graph-store-catalog/src/main/java/org/neo4j/gds/applications/graphstorecatalog/DefaultCatalogBusinessFacade.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -387,12 +387,19 @@ public GraphFilterResult subGraphProject(
387387
rawConfiguration
388388
);
389389

390-
return subGraphProjectApplication.project(
391-
taskRegistryFactory,
392-
userLogRegistryFactory,
393-
configuration,
394-
originGraphConfiguration.graphStore()
395-
);
390+
var subGraphMetric = projectionMetricsService.createSubGraph();
391+
try(subGraphMetric) {
392+
subGraphMetric.start();
393+
return subGraphProjectApplication.project(
394+
taskRegistryFactory,
395+
userLogRegistryFactory,
396+
configuration,
397+
originGraphConfiguration.graphStore()
398+
);
399+
} catch (Exception e) {
400+
subGraphMetric.failed();
401+
throw e;
402+
}
396403
}
397404

398405
@Override

metrics-api/src/main/java/org/neo4j/gds/metrics/projections/ProjectionMetricsService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,8 @@ public ExecutionMetric createCypherV2() {
4242
return metricRegistrar.create("cypherV2");
4343
}
4444

45+
public ExecutionMetric createSubGraph() {
46+
return metricRegistrar.create("subGraph");
47+
}
48+
4549
}

metrics-api/src/test/java/org/neo4j/gds/metrics/projections/ProjectionMetricsServiceTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,18 @@ void shouldCreateCypherV2ProjectionMetric() {
7171
verifyNoMoreInteractions(registrarMock);
7272
}
7373

74+
@Test
75+
void shouldCreateSubGraphProjectionMetric() {
76+
// given
77+
var registrarMock = Mockito.mock(ExecutionMetricRegistrar.class);
78+
var metricsService = new ProjectionMetricsService(registrarMock);
7479

80+
// when
81+
metricsService.createSubGraph();
82+
83+
// then
84+
verify(registrarMock, times(1)).create("subGraph");
85+
verifyNoMoreInteractions(registrarMock);
86+
}
7587

7688
}

0 commit comments

Comments
 (0)