All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.didiglobal.knowframework.system.metrcis.Metrics Maven / Gradle / Ivy

package com.didiglobal.knowframework.system.metrcis;

import com.didiglobal.knowframework.system.metrcis.constant.ExceptionCodeEnum;
import com.didiglobal.knowframework.system.metrcis.constant.OSTypeEnum;
import com.didiglobal.knowframework.system.metrcis.exception.MetricsException;
import com.didiglobal.knowframework.system.metrcis.factory.MetricsServiceFactory;
import com.didiglobal.knowframework.system.metrcis.factory.linux.LinuxMetricsServiceFactory;
import com.didiglobal.knowframework.system.metrcis.factory.linux.mac.MacOSMetricsServiceFactory;

import java.lang.management.ManagementFactory;

/**
 * 入口类
 */
public class Metrics {

    public static MetricsServiceFactory getMetricsServiceFactory() {
        //根据 os 类型进行对应实例化
        String osName = ManagementFactory.getOperatingSystemMXBean().getName().toLowerCase();
        if (osName.contains(OSTypeEnum.LINUX.getDesc())) {
            return LinuxMetricsServiceFactory.getInstance();
        } else if (osName.contains(OSTypeEnum.AIX.getDesc())) {
            throw new MetricsException(String.format(
                    "class=Metrics||method=getMetricsServiceFactory||errMsg=os={%s} not support",
                    osName), ExceptionCodeEnum.SYSTEM_NOT_SUPPORT.getCode());
        } else if (osName.contains(OSTypeEnum.WINDOWS.getDesc())) {
            return new MacOSMetricsServiceFactory();
        } else if (osName.contains(OSTypeEnum.MAC_OS.getDesc())) {
            return new MacOSMetricsServiceFactory();
        } else {
            throw new MetricsException(String.format(
                    "class=Metrics||method=getMetricsServiceFactory||errMsg=os={%s} not support",
                    osName), ExceptionCodeEnum.SYSTEM_NOT_SUPPORT.getCode());
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy