package com.griddynamics.jagger.user.test.configurations.limits.auxiliary;
import com.griddynamics.jagger.util.StandardMetricsNamesUtil;
/**
* Enum for standard metrics.
*/
public enum JMetricName {
PERF_SUCCESS_RATE_OK,
PERF_SUCCESS_RATE_FAILS,
PERF_THROUGHPUT,
PERF_VIRTUAL_USERS,
PERF_STD_DEV_LATENCY,
PERF_DURATION,
PERF_AVG_LATENCY,
PERF_ITERATION_SAMPLES,
MON_CPULA_1,
MON_CPULA_5,
MON_CPULA_15,
MON_GC_MINOR_TIME,
MON_GC_MAJOR_TIME,
MON_GC_MINOR_UNIT,
MON_GC_MAJOR_UNIT,
MON_MEM_RAM,
MON_MEM_TOTAL,
MON_MEM_USED,
MON_MEM_ACTUAL_USED,
MON_MEM_FREE_PRCNT,
MON_MEM_ACTUAL_FREE,
MON_MEM_FREE,
MON_TCP_EST,
MON_TCP_LISTEN,
MON_SYNC_RECEIVED,
MON_INBOUND_TOTAL,
MON_OUTBOUND_TOTAL,
MON_DISK_READ_BYTES,
MON_DISK_WRITE_BYTES,
MON_DISK_SERVICE_TIME,
MON_DISK_QUEUE_SIZE_TOTAL,
MON_CPU_USER,
MON_CPU_SYS_PRCNT,
MON_CPU_IDLE_PRCNT,
MON_CPU_WAIT,
MON_CPU_COMBINED,
MON_HEAP_INIT,
MON_HEAP_USED,
MON_HEAP_COMMITTED,
MON_HEAP_MAX,
MON_NONHEAP_INIT,
MON_NONHEAP_USED,
MON_NONHEAP_COMMITTED,
MON_NONHEAP_MAX,
MON_THREAD_COUNT,
MON_THREAD_PEAK_COUNT,
MON_FILE_DESCRIPTORS;
private final double DEFAULT_VALUE = -1D;
private double value = DEFAULT_VALUE;
/**
* Metric name for some particular percentile.
*
* @param percentile the value of percentile. It may varies from 0 to 100.0 percent.
*/
public static JMetricName PERF_LATENCY_PERCENTILE(Double percentile) {
if (percentile < 0) {
throw new IllegalArgumentException("Percentile may varies from 0 to 100.0");
}
PERF_AVG_LATENCY.value = percentile;
return JMetricName.PERF_AVG_LATENCY;
}
/**
* Convert {@link JMetricName} to String.
*
* @return String value of current metric name.
*/
public String transformToString() {
String name = null;
switch (this) {
case PERF_SUCCESS_RATE_OK:
name = StandardMetricsNamesUtil.SUCCESS_RATE_OK_ID;
break;
case PERF_SUCCESS_RATE_FAILS:
name = StandardMetricsNamesUtil.SUCCESS_RATE_FAILED_ID;
break;
case PERF_THROUGHPUT:
name = StandardMetricsNamesUtil.THROUGHPUT_ID;
break;
case PERF_VIRTUAL_USERS:
name = StandardMetricsNamesUtil.VIRTUAL_USERS_ID;
break;
case PERF_STD_DEV_LATENCY:
name = StandardMetricsNamesUtil.LATENCY_STD_DEV_AGG_ID;
break;
case PERF_DURATION:
name = StandardMetricsNamesUtil.DURATION_ID;
break;
case PERF_AVG_LATENCY:
if (Double.compare(this.value, DEFAULT_VALUE) == 0) {
name = StandardMetricsNamesUtil.LATENCY_ID;
} else {
name = StandardMetricsNamesUtil.getLatencyMetricId(this.value);
}
break;
case PERF_ITERATION_SAMPLES:
name = StandardMetricsNamesUtil.ITERATION_SAMPLES_ID;
break;
case MON_CPULA_1:
name = StandardMetricsNamesUtil.MON_CPULA_1;
break;
case MON_CPULA_5:
name = StandardMetricsNamesUtil.MON_CPULA_5;
break;
case MON_CPULA_15:
name = StandardMetricsNamesUtil.MON_CPULA_15;
break;
case MON_GC_MINOR_TIME:
name = StandardMetricsNamesUtil.MON_GC_MINOR_TIME;
break;
case MON_GC_MAJOR_TIME:
name = StandardMetricsNamesUtil.MON_GC_MAJOR_TIME;
break;
case MON_GC_MINOR_UNIT:
name = StandardMetricsNamesUtil.MON_GC_MINOR_UNIT;
break;
case MON_GC_MAJOR_UNIT:
name = StandardMetricsNamesUtil.MON_GC_MAJOR_UNIT;
break;
case MON_MEM_RAM:
name = StandardMetricsNamesUtil.MON_MEM_RAM;
break;
case MON_MEM_TOTAL:
name = StandardMetricsNamesUtil.MON_MEM_TOTAL;
break;
case MON_MEM_USED:
name = StandardMetricsNamesUtil.MON_MEM_USED;
break;
case MON_MEM_ACTUAL_USED:
name = StandardMetricsNamesUtil.MON_MEM_ACTUAL_USED;
break;
case MON_MEM_FREE_PRCNT:
name = StandardMetricsNamesUtil.MON_MEM_FREE_PRCNT;
break;
case MON_MEM_ACTUAL_FREE:
name = StandardMetricsNamesUtil.MON_MEM_ACTUAL_FREE;
break;
case MON_MEM_FREE:
name = StandardMetricsNamesUtil.MON_MEM_FREE;
break;
case MON_TCP_EST:
name = StandardMetricsNamesUtil.MON_TCP_EST;
break;
case MON_TCP_LISTEN:
name = StandardMetricsNamesUtil.MON_TCP_LISTEN;
break;
case MON_SYNC_RECEIVED:
name = StandardMetricsNamesUtil.MON_SYNC_RECEIVED;
break;
case MON_INBOUND_TOTAL:
name = StandardMetricsNamesUtil.MON_INBOUND_TOTAL;
break;
case MON_OUTBOUND_TOTAL:
name = StandardMetricsNamesUtil.MON_OUTBOUND_TOTAL;
break;
case MON_DISK_READ_BYTES:
name = StandardMetricsNamesUtil.MON_DISK_READ_BYTES;
break;
case MON_DISK_WRITE_BYTES:
name = StandardMetricsNamesUtil.MON_DISK_WRITE_BYTES;
break;
case MON_DISK_SERVICE_TIME:
name = StandardMetricsNamesUtil.MON_DISK_SERVICE_TIME;
break;
case MON_DISK_QUEUE_SIZE_TOTAL:
name = StandardMetricsNamesUtil.MON_DISK_QUEUE_SIZE_TOTAL;
break;
case MON_CPU_USER:
name = StandardMetricsNamesUtil.MON_CPU_USER;
break;
case MON_CPU_SYS_PRCNT:
name = StandardMetricsNamesUtil.MON_CPU_SYS_PRCNT;
break;
case MON_CPU_IDLE_PRCNT:
name = StandardMetricsNamesUtil.MON_CPU_IDLE_PRCNT;
break;
case MON_CPU_WAIT:
name = StandardMetricsNamesUtil.MON_CPU_WAIT;
break;
case MON_CPU_COMBINED:
name = StandardMetricsNamesUtil.MON_CPU_COMBINED;
break;
case MON_HEAP_INIT:
name = StandardMetricsNamesUtil.MON_HEAP_INIT;
break;
case MON_HEAP_USED:
name = StandardMetricsNamesUtil.MON_HEAP_USED;
break;
case MON_HEAP_COMMITTED:
name = StandardMetricsNamesUtil.MON_HEAP_COMMITTED;
break;
case MON_HEAP_MAX:
name = StandardMetricsNamesUtil.MON_HEAP_MAX;
break;
case MON_NONHEAP_INIT:
name = StandardMetricsNamesUtil.MON_NONHEAP_INIT;
break;
case MON_NONHEAP_USED:
name = StandardMetricsNamesUtil.MON_NONHEAP_USED;
break;
case MON_NONHEAP_COMMITTED:
name = StandardMetricsNamesUtil.MON_NONHEAP_COMMITTED;
break;
case MON_NONHEAP_MAX:
name = StandardMetricsNamesUtil.MON_NONHEAP_MAX;
break;
case MON_THREAD_COUNT:
name = StandardMetricsNamesUtil.MON_THREAD_COUNT;
break;
case MON_THREAD_PEAK_COUNT:
name = StandardMetricsNamesUtil.MON_THREAD_PEAK_COUNT;
break;
case MON_FILE_DESCRIPTORS:
name = StandardMetricsNamesUtil.MON_FILE_DESCRIPTORS;
break;
default:
break;
}
return name;
}
}