Search in sources :

Example 1 with NrtQueryCache

use of com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache in project nrtsearch by Yelp.

the class QueryCacheCollector method collect.

@Override
public List<MetricFamilySamples> collect() {
    QueryCache queryCache = IndexSearcher.getDefaultQueryCache();
    if (!(queryCache instanceof NrtQueryCache)) {
        return Collections.emptyList();
    }
    NrtQueryCache nrtQueryCache = (NrtQueryCache) queryCache;
    List<MetricFamilySamples> mfs = new ArrayList<>();
    mfs.add(new GaugeMetricFamily("nrt_query_cache_hits", "Total number of query cache hits.", nrtQueryCache.getHitCount()));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_misses", "Total number of query cache misses.", nrtQueryCache.getMissCount()));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_size", "Total number of entries in query cache.", nrtQueryCache.getCacheSize()));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_size_bytes", "Total memory used by query cache.", nrtQueryCache.ramBytesUsed()));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_count", "Total number of entries added to the query cache.", nrtQueryCache.getCacheCount()));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_eviction_count", "Total number of query cache evictions.", nrtQueryCache.getEvictionCount()));
    long cacheQueryCount = nrtQueryCache.getCacheQueryCount();
    long cacheQuerySize = nrtQueryCache.getCacheQuerySize();
    mfs.add(new GaugeMetricFamily("nrt_query_cache_query_size", "Total number of queries in query cache.", cacheQuerySize));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_query_count", "Total number of queries added to the query cache.", cacheQueryCount));
    mfs.add(new GaugeMetricFamily("nrt_query_cache_query_eviction_count", "Total number of query cache query evictions.", (cacheQueryCount - cacheQuerySize)));
    return mfs;
}
Also used : NrtQueryCache(com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache) QueryCache(org.apache.lucene.search.QueryCache) ArrayList(java.util.ArrayList) NrtQueryCache(com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache) GaugeMetricFamily(io.prometheus.client.GaugeMetricFamily)

Example 2 with NrtQueryCache

use of com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache in project nrtsearch by Yelp.

the class LuceneServerTest method testQueryCache.

@Test
public void testQueryCache() {
    QueryCache queryCache = IndexSearcher.getDefaultQueryCache();
    assertTrue(queryCache instanceof NrtQueryCache);
    String configStr = String.join("\n", "queryCache:", "  enabled: false");
    LuceneServerConfiguration configuration = new LuceneServerConfiguration(new ByteArrayInputStream(configStr.getBytes()));
    LuceneServerImpl.initQueryCache(configuration);
    assertNull(IndexSearcher.getDefaultQueryCache());
    configStr = String.join("\n", "queryCache:", "  enabled: true");
    configuration = new LuceneServerConfiguration(new ByteArrayInputStream(configStr.getBytes()));
    LuceneServerImpl.initQueryCache(configuration);
    queryCache = IndexSearcher.getDefaultQueryCache();
    assertTrue(queryCache instanceof NrtQueryCache);
}
Also used : QueryCache(org.apache.lucene.search.QueryCache) NrtQueryCache(com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache) LuceneServerConfiguration(com.yelp.nrtsearch.server.config.LuceneServerConfiguration) ByteArrayInputStream(java.io.ByteArrayInputStream) NrtQueryCache(com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache) Test(org.junit.Test)

Aggregations

NrtQueryCache (com.yelp.nrtsearch.server.luceneserver.search.cache.NrtQueryCache)2 QueryCache (org.apache.lucene.search.QueryCache)2 LuceneServerConfiguration (com.yelp.nrtsearch.server.config.LuceneServerConfiguration)1 GaugeMetricFamily (io.prometheus.client.GaugeMetricFamily)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 ArrayList (java.util.ArrayList)1 Test (org.junit.Test)1