The LogDog Coordinator is an AppEngine application that serves as a central coordinating and interactive authority for a LogDog instance. The Coordinator is responsible for:
A Coordinator occupies the AppEngine space of a given cloud project, and assumes ownership of that project's resources. It is composed of several cooperative AppEngine services.
It is a AppEngine Flex instance using “custom” runtime, since Flex is the only supported type of AppEngine instance that can stream responses to the clients, and we do that when clients read unfinalized logs. It is a custom runtime, because Flex doesn't support Go runtimes newer than go1.15. To use a newer version we need to build a Docker image ourselves (which requires specifying “custom” runtime).
The services service exposes management endpoints to the instance's microservices, notably the Collector and Archivist microservices. These endpoints are used to coordinate the microservice-managed aspects of the log stream lifecycle.
The static service hosts static content, including:
Prefer to use the deployment automation. In particular, there's no other easy way to deploy
logs module, since it uses a custom Docker image (because the latest GAE Flex Go runtime is stuck in the past on go1.15 version and we have to bring our own image to use a newer version).
To deploy other modules from the local checkout, you can use
gae.py tool. E.g. to update all modules other than
cd coordinator gae.py upload -A luci-logdog-dev default services static gae.py switch -A luci-logdog-dev