/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.hadoop.gateway.services.metrics.impl; import com.codahale.metrics.MetricRegistry; import org.apache.hadoop.gateway.config.impl.GatewayConfigImpl; import org.apache.hadoop.gateway.services.metrics.InstrumentationProvider; import org.apache.hadoop.gateway.services.metrics.MetricsReporter; import org.apache.http.impl.client.HttpClientBuilder; import org.junit.Assert; import org.junit.Test; import java.util.List; import java.util.Map; public class DefaultMetricsServiceTest { @Test public void lifecycle() throws Exception { DefaultMetricsService service = new DefaultMetricsService(); service.init(new GatewayConfigImpl(), null); Assert.assertNotNull(service.getContext()); Assert.assertNotNull(service.getMetricRegistry()); Assert.assertNotNull(service.getMetricsReporters()); Assert.assertNotNull(service.getInstrumentationProviders()); service.start(); Assert.assertNotNull(service.getContext().getMetricsService()); MetricRegistry metricRegistry = (MetricRegistry) service.getContext().getProperty(DefaultMetricsService.METRICS_REGISTRY); Assert.assertNotNull(metricRegistry); service.stop(); } @Test public void instrumentationProvidersLoading() throws Exception { DefaultMetricsService service = new DefaultMetricsService(); service.init(new GatewayConfigImpl(), null); Map<Class<?>, InstrumentationProvider> map = service.getInstrumentationProviders(); Assert.assertTrue(map.entrySet().size() >= 2); Assert.assertNotNull(service.getInstrumented(HttpClientBuilder.class)); } @Test public void reportersLoading() throws Exception { DefaultMetricsService service = new DefaultMetricsService(); GatewayConfigImpl config = new GatewayConfigImpl(); config.set(GatewayConfigImpl.JMX_METRICS_REPORTING_ENABLED, "false"); service.init(config, null); List<MetricsReporter> reporters = service.getMetricsReporters(); Assert.assertTrue(reporters.size() >= 2); for (MetricsReporter reporter : reporters) { Assert.assertFalse(reporter.isEnabled()); } config.set(GatewayConfigImpl.JMX_METRICS_REPORTING_ENABLED, "true"); config.set(GatewayConfigImpl.GRAPHITE_METRICS_REPORTING_ENABLED, "true"); service.init(config, null); reporters = service.getMetricsReporters(); for (MetricsReporter reporter : reporters) { Assert.assertTrue(reporter.isEnabled()); } service.start(); service.stop(); } }