Class MetricsEnvironment
Users should not interact directly with this class. Instead, use Metrics and the
returned objects to create and modify metrics.
The runner should create a MetricsContainer for each context in which metrics are
reported (by step and name) and call setCurrentContainer(org.apache.beam.sdk.metrics.MetricsContainer) before invoking any code that
may update metrics within that step. It should call setCurrentContainer(org.apache.beam.sdk.metrics.MetricsContainer) again to restore
the previous container.
Alternatively, the runner can use scopedMetricsContainer(MetricsContainer) to set the
container for the current thread and get a Closeable that will restore the previous
container when closed.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic interfaceSet theMetricsContainerfor the associatedMetricsEnvironment. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic @Nullable MetricsContainerReturn theMetricsContainerfor the current thread.Returns the container holder for the current thread.static @Nullable MetricsContainerReturn theMetricsContainerfor the current process.static booleanIndicates whether metrics reporting is supported.static CloseablescopedMetricsContainer(MetricsContainer container) Set theMetricsContainerfor the current thread.static @Nullable MetricsContainersetCurrentContainer(@Nullable MetricsContainer container) Set theMetricsContainerfor the current thread.static voidsetMetricsSupported(boolean supported) Called by the run to indicate whether metrics reporting is supported.static @Nullable MetricsContainersetProcessWideContainer(@Nullable MetricsContainer container) Set theMetricsContainerfor the current process.
-
Constructor Details
-
MetricsEnvironment
public MetricsEnvironment()
-
-
Method Details
-
getMetricsEnvironmentStateForCurrentThread
public static MetricsEnvironment.MetricsEnvironmentState getMetricsEnvironmentStateForCurrentThread()Returns the container holder for the current thread. -
setCurrentContainer
Set theMetricsContainerfor the current thread.- Returns:
- The previous container for the current thread.
-
setProcessWideContainer
public static @Nullable MetricsContainer setProcessWideContainer(@Nullable MetricsContainer container) Set theMetricsContainerfor the current process.- Returns:
- The previous container for the current process.
-
setMetricsSupported
public static void setMetricsSupported(boolean supported) Called by the run to indicate whether metrics reporting is supported. -
isMetricsSupported
public static boolean isMetricsSupported()Indicates whether metrics reporting is supported. -
scopedMetricsContainer
Set theMetricsContainerfor the current thread.- Returns:
- A
Closeablethat will reset the current container to the previousMetricsContainerwhen closed.
-
getCurrentContainer
Return theMetricsContainerfor the current thread.May return null if metrics are not supported by the current runner or if the current thread is not a work-execution thread. The first time this happens in a given thread it will log a diagnostic message.
-
getProcessWideContainer
Return theMetricsContainerfor the current process.
-