Adding in task attempts drilldown
This commit is contained in:
@@ -170,6 +170,18 @@ namespace daggy::loggers::dag_run {
|
||||
return dagRuns_.at(dagRunID).dagSpec.tasks.at(taskName);
|
||||
}
|
||||
|
||||
TaskRecord OStreamLogger::getTaskRecord(DAGRunID dagRunID,
|
||||
const std::string &taskName)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(guard_);
|
||||
const auto &run = dagRuns_.at(dagRunID);
|
||||
|
||||
return TaskRecord{.task = run.dagSpec.tasks.at(taskName),
|
||||
.state = run.taskRunStates.at(taskName),
|
||||
.stateChanges = run.taskStateChanges.at(taskName),
|
||||
.attempts = run.taskAttempts.at(taskName)};
|
||||
}
|
||||
|
||||
RunState OStreamLogger::getTaskState(DAGRunID dagRunID,
|
||||
const std::string &taskName)
|
||||
{
|
||||
|
||||
@@ -252,6 +252,48 @@ namespace daggy::loggers::dag_run {
|
||||
return taskFromJSON(taskName, resp.as<std::string>());
|
||||
}
|
||||
|
||||
TaskRecord RedisLogger::getTaskRecord(DAGRunID dagRunID,
|
||||
const std::string &taskName)
|
||||
{
|
||||
// Task State
|
||||
auto taskState = RunState::_from_string(
|
||||
ctx_.query("HGET %s %s", getTaskStatesKey_(dagRunID).c_str(),
|
||||
taskName.c_str())
|
||||
.as<std::string>()
|
||||
.c_str());
|
||||
|
||||
// task
|
||||
auto task = taskFromJSON(
|
||||
taskName, ctx_.query("HGET %s %s", getTasksKey_(dagRunID).c_str(),
|
||||
taskName.c_str())
|
||||
.as<std::string>());
|
||||
|
||||
// Attempts
|
||||
auto attemptJSONS =
|
||||
ctx_.query("LRANGE %s 0 -1",
|
||||
getTaskAttemptKey_(dagRunID, taskName).c_str())
|
||||
.asList<std::string>();
|
||||
std::vector<AttemptRecord> attempts;
|
||||
std::transform(attemptJSONS.begin(), attemptJSONS.end(),
|
||||
std::back_inserter(attempts),
|
||||
[](const auto &s) { return attemptRecordFromJSON(s); });
|
||||
|
||||
// Populate stateUpdates
|
||||
auto taskStateUpdates =
|
||||
ctx_.query("LRANGE %s 0 -1",
|
||||
getTaskStateUpdateKey_(dagRunID, taskName).c_str())
|
||||
.asList<std::string>();
|
||||
std::vector<StateUpdateRecord> stateUpdates;
|
||||
std::transform(taskStateUpdates.begin(), taskStateUpdates.end(),
|
||||
std::back_inserter(stateUpdates),
|
||||
[](const auto &s) { return stateUpdateRecordFromJSON(s); });
|
||||
|
||||
return TaskRecord{.task = task,
|
||||
.state = taskState,
|
||||
.stateChanges = stateUpdates,
|
||||
.attempts = attempts};
|
||||
}
|
||||
|
||||
RunState RedisLogger::getTaskState(DAGRunID dagRunID,
|
||||
const std::string &taskName)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user