Browse Source

Improve log info and condition about fetching metrics (#219)

- Receiving "No metrics" response won't cause error log
- Improve log about fetching metrics
master
xcaspar Eric Zhao 6 years ago
parent
commit
ef96b15f22
2 changed files with 14 additions and 6 deletions
  1. +9
    -0
      sentinel-dashboard/src/main/java/com/taobao/csp/sentinel/dashboard/discovery/MachineInfo.java
  2. +5
    -6
      sentinel-dashboard/src/main/java/com/taobao/csp/sentinel/dashboard/metric/MetricFetcher.java

+ 9
- 0
sentinel-dashboard/src/main/java/com/taobao/csp/sentinel/dashboard/discovery/MachineInfo.java View File

@@ -130,4 +130,13 @@ public class MachineInfo implements Comparable<MachineInfo> {
public int hashCode() { public int hashCode() {
return Objects.hash(app, ip, port); return Objects.hash(app, ip, port);
} }

/**
* Information for log
*
* @return
*/
public String toLogString() {
return app + "|" + ip + "|" + port + "|" + version;
}
} }

+ 5
- 6
sentinel-dashboard/src/main/java/com/taobao/csp/sentinel/dashboard/metric/MetricFetcher.java View File

@@ -64,15 +64,14 @@ import org.springframework.stereotype.Component;
@Component @Component
public class MetricFetcher { public class MetricFetcher {


private static Logger logger = LoggerFactory.getLogger(MetricFetcher.class);
private static final int HTTP_OK = 200;

public static final long MAX_CLIENT_LIVE_TIME_MS = 1000 * 60 * 5; public static final long MAX_CLIENT_LIVE_TIME_MS = 1000 * 60 * 5;
public static final String NO_METRICS = "No metrics";
private static final int HTTP_OK = 200;
private static final long MAX_LAST_FETCH_INTERVAL_MS = 1000 * 15; private static final long MAX_LAST_FETCH_INTERVAL_MS = 1000 * 15;
private static final long FETCH_INTERVAL_SECOND = 6; private static final long FETCH_INTERVAL_SECOND = 6;
private static final Charset DEFAULT_CHARSET = Charset.forName(SentinelConfig.charset()); private static final Charset DEFAULT_CHARSET = Charset.forName(SentinelConfig.charset());
private final static String METRIC_URL_PATH = "metric"; private final static String METRIC_URL_PATH = "metric";
private static Logger logger = LoggerFactory.getLogger(MetricFetcher.class);
private final long intervalSecond = 1; private final long intervalSecond = 1;


private Map<String, AtomicLong> appLastFetchTime = new ConcurrentHashMap<>(); private Map<String, AtomicLong> appLastFetchTime = new ConcurrentHashMap<>();
@@ -279,7 +278,7 @@ public class MetricFetcher {
} catch (Exception ignore) { } catch (Exception ignore) {
} }
String body = EntityUtils.toString(response.getEntity(), charset != null ? charset : DEFAULT_CHARSET); String body = EntityUtils.toString(response.getEntity(), charset != null ? charset : DEFAULT_CHARSET);
if (StringUtil.isEmpty(body)) {
if (StringUtil.isEmpty(body) || body.startsWith(NO_METRICS)) {
//logger.info(machine.getApp() + ":" + machine.getIp() + ":" + machine.getPort() + ", bodyStr is empty"); //logger.info(machine.getApp() + ":" + machine.getIp() + ":" + machine.getPort() + ", bodyStr is empty");
return; return;
} }
@@ -322,7 +321,7 @@ public class MetricFetcher {
map.put(key, entity); map.put(key, entity);
} }
} catch (Exception e) { } catch (Exception e) {
logger.info("handleBody line error: {}", line);
logger.warn("handleBody line exception, machine: {}, line: {}", machine.toLogString(), line);
} }
} }
} }


Loading…
Cancel
Save