Each application instance is identified by a UUID generated at startup, combined with human-readable deployment metadata. The Console uses the UUID internally and displays the metadata in the UI.
Identity Fields
Field Source Example instanceIdUUID v4, auto-generated at each startup 550e8400-e29b-41d4-a716-446655440000hostnameAuto-detected (see below) order-service-7d4b8c9f5-x2k9penvironmentAuto-detected (see below) productionserviceNamespring.application.nameorder-serviceversionspring.application.version or Implementation-Version from manifest2.1.0
The instanceId changes on every restart. It is a technical key — users never see it. The Console displays hostname and serviceName instead.
Hostname Resolution
The Reporter resolves the hostname using this priority order:
Priority Source Typical Use 1 POD_NAME environment variableKubernetes (set via Downward API) 2 HOSTNAME environment variableDocker, Linux 3 InetAddress.getLocalHost().getHostName()Fallback 4 unknown-<uuid-prefix>Last resort if all above fail
In Kubernetes, expose the pod name as an environment variable for clean hostnames in the Console: env :
- name : POD_NAME
valueFrom :
fieldRef :
fieldPath : metadata.name
Environment Resolution
The environment is resolved automatically using this priority order:
Priority Source Example 1 flowwarden.reporter.environment propertyExplicit configuration — always wins 2 FLOWWARDEN_ENVIRONMENT env var3 ENVIRONMENT env var4 ENV env var5 Kubernetes namespace file /var/run/secrets/kubernetes.io/serviceaccount/namespace6 First active Spring profile spring.profiles.active7 "default"Fallback
Kubernetes Namespace Mapping
When the environment is detected from a Kubernetes namespace, common patterns are mapped to standard names:
Namespace contains Resolved as prodproductionstaging or stagstagingdevdevelopmenttesttestanything else namespace name as-is
Overriding
You can always set the environment explicitly in your configuration:
flowwarden :
reporter :
environment : production
This takes the highest priority and skips all auto-detection.
For full control over instance identification, replace the InstanceIdentifier bean:
@ Bean
public InstanceIdentifier instanceIdentifier ( Environment env,
FlowWardenReporterProperties props) {
// Your custom logic
return new InstanceIdentifier (env, props);
}
See Also
Configuration All Reporter configuration properties including environment.
Heartbeat & Metrics How identity data is included in each heartbeat.