Skip to content

bug: The upstream health check is working, but it is not displayed in the "APISIX upstream check status" #12812

@Nayls

Description

@Nayls

Current Behavior

The upstream health check is working, but it is not displayed in the "APISIX upstream check status"

http://localhost:9090/v1/healthcheck
Image

Expected Behavior

All health checks and their statuses are displayed

Image

Documentation https://apisix.apache.org/docs/apisix/control-api/

Error Logs

No response

Steps to Reproduce

  1. Create conf/config.yaml
apisix:
  node_listen: 9080 # APISIX listening port
  enable_ipv6: false

  proxy_mode: http&stream
  stream_proxy:
    tcp:
      - 64738
    udp:
      - 64738

  enable_control: true
  control:
    ip: "0.0.0.0"
    port: 9090

deployment:
  admin:
    enable_admin_ui: true

    allow_admin: # https://nginx.org/en/docs/http/ngx_http_access_module.html#allow
      - 0.0.0.0/0 # We need to restrict ip access rules for security. 0.0.0.0/0 is for test.

    admin_key:
      - name: "nayls"
        key: 1234567890
        role: admin # admin: manage all configuration data

  etcd:
    host: # it's possible to define multiple etcd hosts addresses of the same etcd cluster.
      - "http://etcd-1:2379" # multiple etcd address
    prefix: "/apisix" # apisix configurations prefix
    timeout: 30 # 30 seconds
  1. Create docker-compose.yaml
services:
  apisix:
    image: "apache/apisix:3.14.1-debian"
    restart: always
    volumes:
      - ./conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
    depends_on:
      - etcd-1
    ports:
      - "9180:9180/tcp"
      - "9080:9080/tcp"
      - "9091:9091/tcp"
      - "9443:9443/tcp"
      - "9090:9090/tcp"
      - "64738:64738/tcp"
      - "64738:64738/udp"
    networks:
      - apisix

  etcd-1:
    image: quay.io/coreos/etcd:v3.6.6
    restart: always
    networks:
      - apisix
    ports:
      - "2379:2379"
      - "2380:2380"
    volumes:
      - etcd-1-data:/etcd-data
    command: |
      /usr/local/bin/etcd
      --name=etcd-1
      --initial-advertise-peer-urls=http://etcd-1:2380
      --listen-peer-urls=http://0.0.0.0:2380
      --advertise-client-urls=http://etcd-1:2379
      --listen-client-urls=http://0.0.0.0:2379
      --initial-cluster etcd-1=http://etcd-1:2380
      --data-dir=/etcd-data

networks:
  apisix:
    driver: bridge

volumes:
  etcd-1-data:
  1. Run environment docker compose up -d
  2. Create upstream
curl http://127.0.0.1:9180/apisix/admin/upstreams/1 -H 'X-API-KEY: 1234567890' -X PUT -d '
{
  "name": "upstream_test",
  "nodes": {
    "192.168.1.50:64738": 1
  },
  "type": "chash",
  "key": "remote_addr",
  "hash_on": "vars",
  "timeout": {
    "connect": 40.0,
    "send": 40.0,
    "read": 40.0
  },
  "retries": 3,
  "retry_timeout": 40,
  "checks": {
    "active": {
      "type": "tcp",
      "port": 64738,
      "timeout": 40,
      "concurrency": 2,
      "healthy": {
        "interval": 60,
        "successes": 2
      },
      "unhealthy": {
        "interval": 60,
        "failures": 2
      }
    }
  }
}'
  1. Create stream-route
curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 -H 'X-API-KEY: 1234567890' -X PUT -d '
{
  "name": "stream_test",
  "upstream_id": "1",
  "server_port": 64738
}'

Environment

  • APISIX version (run apisix version): 3.14.1
  • Operating system (run uname -a): Linux 7f7ed4f3925c 6.8.12-16-pve change: added doc of how to load plugin. #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-16 (2025-10-14T08:58Z) x86_64 GNU/Linux
  • OpenResty / Nginx version (run openresty -V or nginx -V): nginx version: openresty/1.27.1.2
  • etcd version, if relevant (run curl http://127.0.0.1:9090/v1/server_info): 3.6.6
  • APISIX Dashboard version, if relevant:
  • Plugin runner version, for issues related to plugin runners:
  • LuaRocks version, for installation issues (run luarocks --version):

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status

    📋 Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions