feat: add Spark History Server link to job details#113
Open
Shivang Nagta (ShivangNagta) wants to merge 1 commit into
Open
feat: add Spark History Server link to job details#113Shivang Nagta (ShivangNagta) wants to merge 1 commit into
Shivang Nagta (ShivangNagta) wants to merge 1 commit into
Conversation
| <Button | ||
| styleType='text-blue' | ||
| as='externalLink' | ||
| href={`https://spark-history.data-platform.aws.pattern.com/history/${jobData?.spark_application_id}/jobs/`} |
Collaborator
There was a problem hiding this comment.
Shivang Nagta (@ShivangNagta) this is going to be shipped with oss docker image. Lets find another way to inject this in UI
prasadlohakpure
requested changes
Jun 24, 2026
Yash Shrivastava (alephys26)
requested changes
Jun 24, 2026
Yash Shrivastava (alephys26)
left a comment
Contributor
There was a problem hiding this comment.
If this is going to the jobs table, add something more generic, maybe a json that stores key-value and the column is extra_job_attributes. And the frontend then uses the key as display text and the value as the hyperlink for all the attributes that exist for that column.
Or some better approach, anyway, a specific column for spark application ID is not what I would like to see.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a "Spark History" link on the job details page for Spark-on-EKS jobs.
The link needs Spark's runtime application id, which
surfaces on the SparkApplication Custom Resource status. So the sparkeks plugin now
captures
Status.SparkApplicationIDduring job monitoring and persists iton the job (new
spark_application_idcolumn, added asnot null default ''); the UI then renders the History Serverlink when an id is present, and hide it otherwise.
Test
Tested locally (migration, persistence, UI);
Haven't done e2e testing in sandbox as this adds no extra API call for the id. The monitor loop
already fetches
Status(forAppState), andSparkApplicationIDis just another field on that same object, so reading it adds no new call or failure mode.Confirmed the spark-operator populates Status.SparkApplicationID at runtime by running the operator's spark-pi example on a local kind cluster and reading the field back.

Manual seeding for testing (for spark and non-spark job)

Button Rendering in Job Details Page (for a spark job)

Some Notes (open for comments)
spark_application_idis the first plugin-specific column onjobs(the other columns are generic). It looks a little bit odd to me but Claude's reasoning for it was - "there's no generic home for plugin runtime metadata as of now", which seems to be true, because our use case is to store a runtime generated data (spark_application_id) in the heimdall database. I could not find in any other plugins, doing something like this.Some other options could be:
a. add a separate table for storing
spark_application_idwith a foreign key reference to the original job table. This separates the spark specific data from generic job table but that adds an extra API/read call, and also does not avoid the fact that we would still have to add spark specific table update somewhere inupdateAsyncJobStatusfunction.b. If more plugins need to store runtime metadata, a generic
metadatacolumn may be preferable to per-plugin columns. But this seems like an early abstraction.