@VisibleForTesting
  JobCoordinatorMetadataManagerMetrics getMetrics() {
    return metrics;
  }
The properties of the epoch identifier are as follows
 1. Unique across applications in the cluster
 2. Remains unchanged within a single deployment lifecycle
 3. Remains unchanged across application attempt within a single deployment lifecycle
 4. Changes across deployment lifecycle

For YARN environment:
Generate the epoch id using the execution container id that is passed through system environment. This isn't ideal
way of generating this ID, since it is YARN-specific. This is left as a legacy flow for backwards compatibility, as
the original implementation did not define a cluster-agnostic contract.
The format and property used to generate ID is specific to YARN and the specific format of the container name
is a public contract by YARN which is likely to remain backward compatible.

For non-YARN environments:
Extract this from the environment variable SAMZA_EPOCH_ID. This is a more generic way of obtaining an epoch id, but
it does require the resource management layer to inject this value.

@return an identifier associated with the job coordinator satisfying the above properties
samza-core/src/main/java/org/apache/samza/job/metadata/JobCoordinatorMetadataManager.java