blob: eb3adf4bae16d3324ebea580f2ea6fca1da4171e [file] [log] [blame]
/*
* 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
*
* 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.
*/
package org.apache.servicecomb.huaweicloud.dashboard.monitor.data;
import com.netflix.config.DynamicBooleanProperty;
import com.netflix.config.DynamicIntProperty;
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.config.DynamicStringProperty;
public class MonitorConstant {
public static final String DOMAIN_NAME = getDomainName();
public static final String CURRENT_VERSION = getApiVersion();
public static final String VERSION_V1 = "v1";
public static final String PREFIX_V2 = String.format("/v2/%s/csemonitor", DOMAIN_NAME);
public static final String MONITORS_URI;
public static final String SYSTEM_KEY_DASHBOARD_SERVICE = "DashboardService";
public static final String MONITOR_URI = "servicecomb.monitor.client.serverUri";
public static final String PROXY_ENABLE = "servicecomb.proxy.enable";
public static final String PROXY_HOST = "servicecomb.proxy.host";
public static final String PROXY_PORT = "servicecomb.proxy.port";
public static final String PROXY_USERNAME = "servicecomb.proxy.username";
public static final String PROXY_PASSWD = "servicecomb.proxy.passwd";
public static final int MIN_INTERVAL_MILLISECONDS = 5000;
public static final int DEFAULT_TIMEOUT = 5000;
public static final int DEFAULT_INTERVAL = 10000;
public static final int MAX_RETRY_TIMES = 3;
static {
if (VERSION_V1.equals(CURRENT_VERSION)) {
MONITORS_URI = "/csemonitor/v1/metric?service=%s";
} else {
MONITORS_URI = PREFIX_V2 + "/metric?service=%s";
}
}
public static final String TRANSACTION_URI;
static {
if (VERSION_V1.equals(CURRENT_VERSION)) {
TRANSACTION_URI = "/csemonitor/v1/transaction";
} else {
TRANSACTION_URI = PREFIX_V2 + "/transaction";
}
}
public static String getTanentName() {
DynamicStringProperty property = DynamicPropertyFactory.getInstance().
getStringProperty("servicecomb.config.client.tenantName", "default");
return property.getValue();
}
public static String getDomainName() {
DynamicStringProperty property = DynamicPropertyFactory.getInstance().
getStringProperty("servicecomb.config.client.domainName", "default");
return property.getValue();
}
public static String getApiVersion() {
DynamicStringProperty property = DynamicPropertyFactory.getInstance().
getStringProperty("servicecomb.monitor.client.api.version", "v2");
return property.getValue();
}
public static String getServerUrl() {
DynamicStringProperty property = DynamicPropertyFactory.getInstance().
getStringProperty("servicecomb.monitor.client.serverUri", null);
return property.getValue();
}
public static boolean sslEnabled() {
DynamicBooleanProperty property = DynamicPropertyFactory.getInstance().
getBooleanProperty("servicecomb.monitor.client.sslEnabled", true);
return property.getValue();
}
public static boolean isMonitorEnabled() {
DynamicBooleanProperty property = DynamicPropertyFactory.getInstance().
getBooleanProperty("servicecomb.monitor.client.enabled", false);
return property.getValue();
}
public static int getConnectionTimeout() {
DynamicIntProperty property = DynamicPropertyFactory.getInstance().
getIntProperty("servicecomb.monitor.client.timeout", DEFAULT_TIMEOUT);
return property.getValue();
}
public static int getInterval() {
DynamicIntProperty property = DynamicPropertyFactory.getInstance().
getIntProperty("servicecomb.monitor.client.interval", DEFAULT_INTERVAL);
int val = property.getValue();
if (val < MIN_INTERVAL_MILLISECONDS) {
return MIN_INTERVAL_MILLISECONDS;
}
return val;
}
public static Boolean isProxyEnable() {
return Boolean.parseBoolean(getProperty("false", PROXY_ENABLE));
}
public static String getProxyHost() {
return getProperty("127.0.0.1", PROXY_HOST);
}
public static int getProxyPort() {
return Integer.parseInt(getProperty("8080", PROXY_PORT));
}
public static String getProxyUsername() {
return getProperty(null, PROXY_USERNAME);
}
public static String getProxyPasswd() {
return getProperty(null, PROXY_PASSWD);
}
private static String getProperty(String defaultValue, String... keys) {
String property = null;
for (String key : keys) {
property = DynamicPropertyFactory.getInstance().getStringProperty(key, null).get();
if (property != null) {
break;
}
}
if (property != null) {
return property;
}
return defaultValue;
}
}