Skip to main content
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

FieldSourceExample
instanceIdUUID v4, auto-generated at each startup550e8400-e29b-41d4-a716-446655440000
hostnameAuto-detected (see below)order-service-7d4b8c9f5-x2k9p
environmentAuto-detected (see below)production
serviceNamespring.application.nameorder-service
versionspring.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:
PrioritySourceTypical Use
1POD_NAME environment variableKubernetes (set via Downward API)
2HOSTNAME environment variableDocker, Linux
3InetAddress.getLocalHost().getHostName()Fallback
4unknown-<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:
PrioritySourceExample
1flowwarden.reporter.environment propertyExplicit configuration — always wins
2FLOWWARDEN_ENVIRONMENT env var
3ENVIRONMENT env var
4ENV env var
5Kubernetes namespace file/var/run/secrets/kubernetes.io/serviceaccount/namespace
6First active Spring profilespring.profiles.active
7"default"Fallback

Kubernetes Namespace Mapping

When the environment is detected from a Kubernetes namespace, common patterns are mapped to standard names:
Namespace containsResolved as
prodproduction
staging or stagstaging
devdevelopment
testtest
anything elsenamespace 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.