Skip to content

Track more snapshot-releated node-level stats #130301

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 80 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 74 commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
e7794c1
Track snapshot stats as metrics
nicktindall Jun 30, 2025
b8be99e
Fix double counted snapshot completion
nicktindall Jun 30, 2025
9eeee30
Reduce size of change
nicktindall Jun 30, 2025
67eb753
Add MeterRegistry param in callers
nicktindall Jun 30, 2025
faf4e7a
Make banned implementation final
nicktindall Jun 30, 2025
5a33bb6
Improve javadoc
nicktindall Jun 30, 2025
b4c926f
Fix naming
nicktindall Jun 30, 2025
d808b85
Fix naming, record shard duration as histogram
nicktindall Jun 30, 2025
fd55b35
Millis -> nanos
nicktindall Jun 30, 2025
ffdb941
Reuse totalTime
nicktindall Jun 30, 2025
6e22dc6
Don't use cached time
DaveCTurner May 15, 2025
818c259
Fist pass on tests
nicktindall Jul 1, 2025
b929cd1
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 1, 2025
9ba0d4a
Fix SnapshotMetricsIT
nicktindall Jul 1, 2025
45909db
Naming
nicktindall Jul 1, 2025
f42f9bd
Assert on throttling metrics
nicktindall Jul 2, 2025
ef19cd5
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 2, 2025
adc149a
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 3, 2025
345cc59
Add snapshot APM metrics
nicktindall Jul 3, 2025
b341645
Add snapshot metrics
nicktindall Jul 3, 2025
3894be6
Tidy
nicktindall Jul 3, 2025
d164c8c
Tidy
nicktindall Jul 3, 2025
b8cc9f9
Tidy
nicktindall Jul 3, 2025
7f7427c
Reduce surface area of change (?)
nicktindall Jul 3, 2025
3aa7ca6
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 3, 2025
e2665d1
URLRepository
nicktindall Jul 3, 2025
23e5ca8
HfdsRepository
nicktindall Jul 3, 2025
9a0e0ec
Tidy
nicktindall Jul 3, 2025
3ba5832
Publish new stats via node stats
nicktindall Jul 3, 2025
1c5bc3c
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 3, 2025
3bd6084
Test for presence of additional status in node stats payload
nicktindall Jul 4, 2025
962a540
Merge branch 'main' into ES-12055_track_snapshot_stats_as_metrics
nicktindall Jul 4, 2025
f5efcee
Handle null project ID
nicktindall Jul 4, 2025
08af79d
Merge remote-tracking branch 'nt-elastic/ES-12055_track_snapshot_stat…
nicktindall Jul 4, 2025
d05eb17
Add Nullable annotations to the projectId parameter
nicktindall Jul 4, 2025
0a19687
Populate attributes consistently, add shard stage and snapshot state
nicktindall Jul 7, 2025
85a98fc
Remove redundant snapshot prefix in metric fields
nicktindall Jul 7, 2025
50eb8ad
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 7, 2025
ac2a2a3
Don't track stats when project ID is null
nicktindall Jul 7, 2025
c04e9ed
Rename repositoryThrottlingStats -> repositorySnapshotStats
nicktindall Jul 7, 2025
94b2df5
Only the current master reports snapshots in progress
nicktindall Jul 7, 2025
44510fa
Increment uploaded blobs metric before verify
nicktindall Jul 7, 2025
efbc43d
Add counts for shards in movement blocking states
nicktindall Jul 7, 2025
63b09de
Add tests for shards by state counts
nicktindall Jul 8, 2025
43db5fa
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 8, 2025
ca0a3c9
Add test for WAITING state
nicktindall Jul 8, 2025
9115b18
Refine description of tracked snapshot states
nicktindall Jul 8, 2025
cddf3b3
Tidy
nicktindall Jul 8, 2025
03e9d81
Use humanReadableField
nicktindall Jul 8, 2025
c4a0d67
Better names for uploaded size/blobs
nicktindall Jul 8, 2025
3f8762d
Assert common attributes for shards-by-status metrics
nicktindall Jul 8, 2025
46f892a
Reduce number of documents indexed
nicktindall Jul 8, 2025
8bf2475
Use millis rather than nanos when measuring/counting upload/read time
nicktindall Jul 8, 2025
02d11fd
Write throttle time as nanos (can't use humanReadableField because it…
nicktindall Jul 8, 2025
4a8fb9d
Include unit in IndexShardSnapshotStatus#(startTime|totalTime)
nicktindall Jul 8, 2025
e344693
Use VLong to encode extended fields, zero for BWC
nicktindall Jul 8, 2025
ff82158
Remove default getShardSnapshotsInProgress
nicktindall Jul 8, 2025
0d9a62d
Remove default Repository#getSnapshotStats(), Repository#getSnapshotT…
nicktindall Jul 8, 2025
b665a49
Tidy up close listener creation
nicktindall Jul 8, 2025
7d9b36d
Explain why we use seconds for duration histograms
nicktindall Jul 8, 2025
e9f32a0
Track all snapshot shard statuses
nicktindall Jul 8, 2025
ba62ff6
Use com.carrotsearch.hppc.ObjectIntMap.addTo
nicktindall Jul 8, 2025
e90ff65
Pre-calculate shard & snapshot state summaries in cluster state
nicktindall Jul 9, 2025
2ef402e
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 9, 2025
6c5d200
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 9, 2025
a43ac7e
Don't try and get shards for clone entry
nicktindall Jul 10, 2025
093ae22
Add snapshots by state metric
nicktindall Jul 10, 2025
81ce452
Merge branch 'main' into ES-12055_track_snapshot_stats_as_metrics
nicktindall Jul 10, 2025
f509643
Remove remnants of limited state tracking
nicktindall Jul 10, 2025
3ac413c
Remove redundant snapshots in progress metric
nicktindall Jul 10, 2025
1dec741
Populate and assert on all snapshotStats fields
nicktindall Jul 10, 2025
850c116
Fix flakiness in RepositorySnapshotStatsIT, remove dead code
nicktindall Jul 10, 2025
6dd44f1
Merge branch 'main' into ES-12055_track_snapshot_stats_as_metrics
nicktindall Jul 10, 2025
ca9d1ab
Fix assertion
nicktindall Jul 10, 2025
4f76e4a
Merge remote-tracking branch 'origin/main' into ES-12055_track_snapsh…
nicktindall Jul 15, 2025
87864ec
Calculate snapshot stats on metrics thread and only when stale
nicktindall Jul 16, 2025
7feb852
Merge branch 'main' into ES-12055_track_snapshot_stats_as_metrics
nicktindall Jul 16, 2025
9bea854
Align toString with field names, add units to IndexShardSnapshotStatu…
nicktindall Jul 16, 2025
74c3427
Only recalculate stats if SnapshotsInProgress changed
nicktindall Jul 16, 2025
346c15f
Tidy up, naming
nicktindall Jul 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@
import org.elasticsearch.common.unit.ByteSizeUnit;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.core.Nullable;
import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.MeteredBlobStoreRepository;
import org.elasticsearch.xcontent.NamedXContentRegistry;

Expand Down Expand Up @@ -111,14 +113,15 @@ public static final class Repository {
private final RepositoriesMetrics repositoriesMetrics;

public AzureRepository(
final ProjectId projectId,
@Nullable final ProjectId projectId,
final RepositoryMetadata metadata,
final NamedXContentRegistry namedXContentRegistry,
final AzureStorageService storageService,
final ClusterService clusterService,
final BigArrays bigArrays,
final RecoverySettings recoverySettings,
final RepositoriesMetrics repositoriesMetrics
final RepositoriesMetrics repositoriesMetrics,
final SnapshotMetrics snapshotMetrics
) {
super(
projectId,
Expand All @@ -128,7 +131,8 @@ public AzureRepository(
bigArrays,
recoverySettings,
buildBasePath(metadata),
buildLocation(metadata)
buildLocation(metadata),
snapshotMetrics
);
this.chunkSize = Repository.CHUNK_SIZE_SETTING.get(metadata.settings());
this.storageService = storageService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.elasticsearch.plugins.RepositoryPlugin;
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.Repository;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.threadpool.ExecutorBuilder;
import org.elasticsearch.threadpool.ScalingExecutorBuilder;
import org.elasticsearch.threadpool.ThreadPool;
Expand Down Expand Up @@ -60,7 +61,8 @@ public Map<String, Repository.Factory> getRepositories(
ClusterService clusterService,
BigArrays bigArrays,
RecoverySettings recoverySettings,
RepositoriesMetrics repositoriesMetrics
RepositoriesMetrics repositoriesMetrics,
SnapshotMetrics snapshotMetrics
) {
return Collections.singletonMap(AzureRepository.TYPE, (projectId, metadata) -> {
AzureStorageService storageService = azureStoreService.get();
Expand All @@ -73,7 +75,8 @@ public Map<String, Repository.Factory> getRepositories(
clusterService,
bigArrays,
recoverySettings,
repositoriesMetrics
repositoriesMetrics,
snapshotMetrics
);
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.elasticsearch.env.Environment;
import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
import org.elasticsearch.test.ESTestCase;
import org.elasticsearch.xcontent.NamedXContentRegistry;
Expand Down Expand Up @@ -46,7 +47,8 @@ private AzureRepository azureRepository(Settings settings) {
BlobStoreTestUtil.mockClusterService(),
MockBigArrays.NON_RECYCLING_INSTANCE,
new RecoverySettings(settings, new ClusterSettings(settings, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS)),
RepositoriesMetrics.NOOP
RepositoriesMetrics.NOOP,
SnapshotMetrics.NOOP
);
assertThat(azureRepository.getProjectId(), equalTo(projectId));
assertThat(azureRepository.getBlobStore(), is(nullValue()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.RepositoriesService;
import org.elasticsearch.repositories.Repository;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.BlobStoreRepository;
import org.elasticsearch.repositories.blobstore.ESMockAPIBasedRepositoryIntegTestCase;
import org.elasticsearch.xcontent.NamedXContentRegistry;
Expand Down Expand Up @@ -272,7 +273,8 @@ public Map<String, Repository.Factory> getRepositories(
ClusterService clusterService,
BigArrays bigArrays,
RecoverySettings recoverySettings,
RepositoriesMetrics repositoriesMetrics
RepositoriesMetrics repositoriesMetrics,
SnapshotMetrics snapshotMetrics
) {
return Collections.singletonMap(
GoogleCloudStorageRepository.TYPE,
Expand All @@ -284,7 +286,8 @@ public Map<String, Repository.Factory> getRepositories(
clusterService,
bigArrays,
recoverySettings,
new GcsRepositoryStatsCollector()
new GcsRepositoryStatsCollector(),
snapshotMetrics
) {
@Override
protected GoogleCloudStorageBlobStore createBlobStore() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import org.elasticsearch.plugins.RepositoryPlugin;
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.Repository;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.xcontent.NamedXContentRegistry;

import java.util.Arrays;
Expand Down Expand Up @@ -53,7 +54,8 @@ public Map<String, Repository.Factory> getRepositories(
ClusterService clusterService,
BigArrays bigArrays,
RecoverySettings recoverySettings,
RepositoriesMetrics repositoriesMetrics
RepositoriesMetrics repositoriesMetrics,
SnapshotMetrics snapshotMetrics
) {
return Collections.singletonMap(
GoogleCloudStorageRepository.TYPE,
Expand All @@ -65,7 +67,8 @@ public Map<String, Repository.Factory> getRepositories(
clusterService,
bigArrays,
recoverySettings,
new GcsRepositoryStatsCollector(clusterService.threadPool(), metadata, repositoriesMetrics)
new GcsRepositoryStatsCollector(clusterService.threadPool(), metadata, repositoriesMetrics),
snapshotMetrics
)
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@
import org.elasticsearch.common.unit.ByteSizeUnit;
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.core.Nullable;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.repositories.RepositoryException;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.MeteredBlobStoreRepository;
import org.elasticsearch.xcontent.NamedXContentRegistry;

Expand Down Expand Up @@ -89,14 +91,15 @@ class GoogleCloudStorageRepository extends MeteredBlobStoreRepository {
private final GcsRepositoryStatsCollector statsCollector;

GoogleCloudStorageRepository(
final ProjectId projectId,
@Nullable final ProjectId projectId,
final RepositoryMetadata metadata,
final NamedXContentRegistry namedXContentRegistry,
final GoogleCloudStorageService storageService,
final ClusterService clusterService,
final BigArrays bigArrays,
final RecoverySettings recoverySettings,
final GcsRepositoryStatsCollector statsCollector
final GcsRepositoryStatsCollector statsCollector,
final SnapshotMetrics snapshotMetrics
) {
super(
projectId,
Expand All @@ -106,7 +109,8 @@ class GoogleCloudStorageRepository extends MeteredBlobStoreRepository {
bigArrays,
recoverySettings,
buildBasePath(metadata),
buildLocation(metadata)
buildLocation(metadata),
snapshotMetrics
);
this.storageService = storageService;
this.chunkSize = getSetting(CHUNK_SIZE, metadata);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.util.MockBigArrays;
import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
import org.elasticsearch.test.ESTestCase;
import org.elasticsearch.xcontent.NamedXContentRegistry;
Expand Down Expand Up @@ -64,7 +65,8 @@ public void testRepositoryProjectId() {
BlobStoreTestUtil.mockClusterService(),
MockBigArrays.NON_RECYCLING_INSTANCE,
new RecoverySettings(Settings.EMPTY, new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS)),
mock(GcsRepositoryStatsCollector.class)
mock(GcsRepositoryStatsCollector.class),
SnapshotMetrics.NOOP
);
assertThat(repository.getProjectId(), equalTo(projectId));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import org.elasticsearch.plugins.PluginsService;
import org.elasticsearch.repositories.AbstractThirdPartyRepositoryTestCase;
import org.elasticsearch.repositories.RepositoriesService;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.rest.RestStatus;
import org.elasticsearch.test.ClusterServiceUtils;
import org.elasticsearch.test.fixtures.minio.MinioTestContainer;
Expand Down Expand Up @@ -155,7 +156,8 @@ public long absoluteTimeInMillis() {
ClusterServiceUtils.createClusterService(threadpool),
BigArrays.NON_RECYCLING_INSTANCE,
new RecoverySettings(node().settings(), node().injector().getInstance(ClusterService.class).getClusterSettings()),
S3RepositoriesMetrics.NOOP
S3RepositoriesMetrics.NOOP,
SnapshotMetrics.NOOP
)
) {
repository.start();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
import org.elasticsearch.repositories.RepositoryData;
import org.elasticsearch.repositories.RepositoryMissingException;
import org.elasticsearch.repositories.RepositoryStats;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.BlobStoreRepository;
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
import org.elasticsearch.repositories.blobstore.ESMockAPIBasedRepositoryIntegTestCase;
Expand Down Expand Up @@ -591,7 +592,8 @@ protected S3Repository createRepository(
ClusterService clusterService,
BigArrays bigArrays,
RecoverySettings recoverySettings,
S3RepositoriesMetrics s3RepositoriesMetrics
S3RepositoriesMetrics s3RepositoriesMetrics,
SnapshotMetrics snapshotMetrics
) {
return new S3Repository(
projectId,
Expand All @@ -601,7 +603,8 @@ protected S3Repository createRepository(
clusterService,
bigArrays,
recoverySettings,
s3RepositoriesMetrics
s3RepositoriesMetrics,
snapshotMetrics
) {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.elasticsearch.common.unit.ByteSizeValue;
import org.elasticsearch.common.util.BigArrays;
import org.elasticsearch.common.util.concurrent.ListenableFuture;
import org.elasticsearch.core.Nullable;
import org.elasticsearch.core.TimeValue;
import org.elasticsearch.index.IndexVersion;
import org.elasticsearch.index.IndexVersions;
Expand All @@ -39,6 +40,7 @@
import org.elasticsearch.repositories.FinalizeSnapshotContext;
import org.elasticsearch.repositories.RepositoryData;
import org.elasticsearch.repositories.RepositoryException;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.MeteredBlobStoreRepository;
import org.elasticsearch.snapshots.SnapshotId;
import org.elasticsearch.snapshots.SnapshotsService;
Expand Down Expand Up @@ -276,14 +278,15 @@ class S3Repository extends MeteredBlobStoreRepository {
* Constructs an s3 backed repository
*/
S3Repository(
final ProjectId projectId,
@Nullable final ProjectId projectId,
final RepositoryMetadata metadata,
final NamedXContentRegistry namedXContentRegistry,
final S3Service service,
final ClusterService clusterService,
final BigArrays bigArrays,
final RecoverySettings recoverySettings,
final S3RepositoriesMetrics s3RepositoriesMetrics
final S3RepositoriesMetrics s3RepositoriesMetrics,
final SnapshotMetrics snapshotMetrics
) {
super(
projectId,
Expand All @@ -293,7 +296,8 @@ class S3Repository extends MeteredBlobStoreRepository {
bigArrays,
recoverySettings,
buildBasePath(metadata),
buildLocation(metadata)
buildLocation(metadata),
snapshotMetrics
);
this.service = service;
this.s3RepositoriesMetrics = s3RepositoriesMetrics;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import org.elasticsearch.plugins.RepositoryPlugin;
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.Repository;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.watcher.ResourceWatcherService;
import org.elasticsearch.xcontent.NamedXContentRegistry;

Expand Down Expand Up @@ -65,7 +66,8 @@ protected S3Repository createRepository(
final ClusterService clusterService,
final BigArrays bigArrays,
final RecoverySettings recoverySettings,
final S3RepositoriesMetrics s3RepositoriesMetrics
final S3RepositoriesMetrics s3RepositoriesMetrics,
final SnapshotMetrics snapshotMetrics
) {
return new S3Repository(
projectId,
Expand All @@ -75,7 +77,8 @@ protected S3Repository createRepository(
clusterService,
bigArrays,
recoverySettings,
s3RepositoriesMetrics
s3RepositoriesMetrics,
snapshotMetrics
);
}

Expand Down Expand Up @@ -113,7 +116,8 @@ public Map<String, Repository.Factory> getRepositories(
final ClusterService clusterService,
final BigArrays bigArrays,
final RecoverySettings recoverySettings,
final RepositoriesMetrics repositoriesMetrics
final RepositoriesMetrics repositoriesMetrics,
final SnapshotMetrics snapshotMetrics
) {
final S3RepositoriesMetrics s3RepositoriesMetrics = new S3RepositoriesMetrics(repositoriesMetrics);
return Collections.singletonMap(
Expand All @@ -125,7 +129,8 @@ public Map<String, Repository.Factory> getRepositories(
clusterService,
bigArrays,
recoverySettings,
s3RepositoriesMetrics
s3RepositoriesMetrics,
snapshotMetrics
)
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import org.elasticsearch.env.Environment;
import org.elasticsearch.indices.recovery.RecoverySettings;
import org.elasticsearch.repositories.RepositoryException;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.blobstore.BlobStoreTestUtil;
import org.elasticsearch.test.ClusterServiceUtils;
import org.elasticsearch.test.ESTestCase;
Expand Down Expand Up @@ -178,7 +179,8 @@ private S3Repository createS3Repo(RepositoryMetadata metadata) {
BlobStoreTestUtil.mockClusterService(),
MockBigArrays.NON_RECYCLING_INSTANCE,
new RecoverySettings(Settings.EMPTY, new ClusterSettings(Settings.EMPTY, ClusterSettings.BUILT_IN_CLUSTER_SETTINGS)),
S3RepositoriesMetrics.NOOP
S3RepositoriesMetrics.NOOP,
SnapshotMetrics.NOOP
);
assertThat(s3Repository.getProjectId(), equalTo(ProjectId.DEFAULT));
return s3Repository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.elasticsearch.plugins.RepositoryPlugin;
import org.elasticsearch.repositories.RepositoriesMetrics;
import org.elasticsearch.repositories.Repository;
import org.elasticsearch.repositories.SnapshotMetrics;
import org.elasticsearch.repositories.url.URLRepository;
import org.elasticsearch.xcontent.NamedXContentRegistry;

Expand Down Expand Up @@ -49,7 +50,8 @@ public Map<String, Repository.Factory> getRepositories(
ClusterService clusterService,
BigArrays bigArrays,
RecoverySettings recoverySettings,
RepositoriesMetrics repositoriesMetrics
RepositoriesMetrics repositoriesMetrics,
SnapshotMetrics snapshotMetrics
) {
return Collections.singletonMap(
URLRepository.TYPE,
Expand All @@ -61,7 +63,8 @@ public Map<String, Repository.Factory> getRepositories(
clusterService,
bigArrays,
recoverySettings,
httpClientFactory.updateAndGet(factory -> factory == null ? new URLHttpClient.Factory() : factory)
httpClientFactory.updateAndGet(factory -> factory == null ? new URLHttpClient.Factory() : factory),
snapshotMetrics
)
);
}
Expand Down
Loading