|
8 | 8 | import com.google.common.cache.CacheStats;
|
9 | 9 | import com.google.common.collect.ImmutableMap;
|
10 | 10 | import org.opensearch.knn.common.KNNConstants;
|
11 |
| -import org.opensearch.knn.index.memory.NativeMemoryCacheManager; |
| 11 | +import org.opensearch.knn.common.featureflags.KNNFeatureFlags; |
12 | 12 | import org.opensearch.knn.index.engine.KNNEngine;
|
| 13 | +import org.opensearch.knn.index.memory.NativeMemoryCacheManager; |
13 | 14 | import org.opensearch.knn.indices.ModelCache;
|
14 | 15 | import org.opensearch.knn.indices.ModelDao;
|
15 | 16 | import org.opensearch.knn.plugin.stats.suppliers.EventOccurredWithinThresholdSupplier;
|
@@ -86,6 +87,10 @@ private Map<String, KNNStat<?>> buildStatsMap() {
|
86 | 87 | addScriptStats(builder);
|
87 | 88 | addModelStats(builder);
|
88 | 89 | addGraphStats(builder);
|
| 90 | + if (KNNFeatureFlags.isKNNRemoteVectorBuildEnabled()) |
| 91 | + { |
| 92 | + addRemoteIndexBuildStats(builder); |
| 93 | + } |
89 | 94 | return builder.build();
|
90 | 95 | }
|
91 | 96 |
|
@@ -210,12 +215,51 @@ private Map<String, Map<String, Object>> createGraphStatsMap() {
|
210 | 215 | mergeMap.put(KNNGraphValue.MERGE_TOTAL_TIME_IN_MILLIS.getName(), KNNGraphValue.MERGE_TOTAL_TIME_IN_MILLIS.getValue());
|
211 | 216 | mergeMap.put(KNNGraphValue.MERGE_TOTAL_DOCS.getName(), KNNGraphValue.MERGE_TOTAL_DOCS.getValue());
|
212 | 217 | mergeMap.put(KNNGraphValue.MERGE_TOTAL_SIZE_IN_BYTES.getName(), KNNGraphValue.MERGE_TOTAL_SIZE_IN_BYTES.getValue());
|
| 218 | + if (KNNFeatureFlags.isKNNRemoteVectorBuildEnabled()) |
| 219 | + { |
| 220 | + mergeMap.put(KNNRemoteIndexBuildValue.REMOTE_MERGE_TIME.getName(), KNNRemoteIndexBuildValue.REMOTE_MERGE_TIME.getValue()); |
| 221 | + } |
213 | 222 | Map<String, Object> refreshMap = new HashMap<>();
|
214 | 223 | refreshMap.put(KNNGraphValue.REFRESH_TOTAL_OPERATIONS.getName(), KNNGraphValue.REFRESH_TOTAL_OPERATIONS.getValue());
|
215 | 224 | refreshMap.put(KNNGraphValue.REFRESH_TOTAL_TIME_IN_MILLIS.getName(), KNNGraphValue.REFRESH_TOTAL_TIME_IN_MILLIS.getValue());
|
| 225 | + if (KNNFeatureFlags.isKNNRemoteVectorBuildEnabled()) |
| 226 | + { |
| 227 | + mergeMap.put(KNNRemoteIndexBuildValue.REMOTE_FLUSH_TIME.getName(), KNNRemoteIndexBuildValue.REMOTE_FLUSH_TIME.getValue()); |
| 228 | + } |
216 | 229 | Map<String, Map<String, Object>> graphStatsMap = new HashMap<>();
|
217 | 230 | graphStatsMap.put(StatNames.MERGE.getName(), mergeMap);
|
218 | 231 | graphStatsMap.put(StatNames.REFRESH.getName(), refreshMap);
|
219 | 232 | return graphStatsMap;
|
220 | 233 | }
|
| 234 | + |
| 235 | + |
| 236 | + private void addRemoteIndexBuildStats(ImmutableMap.Builder<String, KNNStat<?>> builder) { |
| 237 | + builder.put(StatNames.REMOTE_VECTOR_INDEX_BUILD_STATS.getName(), new KNNStat<>(false, this::createRemoteIndexStatsMap)); |
| 238 | + } |
| 239 | + |
| 240 | + private Map<String, Map<String, Object>> createRemoteIndexStatsMap() { |
| 241 | + Map<String, Object> clientStatsMap = new HashMap<>(); |
| 242 | + clientStatsMap.put(KNNRemoteIndexBuildValue.BUILD_REQUEST_SUCCESS_COUNT.getName(), KNNRemoteIndexBuildValue.BUILD_REQUEST_SUCCESS_COUNT.getValue()); |
| 243 | + clientStatsMap.put(KNNRemoteIndexBuildValue.BUILD_REQUEST_FAILURE_COUNT.getName(), KNNRemoteIndexBuildValue.BUILD_REQUEST_FAILURE_COUNT.getValue()); |
| 244 | + clientStatsMap.put(KNNRemoteIndexBuildValue.STATUS_REQUEST_SUCCESS_COUNT.getName(), KNNRemoteIndexBuildValue.STATUS_REQUEST_SUCCESS_COUNT.getValue()); |
| 245 | + clientStatsMap.put(KNNRemoteIndexBuildValue.STATUS_REQUEST_FAILURE_COUNT.getName(), KNNRemoteIndexBuildValue.STATUS_REQUEST_FAILURE_COUNT.getValue()); |
| 246 | + clientStatsMap.put(KNNRemoteIndexBuildValue.INDEX_BUILD_SUCCESS_COUNT.getName(), KNNRemoteIndexBuildValue.INDEX_BUILD_SUCCESS_COUNT.getValue()); |
| 247 | + clientStatsMap.put(KNNRemoteIndexBuildValue.INDEX_BUILD_FAILURE_COUNT.getName(), KNNRemoteIndexBuildValue.INDEX_BUILD_FAILURE_COUNT.getValue()); |
| 248 | + |
| 249 | + Map<String, Object> repoStatsMap = new HashMap<>(); |
| 250 | + repoStatsMap.put(KNNRemoteIndexBuildValue.WRITE_SUCCESS_COUNT.getName(), KNNRemoteIndexBuildValue.WRITE_SUCCESS_COUNT.getValue()); |
| 251 | + repoStatsMap.put(KNNRemoteIndexBuildValue.WRITE_FAILURE_COUNT.getName(), KNNRemoteIndexBuildValue.WRITE_FAILURE_COUNT.getValue()); |
| 252 | + repoStatsMap.put(KNNRemoteIndexBuildValue.WRITE_SIZE.getName(), KNNRemoteIndexBuildValue.WRITE_SIZE.getValue()); |
| 253 | + repoStatsMap.put(KNNRemoteIndexBuildValue.WRITE_TIME.getName(), KNNRemoteIndexBuildValue.WRITE_TIME.getValue()); |
| 254 | + repoStatsMap.put(KNNRemoteIndexBuildValue.READ_SUCCESS_COUNT.getName(), KNNRemoteIndexBuildValue.READ_SUCCESS_COUNT.getValue()); |
| 255 | + repoStatsMap.put(KNNRemoteIndexBuildValue.READ_FAILURE_COUNT.getName(), KNNRemoteIndexBuildValue.READ_FAILURE_COUNT.getValue()); |
| 256 | + repoStatsMap.put(KNNRemoteIndexBuildValue.READ_SIZE.getName(), KNNRemoteIndexBuildValue.READ_SIZE.getValue()); |
| 257 | + repoStatsMap.put(KNNRemoteIndexBuildValue.READ_TIME.getName(), KNNRemoteIndexBuildValue.READ_TIME.getValue()); |
| 258 | + |
| 259 | + Map<String, Map<String, Object>> remoteIndexBuildStatsMap = new HashMap<>(); |
| 260 | + remoteIndexBuildStatsMap.put(StatNames.REMOTE_INDEX_BUILD_SERVICE_STATS.getName(), clientStatsMap); |
| 261 | + remoteIndexBuildStatsMap.put(StatNames.REPOSITORY_STATS.getName(), repoStatsMap); |
| 262 | + |
| 263 | + return remoteIndexBuildStatsMap; |
| 264 | + } |
221 | 265 | }
|
0 commit comments