What is service discovery?
In a broad sense, service discovery is the automatic detection of devices, services, containers, etc. that exist on a network. In our case, service discovery is how Houston, by Turbine Labs, is able to see and take note of your services and instances, regardless of their provisioner.
What does tbncollect do?
tbncollect is a process that runs in your environment, customized to your infrastructure. It collects every running instance of a service that is correctly labeled using whatever labeling scheme is appropriate (e.g. Kubernetes and DC/OS use app labels, while EC2 uses instance tags). It can also read from a yaml file. By using tbcollect, you ensure that Houston has an accurate understanding of your services.
Services and instances are stored in the Turbine Labs API, mirroring the state of your environment, which is the source of truth. You can view them from Houston, but they are read-only.
tbncollect flags and environment variables
Each supported platform for tbncollect can be customized with flags or
environment variables. The list of available platforms can be found with
tbncollect -h, and individual platform flags can be found with
tbncollect <platform> -h. Flags can be passed on the command line, or can be
set via environment variables; for example
--cluster-label for the Kubernetes
platform can be set with
TBNCOLLECT_KUBERNETES_CLUSTER_LABEL. Note the
pattern of stating the command in caps, then the platform, and finally the
flag, also in caps, with all non-alphanumeric chars converted to underscores. So
for Marathon, the ENV variables would be set with
Deletion and creation flags
These flags control the behavior of API cluster creation or deletion based on the diff from the previous dataset found in the API and the currently collected services and instances.
--diff.ignore-createnot commonly used The default flag is
false, but if the value is set to
true, tbncollect will not create new services present in the collected dataset but missing from the API.
--diff.include-deleteuse with extreme caution—this is not recoverable The default flag is
false, but if it is set to
true, tbncollect will delete services present in the API but missing from the collected dataset. It can be useful to turn this on incidentally to help in service cleanup, but it is potentially very dangerous to leave on all the time.
Other general flags
--console.level=levelThe default value is
info. Other valid values are
none. This global flag selects the log level for console logs messages. All console logs are sent to