Skip to content

Running ASAB microservices

Each instance of a ASAB microservice can actively advertise data about itself to the consensus.

Ephemeral and sequenced ZooKeeper nodes are used. It means that:

  • Each running instance creates a ZooKeeper node.
  • Each node is connected to the running microservice. When microservice stops, the ZooKeeper node disappears.

What you can learn from this data about each instance of ASAB microservices:

  • The instance is up and running
  • Cluster node on which it is running
  • Containerization technology (Docker, Podman or none)
  • Image version and when and how it was built
  • Time when the container was created and launched
  • Port open for web requests
  • Health if such microservice can indicate that

This data advertised by running ASAB microservices are among the inputs of cluster monitoring and serve in service discovery.

Example of /asab/run ZooKeeper node:

- /asab/run/
  - ASABConfigApplication.0000000108
  - ASABConfigApplication.0000000115
  - ASABConfigApplication.0000000144
  - ASABGovernatorApp.0000000095
  - ASABGovernatorApp.0000000098
  - ASABGovernatorApp.0000000104
  - ASABLibraryApplication.0000000113
  - ASABLibraryApplication.0000000114
  - ASABLibraryApplication.0000000147
  - ASABRemoteControlApp.0000000109
  - ASABRemoteControlApp.0000000110
  - ASABRemoteControlApp.0000000107

Example of /asab/run/ASABConfigApplication.0000000108:

{
    "host": "asab-config-3",
    "appclass": "ASABConfigApplication",
    "launch_time": "2023-12-19T09:52:46.468038Z",
    "process_id": 1,
    "instance_id": "asab-config-3",
    "node_id": "lmc03",
    "service_id": "asab-config",
    "containerized": true,
    "created_at": "2023-11-06T17:18:54.206827Z",
    "version": "v23.45",
    "CI_COMMIT_TAG": "v23.45",
    "CI_COMMIT_REF_NAME": "v23.45",
    "CI_COMMIT_SHA": "cf3be4570f363b8e9ed400ffbaea8babac957688",
    "CI_COMMIT_TIMESTAMP": "2023-11-06T17:15:54+00:00",
    "CI_JOB_ID": "55305",
    "CI_PIPELINE_CREATED_AT": "2023-11-06T17:16:58Z",
    "CI_RUNNER_ID": "74",
    "CI_RUNNER_EXECUTABLE_ARCH": "linux/amd64",
    "web": [
        [
            "0.0.0.0",
            8894
        ]
    ]
}