cugarte commented on code in PR #3568:
URL: https://github.com/apache/solr/pull/3568#discussion_r2317274766
##########
solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java:
##########
@@ -177,66 +189,93 @@ private SolrIndexWriter(
} else {
mergeTotals = false;
}
+ String coreName = core.getCoreDescriptor().getName();
+ var baseAttributesBuilder =
+ Attributes.builder()
+ .put(CATEGORY_ATTR, SolrInfoBean.Category.INDEX.toString())
+ .put(CORE_ATTR, coreName);
+ if (core.getCoreContainer().isZooKeeperAware()) {
+ String collectionName = core.getCoreDescriptor().getCollectionName();
+ baseAttributesBuilder
+ .put(COLLECTION_ATTR, collectionName)
+ .put(SHARD_ATTR,
core.getCoreDescriptor().getCloudDescriptor().getShardId())
+ .put(REPLICA_ATTR, Utils.parseMetricsReplicaName(collectionName,
coreName));
+ }
+ var baseAttributes = baseAttributesBuilder.build();
if (mergeDetails) {
mergeTotals = true; // override
majorMergedDocs =
- solrMetricsContext.meter(
- "docs", SolrInfoBean.Category.INDEX.toString(), "merge",
"major");
+ new AttributedLongCounter(
+ solrMetricsContext.longCounter(
+ "solr_indexriter_major_merged_docs",
+ "Number of documents merged while merging segments above
the majorMergeDocs threshold"),
+ baseAttributes);
majorDeletedDocs =
- solrMetricsContext.meter(
- "deletedDocs", SolrInfoBean.Category.INDEX.toString(),
"merge", "major");
+ new AttributedLongCounter(
+ solrMetricsContext.longCounter(
+ "solr_indexriter_major_deleted_docs",
+ "Number of deleted documents that were expunged while
merging segments above the majorMergeDocs threshold"),
+ baseAttributes);
}
if (mergeTotals) {
minorMerge =
- solrMetricsContext.timer("minor",
SolrInfoBean.Category.INDEX.toString(), "merge");
+ new AttributedLongTimer(
+ solrMetricsContext.longHistogram(
+ "solr_indexwriter_minor_merge",
+ "Time spent merging segments below the majorMergeDocs
threshold",
+ OtelUnit.MILLISECONDS),
+ baseAttributes);
majorMerge =
- solrMetricsContext.timer("major",
SolrInfoBean.Category.INDEX.toString(), "merge");
+ new AttributedLongTimer(
+ solrMetricsContext.longHistogram(
+ "solr_indexwriter_major_merge",
+ "Time spent merging segments above the majorMergeDocs
threshold",
+ OtelUnit.MILLISECONDS),
+ baseAttributes);
mergeErrors =
- solrMetricsContext.counter("errors",
SolrInfoBean.Category.INDEX.toString(), "merge");
+ new AttributedLongCounter(
+ solrMetricsContext.longCounter(
+ "solr_indexwriter_merge_errors",
+ "Number of merge errors"),
+ baseAttributes);
String tag = core.getMetricTag();
- solrMetricsContext.gauge(
- () -> runningMajorMerges.get(),
- true,
- "running",
- SolrInfoBean.Category.INDEX.toString(),
- "merge",
- "major");
- solrMetricsContext.gauge(
- () -> runningMinorMerges.get(),
- true,
- "running",
- SolrInfoBean.Category.INDEX.toString(),
- "merge",
- "minor");
- solrMetricsContext.gauge(
- () -> runningMajorMergesDocs.get(),
- true,
- "running.docs",
- SolrInfoBean.Category.INDEX.toString(),
- "merge",
- "major");
- solrMetricsContext.gauge(
- () -> runningMinorMergesDocs.get(),
- true,
- "running.docs",
- SolrInfoBean.Category.INDEX.toString(),
- "merge",
- "minor");
- solrMetricsContext.gauge(
- () -> runningMajorMergesSegments.get(),
- true,
- "running.segments",
- SolrInfoBean.Category.INDEX.toString(),
- "merge",
- "major");
- solrMetricsContext.gauge(
- () -> runningMinorMergesSegments.get(),
- true,
- "running.segments",
- SolrInfoBean.Category.INDEX.toString(),
- "merge",
- "minor");
- flushMeter = solrMetricsContext.meter("flush",
SolrInfoBean.Category.INDEX.toString());
+ majorMergeStats =
+ solrMetricsContext.observableLongGauge(
+ "solr_indexwriter_major_merge_stats",
+ "Metrics around currently running segment merges above the
majorMergeDocs threshold",
+ (observableLongMeasurement -> {
+ observableLongMeasurement.record(
+ runningMajorMerges.get(),
+ baseAttributes.toBuilder().put(TYPE_ATTR,
"running").build());
+ observableLongMeasurement.record(
+ runningMajorMergesDocs.get(),
+ baseAttributes.toBuilder().put(TYPE_ATTR,
"running_docs").build());
+ observableLongMeasurement.record(
+ runningMajorMergesSegments.get(),
+ baseAttributes.toBuilder().put(TYPE_ATTR,
"running_segments").build());
+ }));
+ minorMergeStats =
+ solrMetricsContext.observableLongGauge(
+ "solr_indexwriter_minor_merge_stats",
+ "Metrics around currently running segment merges below the
majorMergeDocs threshold",
+ (observableLongMeasurement -> {
+ observableLongMeasurement.record(
+ runningMinorMerges.get(),
+ baseAttributes.toBuilder().put(TYPE_ATTR,
"running").build());
+ observableLongMeasurement.record(
+ runningMinorMergesDocs.get(),
+ baseAttributes.toBuilder().put(TYPE_ATTR,
"running_docs").build());
+ observableLongMeasurement.record(
+ runningMinorMergesSegments.get(),
+ baseAttributes.toBuilder().put(TYPE_ATTR,
"running_segments").build());
+ }));
Review Comment:
Updated the initial comment of this PR with the new descriptions.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]