Discovery
Live application discovery, force-sync, namespace exclusion, and multi-replica coordination.
Discovery is the service that turns running workloads into applications and emits events when anything changes. It is one of the three flagship pillars in the Community Edition.
Live application discovery
Discovery starts informers for every Kubernetes kind telark tracks: Deployments, StatefulSets, DaemonSets, Jobs, CronJobs, Services, Ingresses, ConfigMaps, Secrets, PVCs, HPAs, VPAs, NetworkPolicies. As events arrive they are coalesced through a Redis stream so a single logical change does not produce a storm of records.
Each cycle records:
class— scaling, image update, config drift, incident, or topology.severity— informational, warning, or critical.generation— monotonic counter for the application.snapshotRef— pointer to the snapshot taken before the change.
Namespace exclusion
Excluded namespaces are skipped at the listing layer. The exclusion list lives in the GlobalConfig CRD and is honoured by every API path that returns resource state.
Force-sync
POST /v1/applications/{name}/sync publishes a marker on the
discovery stream. The next-available discovery replica picks it up,
re-runs the discovery cycle for that application, and writes the
result.
Multi-replica coordination
Discovery replicas elect a leader via Redis. The leader owns informer state; followers serve read traffic and process force-sync markers in the consumer group. Adding replicas is safe and does not duplicate work.