io.logspace.jvm.agent.JvmEventBuilder Maven / Gradle / Ivy
The newest version!
/**
* Logspace
* Copyright (c) 2015 Indoqa Software Design und Beratung GmbH. All rights reserved.
* This program and the accompanying materials are made available under the terms of
* the Eclipse Public License Version 1.0, which accompanies this distribution and
* is available at http://www.eclipse.org/legal/epl-v10.html.
*/
package io.logspace.jvm.agent;
import io.logspace.jvm.agent.api.event.AbstractEventBuilder;
import io.logspace.jvm.agent.api.event.EventBuilderData;
public final class JvmEventBuilder extends AbstractEventBuilder {
public static final String PROPERTY_JVM_IDENTIFIER = "jvm-identifier";
public static final String PROPERTY_INITIAL_HEAP_MEMORY = "initial_heap_memory";
public static final String PROPERTY_MAX_HEAP_MEMORY = "max_heap_memory";
public static final String PROPERTY_USED_HEAP_MEMORY = "used_heap_memory";
public static final String PROPERTY_COMMITTED_HEAP_MEMORY = "committed_heap_memory";
public static final String PROPERTY_INITIAL_NON_HEAP_MEMORY = "initial_non_heap_memory";
public static final String PROPERTY_MAX_NON_HEAP_MEMORY = "max_non_heap_memory";
public static final String PROPERTY_USED_NON_HEAP_MEMORY = "used_non_heap_memory";
public static final String PROPERTY_COMMITTED_NON_HEAP_MEMORY = "committed_non_heap_memory";
public static final String PROPERTY_OBJECT_PENDING_FINALIZATION_COUNT = "object_pending_finalization_count";
public static final String PROPERTY_LOADED_CLASS_COUNT = "loaded_class_count";
public static final String PROPERTY_TOTAL_LOADED_CLASS_COUNT = "total_loaded_class_count";
public static final String PROPERTY_UNLOADED_CLASS_COUNT = "unloaded_class_count";
public static final String PROPERTY_THREAD_COUNT = "thread_count";
public static final String PROPERTY_DAEMON_THREAD_COUNT = "daemon_thread_count";
public static final String PROPERTY_GARBAGE_COLLECTOR_RUN_COUNT = "garbagecollector_run_count";
public static final String PROPERTY_GARBAGE_COLLECTOR_TIME = "garbagecollector_time";
public static final String PROPERTY_OPEN_FILE_DESCRIPTOR_COUNT = "open_file_descriptor_count";
public static final String PROPERTY_MAX_FILE_DESCRIPTOR_COUNT = "max_file_descriptor_count";
public static final String PROPERTY_PROCESS_CPU_LOAD = "process_cpu_load";
public static final String PROPERTY_PROCESS_CPU_TIME = "process_cpu_time";
public static final String PROPERTY_AVAILABLE_PROCESSORS = "available_processors";
public static final String PROPERTY_CPU_ENDIAN = "cpu_endian";
private static final String JVM_EVENT_TYPE = "jvm/statistics";
private static final String JVM_START_EVENT_TYPE = "jvm/start";
private static final String JVM_STOP_EVENT_TYPE = "jvm/stop";
private static final String JVM_AGENT_ATTACHED_EVENT_TYPE = "jvm/agent-attached";
private static final String PROPERTY_JAVA_RUNTIME_NAME = "java_runtime_name";
private static final String PROPERTY_JAVA_RUNTIME_VERSION = "java_runtime_version";
private static final String PROPERTY_JVM_INFO = "jvm_info";
private static final String PROPERTY_JVM_NAME = "jvm_name";
private static final String PROPERTY_JVM_VENDOR = "jvm_vendor";
private static final String PROPERTY_JVM_VERSION = "jvm_version";
private static final String PROPERTY_OS_ARCHITECTURE = "os_architecture";
private static final String PROPERTY_OS_NAME = "os_name";
private static final String PROPERTY_OS_VERSION = "os_version";
private static final String PROPERTY_USER_COUNTRY = "user_country";
private static final String PROPERTY_USER_DIRECTORY = "user_directory";
private static final String PROPERTY_USER_HOME = "user_home";
private static final String PROPERTY_USER_LANGUAGE = "user_langugage";
private static final String PROPERTY_USER_NAME = "user_name";
private static final String PROPERTY_USER_TIMEZONE = "user_timezone";
private String eventType;
private JvmEventBuilder(EventBuilderData eventBuilderData, String eventType) {
super(eventBuilderData);
this.eventType = eventType;
}
public static JvmEventBuilder createJvmAgentAttachedBuilder(EventBuilderData eventBuilderData) {
return new JvmEventBuilder(eventBuilderData, JVM_AGENT_ATTACHED_EVENT_TYPE);
}
public static JvmEventBuilder createJvmBuilder(EventBuilderData eventBuilderData) {
return new JvmEventBuilder(eventBuilderData, JVM_EVENT_TYPE);
}
public static JvmEventBuilder createJvmStartBuilder(EventBuilderData eventBuilderData) {
return new JvmEventBuilder(eventBuilderData, JVM_START_EVENT_TYPE);
}
public static JvmEventBuilder createJvmStopBuilder(EventBuilderData eventBuilderData) {
return new JvmEventBuilder(eventBuilderData, JVM_STOP_EVENT_TYPE);
}
public void setAvailableProcessors(int availableProcessors) {
this.addProperty(PROPERTY_AVAILABLE_PROCESSORS, availableProcessors);
}
public void setCommittedHeapMemory(long commitedHeapMemory) {
this.addProperty(PROPERTY_COMMITTED_HEAP_MEMORY, commitedHeapMemory);
}
public void setCommittedNonHeapMemory(long commitedNonHeapMemory) {
this.addProperty(PROPERTY_COMMITTED_NON_HEAP_MEMORY, commitedNonHeapMemory);
}
public void setCpuEndian(String cpuEndian) {
this.addProperty(PROPERTY_CPU_ENDIAN, cpuEndian);
}
public void setDaemonThreadCount(int daemonThreadCount) {
this.addProperty(PROPERTY_DAEMON_THREAD_COUNT, daemonThreadCount);
}
public void setGarbageCollectorRunCount(String garbageCollectorName, long runCount) {
this.addProperty(this.normalizeName(garbageCollectorName) + "_" + PROPERTY_GARBAGE_COLLECTOR_RUN_COUNT, runCount);
}
public void setGarbageCollectorTime(String garbageCollectorName, long collectionTime) {
this.addProperty(this.normalizeName(garbageCollectorName) + "_" + PROPERTY_GARBAGE_COLLECTOR_TIME, collectionTime);
}
public void setInitialHeapMemory(long initialHeapMemory) {
this.addProperty(PROPERTY_INITIAL_HEAP_MEMORY, initialHeapMemory);
}
public void setInitialNonHeapMemory(long initialNonHeapMemory) {
this.addProperty(PROPERTY_INITIAL_NON_HEAP_MEMORY, initialNonHeapMemory);
}
public void setJavaRuntimeName(String javaRuntimeName) {
this.addProperty(PROPERTY_JAVA_RUNTIME_NAME, javaRuntimeName);
}
public void setJavaRuntimeVersion(String javaRuntimeVersion) {
this.addProperty(PROPERTY_JAVA_RUNTIME_VERSION, javaRuntimeVersion);
}
public void setJvmInfo(String jvmInfo) {
this.addProperty(PROPERTY_JVM_INFO, jvmInfo);
}
public void setJvmName(String jvmName) {
this.addProperty(PROPERTY_JVM_NAME, jvmName);
}
public void setJvmVendor(String jvmVendor) {
this.addProperty(PROPERTY_JVM_VENDOR, jvmVendor);
}
public void setJvmVersion(String jvmVersion) {
this.addProperty(PROPERTY_JVM_VERSION, jvmVersion);
}
public void setLoadedClassCount(int loadedClassCount) {
this.addProperty(PROPERTY_LOADED_CLASS_COUNT, loadedClassCount);
}
public void setMaxFileDescriptorCount(long maxFileDescriptorCount) {
this.addProperty(PROPERTY_MAX_FILE_DESCRIPTOR_COUNT, maxFileDescriptorCount);
}
public void setMaxHeapMemory(long maxHeapMemory) {
this.addProperty(PROPERTY_MAX_HEAP_MEMORY, maxHeapMemory);
}
public void setMaxNonHeapMemory(long maxNonHeapMemory) {
this.addProperty(PROPERTY_MAX_NON_HEAP_MEMORY, maxNonHeapMemory);
}
public void setObjectPendingFinalizationCount(int objectPendingFinalizationCount) {
this.addProperty(PROPERTY_OBJECT_PENDING_FINALIZATION_COUNT, objectPendingFinalizationCount);
}
public void setOpenFileDescriptorCount(long openFileDescriptorCount) {
this.addProperty(PROPERTY_OPEN_FILE_DESCRIPTOR_COUNT, openFileDescriptorCount);
}
public void setOsArchitecture(String osArchitecture) {
this.addProperty(PROPERTY_OS_ARCHITECTURE, osArchitecture);
}
public void setOsName(String osName) {
this.addProperty(PROPERTY_OS_NAME, osName);
}
public void setOsVersion(String osVersion) {
this.addProperty(PROPERTY_OS_VERSION, osVersion);
}
public void setProcessCpuLoad(double processCpuLoad) {
this.addProperty(PROPERTY_PROCESS_CPU_LOAD, processCpuLoad);
}
public void setProcessCpuTime(double processCpuTime) {
this.addProperty(PROPERTY_PROCESS_CPU_TIME, processCpuTime);
}
public void setThreadCount(int threadCount) {
this.addProperty(PROPERTY_THREAD_COUNT, threadCount);
}
public void setTotalLoadedClassCount(long totalLoadedClassCount) {
this.addProperty(PROPERTY_TOTAL_LOADED_CLASS_COUNT, totalLoadedClassCount);
}
public void setUnloadedClassCount(long unloadedClassCount) {
this.addProperty(PROPERTY_UNLOADED_CLASS_COUNT, unloadedClassCount);
}
public void setUsedHeapMemory(long usedHeapMemory) {
this.addProperty(PROPERTY_USED_HEAP_MEMORY, usedHeapMemory);
}
public void setUsedNonHeapMemory(long usedNonHeapMemory) {
this.addProperty(PROPERTY_USED_NON_HEAP_MEMORY, usedNonHeapMemory);
}
public void setUserCountry(String userCountry) {
this.addProperty(PROPERTY_USER_COUNTRY, userCountry);
}
public void setUserDirectory(String userDirectory) {
this.addProperty(PROPERTY_USER_DIRECTORY, userDirectory);
}
public void setUserHome(String userHome) {
this.addProperty(PROPERTY_USER_HOME, userHome);
}
public void setUserLanguage(String userLanguage) {
this.addProperty(PROPERTY_USER_LANGUAGE, userLanguage);
}
public void setUserName(String userName) {
this.addProperty(PROPERTY_USER_NAME, userName);
}
public void setUserTimezone(String userTimezone) {
this.addProperty(PROPERTY_USER_TIMEZONE, userTimezone);
}
@Override
protected String getType() {
return this.eventType;
}
private String normalizeName(String name) {
return name.toLowerCase().replace(' ', '_');
}
}