mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
(index) Fix broken metrics
This commit is contained in:
parent
858357a246
commit
e9a01caa5c
@ -31,6 +31,7 @@ import nu.marginalia.index.svc.searchset.SmallSearchSet;
|
|||||||
import nu.marginalia.model.gson.GsonFactory;
|
import nu.marginalia.model.gson.GsonFactory;
|
||||||
import nu.marginalia.model.idx.DocumentMetadata;
|
import nu.marginalia.model.idx.DocumentMetadata;
|
||||||
import nu.marginalia.model.idx.WordMetadata;
|
import nu.marginalia.model.idx.WordMetadata;
|
||||||
|
import nu.marginalia.service.module.ServiceConfiguration;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.slf4j.Marker;
|
import org.slf4j.Marker;
|
||||||
@ -56,17 +57,17 @@ public class IndexQueryService extends IndexApiImplBase {
|
|||||||
private static final Counter wmsa_query_timeouts = Counter.build()
|
private static final Counter wmsa_query_timeouts = Counter.build()
|
||||||
.name("wmsa_query_timeouts")
|
.name("wmsa_query_timeouts")
|
||||||
.help("Query timeout counter")
|
.help("Query timeout counter")
|
||||||
.subsystem("index-"+System.getenv("WMSA_SERVICE_NODE"))
|
.labelNames("node")
|
||||||
.register();
|
.register();
|
||||||
private static final Gauge wmsa_query_cost = Gauge.build()
|
private static final Gauge wmsa_query_cost = Gauge.build()
|
||||||
.name("wmsa_query_cost")
|
.name("wmsa_query_cost")
|
||||||
.help("Computational cost of query")
|
.help("Computational cost of query")
|
||||||
.subsystem("index-"+System.getenv("WMSA_SERVICE_NODE"))
|
.labelNames("node")
|
||||||
.register();
|
.register();
|
||||||
private static final Histogram wmsa_query_time = Histogram.build()
|
private static final Histogram wmsa_query_time = Histogram.build()
|
||||||
.name("wmsa_query_time")
|
.name("wmsa_query_time")
|
||||||
.linearBuckets(50., 50., 15)
|
.linearBuckets(50., 50., 15)
|
||||||
.subsystem("index-"+System.getenv("WMSA_SERVICE_NODE"))
|
.labelNames("node")
|
||||||
.help("Index-side query time")
|
.help("Index-side query time")
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
@ -79,16 +80,19 @@ public class IndexQueryService extends IndexApiImplBase {
|
|||||||
|
|
||||||
private final IndexMetadataService metadataService;
|
private final IndexMetadataService metadataService;
|
||||||
private final SearchTermsService searchTermsSvc;
|
private final SearchTermsService searchTermsSvc;
|
||||||
|
private final int nodeId;
|
||||||
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public IndexQueryService(IndexQueryExecutor queryExecutor,
|
public IndexQueryService(IndexQueryExecutor queryExecutor,
|
||||||
|
ServiceConfiguration serviceConfiguration,
|
||||||
SearchIndex index,
|
SearchIndex index,
|
||||||
IndexResultDecorator resultDecorator,
|
IndexResultDecorator resultDecorator,
|
||||||
IndexSearchSetsService searchSetsService,
|
IndexSearchSetsService searchSetsService,
|
||||||
IndexMetadataService metadataService,
|
IndexMetadataService metadataService,
|
||||||
SearchTermsService searchTerms)
|
SearchTermsService searchTerms)
|
||||||
{
|
{
|
||||||
|
this.nodeId = serviceConfiguration.node();
|
||||||
this.queryExecutor = queryExecutor;
|
this.queryExecutor = queryExecutor;
|
||||||
this.index = index;
|
this.index = index;
|
||||||
this.resultDecorator = resultDecorator;
|
this.resultDecorator = resultDecorator;
|
||||||
@ -123,24 +127,32 @@ public class IndexQueryService extends IndexApiImplBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Object search(Request request, Response response) {
|
public Object search(Request request, Response response) {
|
||||||
String json = request.body();
|
final String json = request.body();
|
||||||
SearchSpecification specsSet = gson.fromJson(json, SearchSpecification.class);
|
final SearchSpecification specsSet = gson.fromJson(json, SearchSpecification.class);
|
||||||
|
|
||||||
if (!index.isAvailable()) {
|
if (!index.isAvailable()) {
|
||||||
Spark.halt(503, "Index is not loaded");
|
Spark.halt(503, "Index is not loaded");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String nodeName = Integer.toString(nodeId);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return wmsa_query_time.time(() -> {
|
return wmsa_query_time
|
||||||
|
.labels(nodeName)
|
||||||
|
.time(() -> {
|
||||||
var params = new SearchParameters(specsSet, getSearchSet(specsSet));
|
var params = new SearchParameters(specsSet, getSearchSet(specsSet));
|
||||||
|
|
||||||
SearchResultSet results = executeSearch(params);
|
SearchResultSet results = executeSearch(params);
|
||||||
|
|
||||||
logger.info(queryMarker, "Index Result Count: {}", results.size());
|
logger.info(queryMarker, "Index Result Count: {}", results.size());
|
||||||
|
|
||||||
wmsa_query_cost.set(params.getDataCost());
|
wmsa_query_cost
|
||||||
|
.labels(nodeName)
|
||||||
|
.set(params.getDataCost());
|
||||||
if (!params.hasTimeLeft()) {
|
if (!params.hasTimeLeft()) {
|
||||||
wmsa_query_timeouts.inc();
|
wmsa_query_timeouts
|
||||||
|
.labels(nodeName)
|
||||||
|
.inc();
|
||||||
}
|
}
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
|
Loading…
Reference in New Issue
Block a user