Class ScalingMetricCollector
- java.lang.Object
-
- org.apache.flink.kubernetes.operator.autoscaler.ScalingMetricCollector
-
- Direct Known Subclasses:
RestApiMetricsCollector
public abstract class ScalingMetricCollector extends java.lang.Object
Metric collector using flink rest api.
-
-
Constructor Summary
Constructors Constructor Description ScalingMetricCollector()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
cleanup(AbstractFlinkResource<?,?> cr)
protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>>>
getAvailableVertexMetricNames()
protected java.util.Map<java.lang.String,FlinkMetric>
getFilteredVertexMetricNames(org.apache.flink.client.program.rest.RestClusterClient<?> restClient, org.apache.flink.api.common.JobID jobID, org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID, JobTopology topology)
Query and filter metric names for a given job vertex.protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,java.util.SortedMap<java.time.Instant,CollectedMetrics>>
getHistories()
protected JobTopology
getJobTopology(FlinkService flinkService, org.apache.flink.configuration.Configuration conf, AutoScalerInfo scalerInfo, org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
protected JobTopology
getJobTopology(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
protected java.time.Instant
getJobUpdateTs(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
protected java.time.Duration
getMetricWindowSize(org.apache.flink.configuration.Configuration conf)
protected java.util.Collection<org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric>
queryAggregatedMetricNames(org.apache.flink.client.program.rest.RestClusterClient<?> restClient, org.apache.flink.api.common.JobID jobID, org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID)
protected abstract java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<FlinkMetric,org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric>>
queryAllAggregatedMetrics(AbstractFlinkResource<?,?> cr, FlinkService flinkService, org.apache.flink.configuration.Configuration conf, java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>> filteredVertexMetricNames)
protected java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>>
queryFilteredMetricNames(FlinkService flinkService, AbstractFlinkResource<?,?> cr, org.apache.flink.configuration.Configuration conf, JobTopology topology)
Query the available metric names for each job vertex.protected void
setClock(java.time.Clock clock)
CollectedMetricHistory
updateMetrics(AbstractFlinkResource<?,?> cr, AutoScalerInfo autoscalerInfo, FlinkService flinkService, org.apache.flink.configuration.Configuration conf)
-
-
-
Method Detail
-
updateMetrics
public CollectedMetricHistory updateMetrics(AbstractFlinkResource<?,?> cr, AutoScalerInfo autoscalerInfo, FlinkService flinkService, org.apache.flink.configuration.Configuration conf) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getMetricWindowSize
protected java.time.Duration getMetricWindowSize(org.apache.flink.configuration.Configuration conf)
-
getJobUpdateTs
@VisibleForTesting protected java.time.Instant getJobUpdateTs(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
-
getJobTopology
protected JobTopology getJobTopology(FlinkService flinkService, org.apache.flink.configuration.Configuration conf, AutoScalerInfo scalerInfo, org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo) throws java.lang.Exception
- Throws:
java.lang.Exception
-
getJobTopology
@VisibleForTesting protected JobTopology getJobTopology(org.apache.flink.runtime.rest.messages.job.JobDetailsInfo jobDetailsInfo)
-
queryFilteredMetricNames
protected java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>> queryFilteredMetricNames(FlinkService flinkService, AbstractFlinkResource<?,?> cr, org.apache.flink.configuration.Configuration conf, JobTopology topology)
Query the available metric names for each job vertex.
-
getFilteredVertexMetricNames
protected java.util.Map<java.lang.String,FlinkMetric> getFilteredVertexMetricNames(org.apache.flink.client.program.rest.RestClusterClient<?> restClient, org.apache.flink.api.common.JobID jobID, org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID, JobTopology topology)
Query and filter metric names for a given job vertex.- Parameters:
restClient
- Flink rest client.jobID
- Job Id.jobVertexID
- Job Vertex Id.- Returns:
- Map of filtered metric names.
-
queryAggregatedMetricNames
@VisibleForTesting protected java.util.Collection<org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric> queryAggregatedMetricNames(org.apache.flink.client.program.rest.RestClusterClient<?> restClient, org.apache.flink.api.common.JobID jobID, org.apache.flink.runtime.jobgraph.JobVertexID jobVertexID) throws java.lang.Exception
- Throws:
java.lang.Exception
-
queryAllAggregatedMetrics
protected abstract java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<FlinkMetric,org.apache.flink.runtime.rest.messages.job.metrics.AggregatedMetric>> queryAllAggregatedMetrics(AbstractFlinkResource<?,?> cr, FlinkService flinkService, org.apache.flink.configuration.Configuration conf, java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>> filteredVertexMetricNames)
-
cleanup
public void cleanup(AbstractFlinkResource<?,?> cr)
-
setClock
@VisibleForTesting protected void setClock(java.time.Clock clock)
-
getAvailableVertexMetricNames
@VisibleForTesting protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,java.util.Map<org.apache.flink.runtime.jobgraph.JobVertexID,java.util.Map<java.lang.String,FlinkMetric>>> getAvailableVertexMetricNames()
-
getHistories
@VisibleForTesting protected java.util.Map<io.javaoperatorsdk.operator.processing.event.ResourceID,java.util.SortedMap<java.time.Instant,CollectedMetrics>> getHistories()
-
-