diff options
Diffstat (limited to 'apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health')
4 files changed, 327 insertions, 359 deletions
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ApiRouteHealthCheck.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ApiRouteHealthCheck.java index 7edf882..6868f99 100644 --- a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ApiRouteHealthCheck.java +++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ApiRouteHealthCheck.java @@ -1,33 +1,29 @@ /******************************************************************************* * Copyright 2016-2017 ZTE, Inc. and others. * - * Licensed 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 + * Licensed 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 + * 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. + * 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. ******************************************************************************/ /** -* Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) -* -* Licensed 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. -*/ + * Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE) + * + * Licensed 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.onap.msb.apiroute.health; import org.onap.msb.apiroute.api.DiscoverInfo; @@ -40,26 +36,23 @@ import com.codahale.metrics.health.HealthCheck; public class ApiRouteHealthCheck extends HealthCheck { - public ApiRouteHealthCheck() { - } + public ApiRouteHealthCheck() {} @Override protected Result check() throws Exception { - DiscoverInfo discoverInfo=ConfigUtil.getInstance().getDiscoverInfo(); - - String checkUrl = - (new StringBuilder().append("http://").append(discoverInfo.toString()) - .append(RouteUtil.MSB_CHECK_URL)).toString(); + DiscoverInfo discoverInfo = ConfigUtil.getInstance().getDiscoverInfo(); + + String checkUrl = (new StringBuilder().append("http://").append(discoverInfo.toString()) + .append(RouteUtil.MSB_CHECK_URL)).toString(); + + int resultStatus = HttpClientUtil.httpGetStatus(checkUrl); + + if (resultStatus == 200) { + return Result.healthy(); + } else { + return Result.unhealthy("check consul fail:[status]" + resultStatus); + } - int resultStatus = HttpClientUtil.httpGetStatus(checkUrl); - - if(resultStatus==200){ - return Result.healthy(); - } - else{ - return Result.unhealthy("check consul fail:[status]"+resultStatus); - } - } } diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ConsulLinkHealthCheck.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ConsulLinkHealthCheck.java index 40d169a..545e4c8 100644 --- a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ConsulLinkHealthCheck.java +++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/ConsulLinkHealthCheck.java @@ -1,23 +1,19 @@ /******************************************************************************* * Copyright 2016-2017 ZTE, Inc. and others. * - * Licensed 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 + * Licensed 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 + * 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. + * 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.onap.msb.apiroute.health; import org.apache.commons.lang3.StringUtils; -import org.onap.msb.apiroute.ApiRouteApp; -import org.onap.msb.apiroute.wrapper.InitRouteServiceWrapper; import org.onap.msb.apiroute.wrapper.util.ConfigUtil; import org.onap.msb.apiroute.wrapper.util.HttpClientUtil; import org.onap.msb.apiroute.wrapper.util.HttpGetResult; @@ -28,120 +24,110 @@ import com.codahale.metrics.health.HealthCheck; public class ConsulLinkHealthCheck extends HealthCheck implements Runnable { - private static final Logger LOGGER = LoggerFactory - .getLogger(ConsulLinkHealthCheck.class); - - private final static String CONSUL_IP_ENV = ConfigUtil.getInstance().getConsul_ip(); - - private static int failedLoopCheckNum = 12; - private static int failedTimer = 5 * 1000; - - private static int normalTimer = 20 * 1000; - private static Result result = Result.healthy(); - - private String CHECK_IP = "127.0.0.1"; - private String CHECK_PORT = "8500"; - private String CHECK_URL = "http://" + CHECK_IP + ":" + CHECK_PORT - + "/v1/status/leader"; - - public static Result getResult() { - return result; - } - - @Override - protected Result check() { - // TODO Auto-generated method stub - - if (!StringUtils.isBlank(CONSUL_IP_ENV)) { - CHECK_IP = CONSUL_IP_ENV; - CHECK_URL = "http://" + CHECK_IP + ":" + CHECK_PORT - + "/v1/status/leader"; - - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("check consul URL:" + CHECK_URL); - } - - try { - - HttpGetResult result = HttpClientUtil - .httpGetStatusAndBody(CHECK_URL); - - //response format:"127.0.0.1:8300" - if (result.getStatusCode() == 200 && result.getBody() != null - && result.getBody().contains(":8300")) { - return Result.healthy(); - } else { - return Result.unhealthy("check consul link " + CHECK_URL - + " fail:" + result.getStatusCode()+":"+result.getBody()); - } - - } catch (Exception e) { - LOGGER.warn( - "ConsulLinkHealthCheck:" + CHECK_URL + " execption", e); - return Result.unhealthy("check consul link " + CHECK_URL - + " exception:{}"); - } - - } - - return Result.healthy(); - } - - @Override - public void run() { - // TODO Auto-generated method stub - while (true) { - - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("consul link check starttime:" - + System.currentTimeMillis()); - } - - result = checkWithPolicy(); - - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("consul link check result:" + result.isHealthy() - + " message:" + result.getMessage()); - - LOGGER.debug("consul link check endtime:" - + System.currentTimeMillis()); - } - - try { - Thread.sleep(normalTimer); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - LOGGER.warn("loop check consul,thread sleep excepiton", e); - } - } - } - - private Result checkWithPolicy() { - int failedNum = 0; - Result temp = Result.healthy(); - - do { - // check again - temp = check(); - - // healthy break; - if (temp.isHealthy()) { - break; - } - - // unhealthy go on - failedNum++; - - try { - Thread.sleep(failedTimer); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - LOGGER.warn("loop check consul,thread sleep excepiton", e); - } - - } while (failedNum <= failedLoopCheckNum); - - return temp; - } - + private static final Logger LOGGER = LoggerFactory.getLogger(ConsulLinkHealthCheck.class); + + private final static String CONSUL_IP_ENV = ConfigUtil.getInstance().getConsul_ip(); + + private static int failedLoopCheckNum = 12; + private static int failedTimer = 5 * 1000; + + private static int normalTimer = 20 * 1000; + private static Result result = Result.healthy(); + + private String CHECK_IP = "127.0.0.1"; + private String CHECK_PORT = "8500"; + private String CHECK_URL = "http://" + CHECK_IP + ":" + CHECK_PORT + "/v1/status/leader"; + + public static Result getResult() { + return result; + } + + @Override + protected Result check() { + // TODO Auto-generated method stub + + if (!StringUtils.isBlank(CONSUL_IP_ENV)) { + CHECK_IP = CONSUL_IP_ENV; + CHECK_URL = "http://" + CHECK_IP + ":" + CHECK_PORT + "/v1/status/leader"; + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("check consul URL:" + CHECK_URL); + } + + try { + + HttpGetResult result = HttpClientUtil.httpGetStatusAndBody(CHECK_URL); + + // response format:"127.0.0.1:8300" + if (result.getStatusCode() == 200 && result.getBody() != null && result.getBody().contains(":8300")) { + return Result.healthy(); + } else { + return Result.unhealthy("check consul link " + CHECK_URL + " fail:" + result.getStatusCode() + ":" + + result.getBody()); + } + + } catch (Exception e) { + LOGGER.warn("ConsulLinkHealthCheck:" + CHECK_URL + " execption", e); + return Result.unhealthy("check consul link " + CHECK_URL + " exception:{}"); + } + + } + + return Result.healthy(); + } + + @Override + public void run() { + // TODO Auto-generated method stub + while (true) { + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("consul link check starttime:" + System.currentTimeMillis()); + } + + result = checkWithPolicy(); + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("consul link check result:" + result.isHealthy() + " message:" + result.getMessage()); + + LOGGER.debug("consul link check endtime:" + System.currentTimeMillis()); + } + + try { + Thread.sleep(normalTimer); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + LOGGER.warn("loop check consul,thread sleep excepiton", e); + } + } + } + + private Result checkWithPolicy() { + int failedNum = 0; + Result temp = Result.healthy(); + + do { + // check again + temp = check(); + + // healthy break; + if (temp.isHealthy()) { + break; + } + + // unhealthy go on + failedNum++; + + try { + Thread.sleep(failedTimer); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + LOGGER.warn("loop check consul,thread sleep excepiton", e); + } + + } while (failedNum <= failedLoopCheckNum); + + return temp; + } + } diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/OpenRestyHealthCheck.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/OpenRestyHealthCheck.java index 1f5a9e2..be3266a 100644 --- a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/OpenRestyHealthCheck.java +++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/OpenRestyHealthCheck.java @@ -1,17 +1,15 @@ /******************************************************************************* * Copyright 2016-2017 ZTE, Inc. and others. * - * Licensed 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 + * Licensed 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 + * 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. + * 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.onap.msb.apiroute.health; @@ -23,32 +21,29 @@ import org.slf4j.LoggerFactory; import com.codahale.metrics.health.HealthCheck; public class OpenRestyHealthCheck extends HealthCheck { - private static final Logger LOGGER = LoggerFactory - .getLogger(OpenRestyHealthCheck.class); - private String CHECK_IP="127.0.0.1"; - private String CHECK_PORT="80"; - private String CHECK_URL = "http://"+CHECK_IP+":"+CHECK_PORT+"/api/microservices/v1/apiRoute/discoverInfo"; - - @Override - protected Result check() throws Exception { - // TODO Auto-generated method stub - - if(!StringUtils.isBlank(System.getenv("HTTP_OVERWRITE_PORT"))) - { - CHECK_PORT=System.getenv("HTTP_OVERWRITE_PORT"); - CHECK_URL = "http://"+CHECK_IP+":"+CHECK_PORT+"/api/microservices/v1/apiRoute/discoverInfo"; - LOGGER.info("check openresty URL:"+CHECK_URL); - } - - int resultStatus = HttpClientUtil.httpGetStatus(CHECK_URL); - - if (resultStatus == 200) { - return Result.healthy(); - } else { - return Result - .unhealthy("check openresty fail:" + resultStatus); - } - - } + private static final Logger LOGGER = LoggerFactory.getLogger(OpenRestyHealthCheck.class); + private String CHECK_IP = "127.0.0.1"; + private String CHECK_PORT = "80"; + private String CHECK_URL = "http://" + CHECK_IP + ":" + CHECK_PORT + "/api/microservices/v1/apiRoute/discoverInfo"; + + @Override + protected Result check() throws Exception { + // TODO Auto-generated method stub + + if (!StringUtils.isBlank(System.getenv("HTTP_OVERWRITE_PORT"))) { + CHECK_PORT = System.getenv("HTTP_OVERWRITE_PORT"); + CHECK_URL = "http://" + CHECK_IP + ":" + CHECK_PORT + "/api/microservices/v1/apiRoute/discoverInfo"; + LOGGER.info("check openresty URL:" + CHECK_URL); + } + + int resultStatus = HttpClientUtil.httpGetStatus(CHECK_URL); + + if (resultStatus == 200) { + return Result.healthy(); + } else { + return Result.unhealthy("check openresty fail:" + resultStatus); + } + + } } diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/RedisHealthCheck.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/RedisHealthCheck.java index 48bfa48..2f2ec4c 100644 --- a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/RedisHealthCheck.java +++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/health/RedisHealthCheck.java @@ -1,17 +1,15 @@ /******************************************************************************* * Copyright 2016-2017 ZTE, Inc. and others. * - * Licensed 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 + * Licensed 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 + * 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. + * 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.onap.msb.apiroute.health; @@ -21,155 +19,151 @@ import org.onap.msb.apiroute.wrapper.util.JedisUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import redis.clients.jedis.Jedis; - import com.codahale.metrics.health.HealthCheck; +import redis.clients.jedis.Jedis; + public class RedisHealthCheck extends HealthCheck implements Runnable { - private static final Logger LOGGER = LoggerFactory - .getLogger(RedisHealthCheck.class); - - public static boolean writeCheckFlag = true; - private static Result result = Result.healthy(); - - private static int failedLoopCheckNum = 12; - private static int failedTimer = 5 * 1000; - - private static int normalTimer = 20 * 1000; - - public static Result getResult() { - return result; - } - - @Override - protected Result check() { - - // check write - if (writeCheckFlag) { - Result writeCheckResult = checkWrite(); - if (writeCheckResult.isHealthy()) { - writeCheckFlag = false; - } - - // write failed - if (!writeCheckResult.isHealthy()) { - return writeCheckResult; - } - } - - // check read - Result readCheckResult = checkRead(); - - // read failed - if (!readCheckResult.isHealthy()) { - return readCheckResult; - } - - return Result.healthy(); - } - - private Result checkRead() { - Jedis jedisHandle = null; - - Result healthRst = Result.healthy(); - try { - - jedisHandle = JedisUtil.borrowJedisInstance(); - jedisHandle.get("healthchek:checktime"); - - } catch (Exception e) { - LOGGER.warn("RedisHealthCheck exception", e); - healthRst = Result.unhealthy(e); - } finally { - JedisUtil.returnJedisInstance(jedisHandle); - } - - return healthRst; - } - - private Result checkWrite() { - Jedis jedisHandle = null; - - Result healthRst = Result.healthy(); - try { - - long currentTime = System.currentTimeMillis(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String date = sdf.format(currentTime); - - jedisHandle = JedisUtil.borrowJedisInstance(); - String statusCode = jedisHandle.set("healthchek:checktime", date); - - if (statusCode != null && statusCode.equals("OK")) { - healthRst = Result.healthy("check redis:" + statusCode); - } else { - healthRst = Result.unhealthy("check redis:" + statusCode); - } - - } catch (Exception e) { - LOGGER.warn("RedisHealthCheck exception", e); - healthRst = Result.unhealthy(e); - } finally { - JedisUtil.returnJedisInstance(jedisHandle); - } - - return healthRst; - } - - @Override - public void run() { - // TODO Auto-generated method stub - while (true) { - - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("redis check starttime:" - + System.currentTimeMillis()); - } - - result = checkWithPolicy(); - - if (LOGGER.isDebugEnabled()) { - LOGGER.debug("redis check result:" + result.isHealthy() - + " message:" + result.getMessage()); - - LOGGER.debug("redis check endtime:" - + System.currentTimeMillis()); - } - - try { - Thread.sleep(normalTimer); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - LOGGER.warn("loop check redis,thread sleep excepiton", e); - } - } - } - - private Result checkWithPolicy() { - int failedNum = 0; - Result temp = Result.healthy(); - - do { - // check again - temp = check(); - - // healthy break; - if (temp.isHealthy()) { - break; - } - - // unhealthy go on - failedNum++; - - try { - Thread.sleep(failedTimer); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - LOGGER.warn("loop check redis,thread sleep excepiton", e); - } - - } while (failedNum <= failedLoopCheckNum); - - return temp; - } + private static final Logger LOGGER = LoggerFactory.getLogger(RedisHealthCheck.class); + + public static boolean writeCheckFlag = true; + private static Result result = Result.healthy(); + + private static int failedLoopCheckNum = 12; + private static int failedTimer = 5 * 1000; + + private static int normalTimer = 20 * 1000; + + public static Result getResult() { + return result; + } + + @Override + protected Result check() { + + // check write + if (writeCheckFlag) { + Result writeCheckResult = checkWrite(); + if (writeCheckResult.isHealthy()) { + writeCheckFlag = false; + } + + // write failed + if (!writeCheckResult.isHealthy()) { + return writeCheckResult; + } + } + + // check read + Result readCheckResult = checkRead(); + + // read failed + if (!readCheckResult.isHealthy()) { + return readCheckResult; + } + + return Result.healthy(); + } + + private Result checkRead() { + Jedis jedisHandle = null; + + Result healthRst = Result.healthy(); + try { + + jedisHandle = JedisUtil.borrowJedisInstance(); + jedisHandle.get("healthchek:checktime"); + + } catch (Exception e) { + LOGGER.warn("RedisHealthCheck exception", e); + healthRst = Result.unhealthy(e); + } finally { + JedisUtil.returnJedisInstance(jedisHandle); + } + + return healthRst; + } + + private Result checkWrite() { + Jedis jedisHandle = null; + + Result healthRst = Result.healthy(); + try { + + long currentTime = System.currentTimeMillis(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String date = sdf.format(currentTime); + + jedisHandle = JedisUtil.borrowJedisInstance(); + String statusCode = jedisHandle.set("healthchek:checktime", date); + + if (statusCode != null && statusCode.equals("OK")) { + healthRst = Result.healthy("check redis:" + statusCode); + } else { + healthRst = Result.unhealthy("check redis:" + statusCode); + } + + } catch (Exception e) { + LOGGER.warn("RedisHealthCheck exception", e); + healthRst = Result.unhealthy(e); + } finally { + JedisUtil.returnJedisInstance(jedisHandle); + } + + return healthRst; + } + + @Override + public void run() { + // TODO Auto-generated method stub + while (true) { + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("redis check starttime:" + System.currentTimeMillis()); + } + + result = checkWithPolicy(); + + if (LOGGER.isDebugEnabled()) { + LOGGER.debug("redis check result:" + result.isHealthy() + " message:" + result.getMessage()); + + LOGGER.debug("redis check endtime:" + System.currentTimeMillis()); + } + + try { + Thread.sleep(normalTimer); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + LOGGER.warn("loop check redis,thread sleep excepiton", e); + } + } + } + + private Result checkWithPolicy() { + int failedNum = 0; + Result temp = Result.healthy(); + + do { + // check again + temp = check(); + + // healthy break; + if (temp.isHealthy()) { + break; + } + + // unhealthy go on + failedNum++; + + try { + Thread.sleep(failedTimer); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + LOGGER.warn("loop check redis,thread sleep excepiton", e); + } + + } while (failedNum <= failedLoopCheckNum); + + return temp; + } } |