Firstsawyou opened a new issue #1770:
URL: https://github.com/apache/apisix-dashboard/issues/1770


   # Feature request
   
   ## Please describe your feature
   
   When configuring the health check in the Dashboard, if the status code 
information is not set, there is no default status code. When configuring the 
health check through the `Admin API`, there will be a status code by default.
   
   1. Configure the health check through the Dashboard
   Create a route and do not set the `HTTP Status` in the passive health check:
   
   <img width="875" alt="截屏2021-04-14 下午6 47 45" 
src="https://user-images.githubusercontent.com/52862365/114699995-9013df80-9d53-11eb-997f-e2e5147b4f4a.png";>
   
   
   The etcd data is as follows:
   
   ```yaml
   {
       "id":"350421980362573985",
       "create_time":1618397376,
       "update_time":1618397376,
       "uris":[
           "/*"
       ],
       "name":"dashboard-healthcheck",
       "methods":[
           "GET",
           "HEAD",
           "POST"
       ],
       "upstream":{
           "nodes":[
               {
                   "host":"127.0.0.1",
                   "port":80,
                   "weight":1
               }
           ],
           "timeout":{
               "connect":6,
               "read":6,
               "send":6
           },
           "type":"roundrobin",
           "checks":{
               "active":{
                   "healthy":{
                       "interval":10,
                       "successes":5
                   },
                   "host":"localhost",
                   "http_path":"/hello",
                   "port":1980,
                   "timeout":2,
                   "unhealthy":{
                       "http_failures":3,
                       "interval":10
                   }
               },
               "passive":{
                   "healthy":{
                       "successes":3
                   },
                   "unhealthy":{
                       "http_failures":3,
                       "tcp_failures":3
                   }
               }
           },
           "pass_host":"pass"
       },
       "status":1
   }
   ```
   
   2. Configure the health check through the `Admin API`, and do not set the 
`HTTP Status` in the passive health check.
   
   Create a route:
   
   ```shell
   curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: 
edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
   {
       "uri": "/admin-api",
       "upstream": {
            "nodes": {
               "127.0.0.1:1980": 1,
               "127.0.0.1:1970": 1
           },
           "type": "roundrobin",
           "checks": {
               "active": {
                   "timeout": 5,
                   "http_path": "/status",
                   "host": "foo.com",
                   "healthy": {
                       "interval": 2,
                       "successes": 1
                   },
                   "unhealthy": {
                       "interval": 1,
                       "http_failures": 2
                   }
               },
               "passive": {
                   "healthy": {
                       "successes": 3
                   },
                   "unhealthy": {
                       "http_failures": 3,
                       "tcp_failures": 3
                   }
               }
           }
       }
   }'
   ```
   
   The etcd data is as follows:
   
   ```json
   {
       "update_time":1618397719,
       "id":"1",
       "create_time":1618394497,
       "uri":"/admin-api",
       "status":1,
       "priority":0,
       "upstream":{
           "type":"roundrobin",
           "scheme":"http",
           "checks":{
               "active":{
                   "healthy":{
                       "interval":2,
                       "successes":1,
                       "http_statuses":[
                           200,
                           302
                       ]
                   },
                   "concurrency":10,
                   "http_path":"/status",
                   "https_verify_certificate":true,
                   "timeout":5,
                   "unhealthy":{
                       "http_failures":2,
                       "tcp_failures":2,
                       "interval":1,
                       "timeouts":3,
                       "http_statuses":[
                           429,
                           404,
                           500,
                           501,
                           502,
                           503,
                           504,
                           505
                       ]
                   },
                   "type":"http",
                   "host":"foo.com"
               },
               "passive":{
                   "healthy":{
                       "http_statuses":[
                           200,
                           201,
                           202,
                           203,
                           204,
                           205,
                           206,
                           207,
                           208,
                           226,
                           300,
                           301,
                           302,
                           303,
                           304,
                           305,
                           306,
                           307,
                           308
                       ],
                       "successes":3
                   },
                   "unhealthy":{
                       "timeouts":7,
                       "http_statuses":[
                           429,
                           500,
                           503
                       ],
                       "http_failures":3,
                       "tcp_failures":3
                   },
                   "type":"http"
               }
           },
           "nodes":{
               "127.0.0.1:1980":1,
               "127.0.0.1:1970":1
           },
           "pass_host":"pass",
           "hash_on":"vars"
       }
   }
   ```
   ## Describe the solution you'd like
   
   I think that when configuring the health check through the Dashboard, there 
should be a default status code. Keep consistent with `Admin API`.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to