Class KubernetesAutoScalerStateStore

  • All Implemented Interfaces:
    org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>

    public class KubernetesAutoScalerStateStore
    extends java.lang.Object
    implements org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
    An AutoscalerStateStore which persists its state in Kubernetes ConfigMaps.
    • Field Detail

      • SCALING_HISTORY_KEY

        @VisibleForTesting
        protected static final java.lang.String SCALING_HISTORY_KEY
        See Also:
        Constant Field Values
      • COLLECTED_METRICS_KEY

        @VisibleForTesting
        protected static final java.lang.String COLLECTED_METRICS_KEY
        See Also:
        Constant Field Values
      • PARALLELISM_OVERRIDES_KEY

        @VisibleForTesting
        protected static final java.lang.String PARALLELISM_OVERRIDES_KEY
        See Also:
        Constant Field Values
      • MAX_CM_BYTES

        @VisibleForTesting
        protected static final int MAX_CM_BYTES
        See Also:
        Constant Field Values
      • YAML_MAPPER

        protected static final com.fasterxml.jackson.databind.ObjectMapper YAML_MAPPER
    • Constructor Detail

      • KubernetesAutoScalerStateStore

        public KubernetesAutoScalerStateStore​(ConfigMapStore configMapStore)
    • Method Detail

      • storeScalingHistory

        public void storeScalingHistory​(KubernetesJobAutoScalerContext jobContext,
                                        java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.SortedMap<java.time.Instant,​org.apache.flink.autoscaler.ScalingSummary>> scalingHistory)
        Specified by:
        storeScalingHistory in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • getScalingHistory

        public java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.SortedMap<java.time.Instant,​org.apache.flink.autoscaler.ScalingSummary>> getScalingHistory​(KubernetesJobAutoScalerContext jobContext)
        Specified by:
        getScalingHistory in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • removeScalingHistory

        public void removeScalingHistory​(KubernetesJobAutoScalerContext jobContext)
        Specified by:
        removeScalingHistory in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • storeCollectedMetrics

        public void storeCollectedMetrics​(KubernetesJobAutoScalerContext jobContext,
                                          java.util.SortedMap<java.time.Instant,​org.apache.flink.autoscaler.metrics.CollectedMetrics> metrics)
        Specified by:
        storeCollectedMetrics in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • getCollectedMetrics

        public java.util.SortedMap<java.time.Instant,​org.apache.flink.autoscaler.metrics.CollectedMetrics> getCollectedMetrics​(KubernetesJobAutoScalerContext jobContext)
        Specified by:
        getCollectedMetrics in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • removeCollectedMetrics

        public void removeCollectedMetrics​(KubernetesJobAutoScalerContext jobContext)
        Specified by:
        removeCollectedMetrics in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • storeParallelismOverrides

        public void storeParallelismOverrides​(KubernetesJobAutoScalerContext jobContext,
                                              java.util.Map<java.lang.String,​java.lang.String> parallelismOverrides)
        Specified by:
        storeParallelismOverrides in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • getParallelismOverrides

        public java.util.Map<java.lang.String,​java.lang.String> getParallelismOverrides​(KubernetesJobAutoScalerContext jobContext)
        Specified by:
        getParallelismOverrides in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • removeParallelismOverrides

        public void removeParallelismOverrides​(KubernetesJobAutoScalerContext jobContext)
        Specified by:
        removeParallelismOverrides in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • removeInfoFromCache

        public void removeInfoFromCache​(io.javaoperatorsdk.operator.processing.event.ResourceID resourceID)
        Specified by:
        removeInfoFromCache in interface org.apache.flink.autoscaler.state.AutoScalerStateStore<io.javaoperatorsdk.operator.processing.event.ResourceID,​KubernetesJobAutoScalerContext>
      • serializeScalingHistory

        protected static java.lang.String serializeScalingHistory​(java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,​java.util.SortedMap<java.time.Instant,​org.apache.flink.autoscaler.ScalingSummary>> scalingHistory)
      • serializeEvaluatedMetrics

        @VisibleForTesting
        protected static java.lang.String serializeEvaluatedMetrics​(java.util.SortedMap<java.time.Instant,​org.apache.flink.autoscaler.metrics.CollectedMetrics> evaluatedMetrics)