Services and discovery
Why services aren't something you create, and how a monitor binds to one.
Services and discovery
A service is one of the "subjects" from Start here: a thing with an identity that outlives any one signal about it. Services, monitors, deployments and environments are all subjects; a service is the one you almost never create by hand.
Discovered, not declared
A service's existence is a fact your telemetry reports, not something you
configure ahead of time. The first time a log, trace or metric arrives
carrying a service.name, upzero creates the row for it. Every signal after
that refreshes it. There's no "add a service" button, and the
Services page says so when it's empty:
No services discovered yet. Services appear here once telemetry carrying a service name arrives. Check that your instrumentation sets
service.nameand is reaching this organization.
Once a service exists, you can annotate it (an owner, a tier, an environment, a repo link, a runbook link) without changing the discovery itself. Annotating a name discovery has never seen is refused rather than silently creating a row.
Monitors bind to services, they don't become one
A monitor is a different subject: something you declare
yourself, that probes a URL, port or DNS record from outside. A monitor
checking api.example.com and a service named payments-api emitting spans
can be the same underlying thing observed two ways, from outside and from
inside, so a monitor carries an optional link to a service. Binding them
lets the console and your objectives treat the pair as one subject without
merging their data into a single table.
See resources and Kinds for how a service's annotations can also be declared from git.