Skip to content

Commit 9890f98

Browse files
authored
Track more snapshot-releated node-level stats (#130301)
1 parent 9681ffe commit 9890f98

File tree

78 files changed

+1644
-417
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+1644
-417
lines changed

modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
import org.elasticsearch.common.unit.ByteSizeUnit;
2323
import org.elasticsearch.common.unit.ByteSizeValue;
2424
import org.elasticsearch.common.util.BigArrays;
25+
import org.elasticsearch.core.Nullable;
2526
import org.elasticsearch.indices.recovery.RecoverySettings;
2627
import org.elasticsearch.repositories.RepositoriesMetrics;
28+
import org.elasticsearch.repositories.SnapshotMetrics;
2729
import org.elasticsearch.repositories.blobstore.MeteredBlobStoreRepository;
2830
import org.elasticsearch.xcontent.NamedXContentRegistry;
2931

@@ -111,14 +113,15 @@ public static final class Repository {
111113
private final RepositoriesMetrics repositoriesMetrics;
112114

113115
public AzureRepository(
114-
final ProjectId projectId,
116+
@Nullable final ProjectId projectId,
115117
final RepositoryMetadata metadata,
116118
final NamedXContentRegistry namedXContentRegistry,
117119
final AzureStorageService storageService,
118120
final ClusterService clusterService,
119121
final BigArrays bigArrays,
120122
final RecoverySettings recoverySettings,
121-
final RepositoriesMetrics repositoriesMetrics
123+
final RepositoriesMetrics repositoriesMetrics,
124+
final SnapshotMetrics snapshotMetrics
122125
) {
123126
super(
124127
projectId,
@@ -128,7 +131,8 @@ public AzureRepository(
128131
bigArrays,
129132
recoverySettings,
130133
buildBasePath(metadata),
131-
buildLocation(metadata)
134+
buildLocation(metadata),
135+
snapshotMetrics
132136
);
133137
this.chunkSize = Repository.CHUNK_SIZE_SETTING.get(metadata.settings());
134138
this.storageService = storageService;

modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.elasticsearch.plugins.RepositoryPlugin;
2525
import org.elasticsearch.repositories.RepositoriesMetrics;
2626
import org.elasticsearch.repositories.Repository;
27+
import org.elasticsearch.repositories.SnapshotMetrics;
2728
import org.elasticsearch.threadpool.ExecutorBuilder;
2829
import org.elasticsearch.threadpool.ScalingExecutorBuilder;
2930
import org.elasticsearch.threadpool.ThreadPool;
@@ -60,7 +61,8 @@ public Map<String, Repository.Factory> getRepositories(
6061
ClusterService clusterService,
6162
BigArrays bigArrays,
6263
RecoverySettings recoverySettings,
63-
RepositoriesMetrics repositoriesMetrics
64+
RepositoriesMetrics repositoriesMetrics,
65+
SnapshotMetrics snapshotMetrics
6466
) {
6567
return Collections.singletonMap(AzureRepository.TYPE, (projectId, metadata) -> {
6668
AzureStorageService storageService = azureStoreService.get();
@@ -73,7 +75,8 @@ public Map<String, Repository.Factory> getRepositories(
7375
clusterService,
7476
bigArrays,
7577
recoverySettings,
76-
repositoriesMetrics
78+
repositoriesMetrics,
79+
snapshotMetrics
7780
);
7881
});
7982
}

modules/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureRepositorySettingsTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.env.Environment;
2020
import org.elasticsearch.indices.recovery.RecoverySettings;
2121
import org.elasticsearch.repositories.RepositoriesMetrics;
22+
import org.elasticsearch.repositories.SnapshotMetrics;
2223
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
2324
import org.elasticsearch.test.ESTestCase;
2425
import org.elasticsearch.xcontent.NamedXContentRegistry;
@@ -46,7 +47,8 @@ private AzureRepository azureRepository(Settings settings) {
4647
BlobStoreTestUtil.mockClusterService(),
4748
MockBigArrays.NON_RECYCLING_INSTANCE,
4849
new RecoverySettings(settings, new ClusterSettings(settings, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS)),
49-
RepositoriesMetrics.NOOP
50+
RepositoriesMetrics.NOOP,
51+
SnapshotMetrics.NOOP
5052
);
5153
assertThat(azureRepository.getProjectId(), equalTo(projectId));
5254
assertThat(azureRepository.getBlobStore(), is(nullValue()));

modules/repository-gcs/src/internalClusterTest/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobStoreRepositoryTests.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.elasticsearch.repositories.RepositoriesMetrics;
4747
import org.elasticsearch.repositories.RepositoriesService;
4848
import org.elasticsearch.repositories.Repository;
49+
import org.elasticsearch.repositories.SnapshotMetrics;
4950
import org.elasticsearch.repositories.blobstore.BlobStoreRepository;
5051
import org.elasticsearch.repositories.blobstore.ESMockAPIBasedRepositoryIntegTestCase;
5152
import org.elasticsearch.xcontent.NamedXContentRegistry;
@@ -273,7 +274,8 @@ public Map<String, Repository.Factory> getRepositories(
273274
ClusterService clusterService,
274275
BigArrays bigArrays,
275276
RecoverySettings recoverySettings,
276-
RepositoriesMetrics repositoriesMetrics
277+
RepositoriesMetrics repositoriesMetrics,
278+
SnapshotMetrics snapshotMetrics
277279
) {
278280
return Collections.singletonMap(
279281
GoogleCloudStorageRepository.TYPE,
@@ -285,7 +287,8 @@ public Map<String, Repository.Factory> getRepositories(
285287
clusterService,
286288
bigArrays,
287289
recoverySettings,
288-
new GcsRepositoryStatsCollector()
290+
new GcsRepositoryStatsCollector(),
291+
snapshotMetrics
289292
) {
290293
@Override
291294
protected GoogleCloudStorageBlobStore createBlobStore() {

modules/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStoragePlugin.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.elasticsearch.plugins.RepositoryPlugin;
2323
import org.elasticsearch.repositories.RepositoriesMetrics;
2424
import org.elasticsearch.repositories.Repository;
25+
import org.elasticsearch.repositories.SnapshotMetrics;
2526
import org.elasticsearch.xcontent.NamedXContentRegistry;
2627

2728
import java.util.Arrays;
@@ -52,7 +53,8 @@ public Map<String, Repository.Factory> getRepositories(
5253
ClusterService clusterService,
5354
BigArrays bigArrays,
5455
RecoverySettings recoverySettings,
55-
RepositoriesMetrics repositoriesMetrics
56+
RepositoriesMetrics repositoriesMetrics,
57+
SnapshotMetrics snapshotMetrics
5658
) {
5759
return Collections.singletonMap(
5860
GoogleCloudStorageRepository.TYPE,
@@ -64,7 +66,8 @@ public Map<String, Repository.Factory> getRepositories(
6466
clusterService,
6567
bigArrays,
6668
recoverySettings,
67-
new GcsRepositoryStatsCollector(clusterService.threadPool(), metadata, repositoriesMetrics)
69+
new GcsRepositoryStatsCollector(clusterService.threadPool(), metadata, repositoriesMetrics),
70+
snapshotMetrics
6871
)
6972
);
7073
}

modules/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageRepository.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@
2121
import org.elasticsearch.common.unit.ByteSizeUnit;
2222
import org.elasticsearch.common.unit.ByteSizeValue;
2323
import org.elasticsearch.common.util.BigArrays;
24+
import org.elasticsearch.core.Nullable;
2425
import org.elasticsearch.core.TimeValue;
2526
import org.elasticsearch.indices.recovery.RecoverySettings;
2627
import org.elasticsearch.repositories.RepositoryException;
28+
import org.elasticsearch.repositories.SnapshotMetrics;
2729
import org.elasticsearch.repositories.blobstore.MeteredBlobStoreRepository;
2830
import org.elasticsearch.xcontent.NamedXContentRegistry;
2931

@@ -89,14 +91,15 @@ class GoogleCloudStorageRepository extends MeteredBlobStoreRepository {
8991
private final GcsRepositoryStatsCollector statsCollector;
9092

9193
GoogleCloudStorageRepository(
92-
final ProjectId projectId,
94+
@Nullable final ProjectId projectId,
9395
final RepositoryMetadata metadata,
9496
final NamedXContentRegistry namedXContentRegistry,
9597
final GoogleCloudStorageService storageService,
9698
final ClusterService clusterService,
9799
final BigArrays bigArrays,
98100
final RecoverySettings recoverySettings,
99-
final GcsRepositoryStatsCollector statsCollector
101+
final GcsRepositoryStatsCollector statsCollector,
102+
final SnapshotMetrics snapshotMetrics
100103
) {
101104
super(
102105
projectId,
@@ -106,7 +109,8 @@ class GoogleCloudStorageRepository extends MeteredBlobStoreRepository {
106109
bigArrays,
107110
recoverySettings,
108111
buildBasePath(metadata),
109-
buildLocation(metadata)
112+
buildLocation(metadata),
113+
snapshotMetrics
110114
);
111115
this.storageService = storageService;
112116
this.chunkSize = getSetting(CHUNK_SIZE, metadata);

modules/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStoragePluginTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.elasticsearch.common.settings.Settings;
1616
import org.elasticsearch.common.util.MockBigArrays;
1717
import org.elasticsearch.indices.recovery.RecoverySettings;
18+
import org.elasticsearch.repositories.SnapshotMetrics;
1819
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
1920
import org.elasticsearch.test.ESTestCase;
2021
import org.elasticsearch.xcontent.NamedXContentRegistry;
@@ -64,7 +65,8 @@ public void testRepositoryProjectId() {
6465
BlobStoreTestUtil.mockClusterService(),
6566
MockBigArrays.NON_RECYCLING_INSTANCE,
6667
new RecoverySettings(Settings.EMPTY, new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS)),
67-
mock(GcsRepositoryStatsCollector.class)
68+
mock(GcsRepositoryStatsCollector.class),
69+
SnapshotMetrics.NOOP
6870
);
6971
assertThat(repository.getProjectId(), equalTo(projectId));
7072
}

modules/repository-s3/qa/third-party/src/test/java/org/elasticsearch/repositories/s3/S3RepositoryThirdPartyTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import org.elasticsearch.plugins.PluginsService;
3535
import org.elasticsearch.repositories.AbstractThirdPartyRepositoryTestCase;
3636
import org.elasticsearch.repositories.RepositoriesService;
37+
import org.elasticsearch.repositories.SnapshotMetrics;
3738
import org.elasticsearch.rest.RestStatus;
3839
import org.elasticsearch.test.ClusterServiceUtils;
3940
import org.elasticsearch.test.fixtures.minio.MinioTestContainer;
@@ -155,7 +156,8 @@ public long absoluteTimeInMillis() {
155156
ClusterServiceUtils.createClusterService(threadpool),
156157
BigArrays.NON_RECYCLING_INSTANCE,
157158
new RecoverySettings(node().settings(), node().injector().getInstance(ClusterService.class).getClusterSettings()),
158-
S3RepositoriesMetrics.NOOP
159+
S3RepositoriesMetrics.NOOP,
160+
SnapshotMetrics.NOOP
159161
)
160162
) {
161163
repository.start();

modules/repository-s3/src/internalClusterTest/java/org/elasticsearch/repositories/s3/S3BlobStoreRepositoryTests.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import org.elasticsearch.repositories.RepositoryData;
5353
import org.elasticsearch.repositories.RepositoryMissingException;
5454
import org.elasticsearch.repositories.RepositoryStats;
55+
import org.elasticsearch.repositories.SnapshotMetrics;
5556
import org.elasticsearch.repositories.blobstore.BlobStoreRepository;
5657
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
5758
import org.elasticsearch.repositories.blobstore.ESMockAPIBasedRepositoryIntegTestCase;
@@ -591,7 +592,8 @@ protected S3Repository createRepository(
591592
ClusterService clusterService,
592593
BigArrays bigArrays,
593594
RecoverySettings recoverySettings,
594-
S3RepositoriesMetrics s3RepositoriesMetrics
595+
S3RepositoriesMetrics s3RepositoriesMetrics,
596+
SnapshotMetrics snapshotMetrics
595597
) {
596598
return new S3Repository(
597599
projectId,
@@ -601,7 +603,8 @@ protected S3Repository createRepository(
601603
clusterService,
602604
bigArrays,
603605
recoverySettings,
604-
s3RepositoriesMetrics
606+
s3RepositoriesMetrics,
607+
snapshotMetrics
605608
) {
606609

607610
@Override

modules/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3Repository.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.elasticsearch.common.unit.ByteSizeValue;
3232
import org.elasticsearch.common.util.BigArrays;
3333
import org.elasticsearch.common.util.concurrent.ListenableFuture;
34+
import org.elasticsearch.core.Nullable;
3435
import org.elasticsearch.core.TimeValue;
3536
import org.elasticsearch.index.IndexVersion;
3637
import org.elasticsearch.index.IndexVersions;
@@ -39,6 +40,7 @@
3940
import org.elasticsearch.repositories.FinalizeSnapshotContext;
4041
import org.elasticsearch.repositories.RepositoryData;
4142
import org.elasticsearch.repositories.RepositoryException;
43+
import org.elasticsearch.repositories.SnapshotMetrics;
4244
import org.elasticsearch.repositories.blobstore.MeteredBlobStoreRepository;
4345
import org.elasticsearch.snapshots.SnapshotId;
4446
import org.elasticsearch.snapshots.SnapshotsService;
@@ -277,14 +279,15 @@ class S3Repository extends MeteredBlobStoreRepository {
277279
* Constructs an s3 backed repository
278280
*/
279281
S3Repository(
280-
final ProjectId projectId,
282+
@Nullable final ProjectId projectId,
281283
final RepositoryMetadata metadata,
282284
final NamedXContentRegistry namedXContentRegistry,
283285
final S3Service service,
284286
final ClusterService clusterService,
285287
final BigArrays bigArrays,
286288
final RecoverySettings recoverySettings,
287-
final S3RepositoriesMetrics s3RepositoriesMetrics
289+
final S3RepositoriesMetrics s3RepositoriesMetrics,
290+
final SnapshotMetrics snapshotMetrics
288291
) {
289292
super(
290293
projectId,
@@ -294,7 +297,8 @@ class S3Repository extends MeteredBlobStoreRepository {
294297
bigArrays,
295298
recoverySettings,
296299
buildBasePath(metadata),
297-
buildLocation(metadata)
300+
buildLocation(metadata),
301+
snapshotMetrics
298302
);
299303
this.service = service;
300304
this.s3RepositoriesMetrics = s3RepositoriesMetrics;

0 commit comments

Comments
 (0)