diff --git a/samples/gateway/pom.xml b/samples/gateway/pom.xml
index 93aebcc..611dd9a 100644
--- a/samples/gateway/pom.xml
+++ b/samples/gateway/pom.xml
@@ -21,10 +21,10 @@
     </dependency>
 
     <!-- 微服务 健康监控 -->
-    <!-- <dependency>
+    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
-    </dependency> -->
+    </dependency>
 
     <!-- <dependency>
       <groupId>org.springframework.boot</groupId>
@@ -36,6 +36,20 @@
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-gateway</artifactId>
     </dependency>
+    
+    <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+    </dependency>
+    <!-- <dependency>
+      <groupId>org.springframework.cloud</groupId>
+      <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
+    </dependency> -->
+    
+    <!-- <dependency>
+      <groupId>io.micrometer</groupId>
+      <artifactId>micrometer-registry-prometheus</artifactId>
+    </dependency> -->
 
 
     <!-- Test things -->
diff --git a/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/GatewayApplication.java b/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/GatewayApplication.java
index 39b0c99..089a50c 100644
--- a/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/GatewayApplication.java
+++ b/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/GatewayApplication.java
@@ -10,4 +10,17 @@
     SpringApplication.run(GatewayApplication.class, args);
   }
 
+//  
+//  @Bean
+//  public ServletRegistrationBean<HystrixMetricsStreamServlet> hystrixMetricsStreamServlet() {
+//    HystrixMetricsStreamServlet hystrixMetricsStreamServlet = new HystrixMetricsStreamServlet();
+//    
+//    ServletRegistrationBean<HystrixMetricsStreamServlet> servletRegistrationBean = new ServletRegistrationBean<HystrixMetricsStreamServlet>(hystrixMetricsStreamServlet);
+//    servletRegistrationBean.setName("hystrixMetricsStreamServlet");
+//    servletRegistrationBean.setLoadOnStartup(1);
+//    servletRegistrationBean.addUrlMappings("/hystrix.stream");
+//    
+//    return servletRegistrationBean;
+//  }
+//  
 }
diff --git a/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/controller/error/ErrorController.java b/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/controller/error/ErrorController.java
new file mode 100644
index 0000000..77cb767
--- /dev/null
+++ b/samples/gateway/src/main/java/com/supwisdom/leaveschool/gateway/controller/error/ErrorController.java
@@ -0,0 +1,27 @@
+package com.supwisdom.leaveschool.gateway.controller.error;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.http.HttpStatus;
+import org.springframework.util.MimeTypeUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class ErrorController {
+  
+  private static final Logger logger = LoggerFactory.getLogger(ErrorController.class);
+
+  @RequestMapping(value = "/error", produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
+  @ResponseStatus(value = HttpStatus.BAD_GATEWAY)
+  public Map<String, Object> error() {
+    logger.debug("error");
+    Map<String, Object> result = new HashMap<String, Object>();
+    result.put("error", "Bad Gateway");
+    return result;
+  }
+}
diff --git a/samples/gateway/src/main/resources/application.yml b/samples/gateway/src/main/resources/application.yml
index f472001..35065a6 100755
--- a/samples/gateway/src/main/resources/application.yml
+++ b/samples/gateway/src/main/resources/application.yml
@@ -6,7 +6,7 @@
   level:
     root: INFO
     org.springframework.web: INFO
-    org.springframework.cloud.gateway: INFO
+    org.springframework.cloud.gateway: TRACE
     com.supwisdom.infras.security: DEBUG
     com.supwisdom.leaveschool: DEBUG
 
@@ -23,5 +23,21 @@
         - Path=/api/sample-user/**
         filters:
         - RewritePath=/(?<prefix>.*)/sample-user/(?<suffix>.*), /$\{prefix}/$\{suffix}
+        - name: Hystrix
+          args:
+            name: default
+            fallbackUri: forward:/error
+      metrics:
+        enabled: true
+
+hystrix:
+  command:
+    default:
+      execution:
+        timeout:
+          enabled: true
+        isolation:
+          thread:
+            timeoutInMilliseconds: 5000
 
 management.endpoints.web.exposure.include: '*'
