package org.rapidoid.goodies; import org.rapidoid.RapidoidThing; import org.rapidoid.annotation.Authors; import org.rapidoid.annotation.Since; import java.lang.management.ManagementFactory; /* * #%L * rapidoid-web * %% * Copyright (C) 2014 - 2017 Nikolche Mihajlovski and contributors * %% * Licensed 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * 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. * #L% */ @Authors("Nikolche Mihajlovski") @Since("5.3.0") public class JMXGoodies extends RapidoidThing { public MultiDetailsHandler memoryPool() { return new MultiDetailsHandler("Memory pool", ManagementFactory.getMemoryPoolMXBeans(), "name", "type", "memoryManagerNames", "usage", "peakUsage", "collectionUsage"); } public DetailsHandler classes() { return new DetailsHandler("Classes", ManagementFactory.getClassLoadingMXBean(), "-objectName"); } public DetailsHandler os() { return new DetailsHandler("Operating system", ManagementFactory.getOperatingSystemMXBean(), "-objectName"); } public DetailsHandler threads() { return new DetailsHandler("JVM Threads", ManagementFactory.getThreadMXBean(), "-objectName", "-allThreadIds").sorted(true); } public DetailsHandler compilation() { return new DetailsHandler("Compilation", ManagementFactory.getCompilationMXBean(), "-objectName"); } public DetailsHandler runtime() { return new DetailsHandler("Runtime", ManagementFactory.getRuntimeMXBean(), "-objectName", "-classPath", "-bootClassPath", "-systemProperties"); } public MultiDetailsHandler gc() { return new MultiDetailsHandler("Garbage collection", ManagementFactory.getGarbageCollectorMXBeans(), "-objectName", "-memoryPools", "-lastGcInfo"); } public DetailsHandler memory() { return new DetailsHandler("Memory", ManagementFactory.getMemoryMXBean(), "-objectName").sorted(true); } }