Skip to main content
Version: Preview

Flink

Experimental
Creates:
AssetsLineageRun History

Configure in the UI

This plugin can be configured directly in the Marmot UI with a step-by-step wizard.

View Guide

The Flink plugin discovers jobs from an Apache Flink JobManager through its REST API. Each job becomes a Pipeline and each vertex of its job graph a Task, linked by CONTAINS edges from the Pipeline and DEPENDS_ON edges between Tasks taken from the job plan. The timestamps Flink keeps for a job's state changes (created, running, finished, failed, cancelled) are recorded as run history on the Pipeline.

The JobManager REST API needs no credentials. username/password and token are only for a proxy placed in front of it.

Naming

A Pipeline is named after the job. Flink lets several jobs share a name, in which case the most recently started job keeps the bare name and the others are named <name> (<jid>). A Task is named <pipeline name>/<vertex name>.

Jobs the JobManager still lists

The JobManager keeps listing finished, failed and cancelled jobs until it restarts. They are discovered by default; set include_completed: false to keep only jobs that are still running.

Example Configuration


host: "http://flink-jobmanager.internal:8081"
include_tasks: true
include_run_history: true
include_completed: true
filter:
include:
- "^etl_.*"
exclude:
- ".*_test$"
tags:
- "flink"
- "streaming"

Configuration

The following configuration options are available:

PropertyTypeRequiredDescription
external_links[]ExternalLinkfalseExternal links to show on all assets
filterFilterfalseFilter discovered assets by name (regex)
hoststringtrueJobManager REST URL, for example http://localhost:8081
include_completedboolfalseInclude the finished, failed and cancelled jobs the JobManager still lists
include_run_historyboolfalseRecord each job's state changes as run history
include_tasksboolfalseDiscover each job vertex as a Task asset
passwordstringfalsePassword for basic auth
tagsTagsConfigfalseTags to apply to discovered assets
tokenstringfalseBearer token, when a proxy in front of the JobManager requires it
usernamestringfalseUsername for basic auth, when a proxy in front of the JobManager requires it
verify_sslboolfalseVerify the JobManager's TLS certificate

Available Metadata

The following metadata fields are available:

FieldTypeDescription
descriptionstringOperator chain from the job plan
duration_msint64Job or vertex duration in milliseconds
end_timestringWhen the job or vertex reached its final state (RFC3339), absent while it runs
errorstringRoot cause of a failed job, trimmed to 500 characters
execution_modestringExecution mode (Flink 1.x only)
flink_versionstringVersion of the Flink cluster
is_stoppableboolWhether the job can be stopped with a savepoint
jidstringFlink job id
max_parallelismintConfigured maximum parallelism, absent when unset
operatorstringOperator name from the job plan, when Flink reports one
parallelismintJob parallelism from the execution config, or vertex parallelism
pipelinestringName of the Pipeline the vertex belongs to
read_bytesint64Bytes read by the vertex
read_recordsint64Records read by the vertex
restart_strategystringRestart strategy description
start_timestringWhen the job was submitted or the vertex started (RFC3339)
statestringJob state (RUNNING, FINISHED, FAILED, CANCELED, ...)
statusstringVertex status (RUNNING, FINISHED, FAILED, CANCELED, ...)
task_countsmap[string]intNumber of tasks per state (running, finished, failed, ...)
urlstringJob page in the Flink web UI
vertex_countintNumber of vertices in the job graph
vertex_idstringVertex id within the job graph
write_bytesint64Bytes written by the vertex
write_recordsint64Records written by the vertex