private void activate()

in src/main/java/org/apache/sling/graphql/core/servlet/GraphQLServlet.java [155:209]


    private void activate(Config config, ComponentContext componentContext) {
        String servicePid = PropertiesUtil.toString(componentContext.getProperties().get(Constants.SERVICE_PID),
                GraphQLServlet.class.getName());
        String[] extensions = config.sling_servlet_extensions();
        StringBuilder extensionsPattern = new StringBuilder();
        for (String extension : extensions) {
            if (extensionsPattern.length() > 0) {
                extensionsPattern.append("|");
            }
            extensionsPattern.append(extension);
        }
        if (extensionsPattern.length() > 0) {
            extensionsPattern.insert(0, "(");
            extensionsPattern.append(")");
        }
        cacheControlMaxAge = config.cache$_$control_max$_$age() >= 0 ? config.cache$_$control_max$_$age() : 0;
        String suffix = config.persistedQueries_suffix();
        if (StringUtils.isNotEmpty(suffix) && suffix.startsWith("/")) {
            suffixPersisted = suffix;
            patternGetPersistedQuery = Pattern.compile("^" + suffixPersisted + "/([a-f0-9]{64})" + (extensionsPattern.length() > 0 ?
                    "\\." + extensionsPattern.toString()  + "$" : "$"));
        } else {
            suffixPersisted = null;
            patternGetPersistedQuery = null;
        }
        StringBuilder sb = new StringBuilder();
        String[] resourceTypes = config.sling_servlet_resourceTypes();
        Arrays.sort(resourceTypes);
        sb.append("rt:").append(String.join("_", resourceTypes));
        if (config.sling_servlet_methods().length > 0) {
            String[] methods = config.sling_servlet_methods();
            Arrays.sort(methods);
            sb.append(".m:").append(String.join("_", methods));
        }
        if (config.sling_servlet_selectors().length > 0) {
            String[] selectors = config.sling_servlet_selectors();
            Arrays.sort(selectors);
            sb.append(".s:").append(String.join("_", selectors));
        }
        if (extensions.length > 0) {
            Arrays.sort(extensions);
            sb.append(".e:").append(String.join("_", extensions));
        }
        String servletRegistrationProperties = sb.toString();
        cacheHits = metricsService.counter(servicePid + "." + servletRegistrationProperties + ".cache_hits");
        cacheMisses = metricsService.counter(servicePid + "." + servletRegistrationProperties + ".cache_misses");
        requestsServed = metricsService.counter(servicePid + "." + servletRegistrationProperties + ".requests_total");
        gaugeCacheHitRate = servicePid + "." + servletRegistrationProperties + ".cache_hit_rate";
        metricRegistry.register(gaugeCacheHitRate, (Gauge<Float>) () -> {
            float hitCount = cacheHits.getCount();
            float missCount = cacheMisses.getCount();
            return hitCount > 0 || missCount > 0 ? hitCount / (hitCount + missCount) : 0.0f;
        });
        requestTimer = metricsService.timer(servicePid + "." + servletRegistrationProperties + ".requests_timer");
    }