mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-02 12:22:18 +00:00
## What changed?
Add a new search attribute `TemporalReportedProblems` when a workflow
task fails or timeouts N consecutive times
## Why?
Enables users to easily discover workflows that are not making progress.
After a workflow task fails or times out N consecutive times a Search
Attribute, `TemporalReportedProblems` a `KeywordList`, will be added
with two entries, a `cause` and a `category`. These search attributes
will be queryable by users with queries like:
* `TemporalReportedProblems IS NOT NULL`
* `TemporalReportedProblems IN ('category=WorkflowTaskFailed')` or
`TemporalReportedProblems IN ('category=WorkflowTaskTimedout')`
* `'TemporalReportedProblems IN ("cause=UnhandledApplicationFailure")'
OR 'TemporalReportedProblems IN ("cause=ScheduleToCloseTimeout")'`
## How did you test it?
- [ ] built
- [X] run locally and tested manually
- [ ] covered by existing tests
- [ ] added new unit test(s)
- [X] added new functional test(s)
- [x] added new xdc test(s)
## Potential risks
Flapping _could_ happen with this change, but is unlikely. There's a
possibility of overloading the visibility system, but these changes are
protected with a dynamic config.
---------
Co-authored-by: Roey Berman <[email protected]>
128 lines
3.3 KiB
JSON
128 lines
3.3 KiB
JSON
{
|
|
"order": 0,
|
|
"index_patterns": [
|
|
"temporal_visibility_v1*"
|
|
],
|
|
"settings": {
|
|
"index": {
|
|
"number_of_shards": "1",
|
|
"number_of_replicas": "0",
|
|
"auto_expand_replicas": "0-2",
|
|
"search.idle.after": "365d",
|
|
"sort.field": [
|
|
"CloseTime",
|
|
"StartTime",
|
|
"RunId"
|
|
],
|
|
"sort.order": [
|
|
"desc",
|
|
"desc",
|
|
"desc"
|
|
],
|
|
"sort.missing": [
|
|
"_first",
|
|
"_first",
|
|
"_first"
|
|
]
|
|
}
|
|
},
|
|
"mappings": {
|
|
"dynamic": "false",
|
|
"properties": {
|
|
"NamespaceId": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalNamespaceDivision": {
|
|
"type": "keyword"
|
|
},
|
|
"WorkflowId": {
|
|
"type": "keyword"
|
|
},
|
|
"RunId": {
|
|
"type": "keyword"
|
|
},
|
|
"WorkflowType": {
|
|
"type": "keyword"
|
|
},
|
|
"StartTime": {
|
|
"type": "date_nanos"
|
|
},
|
|
"ExecutionTime": {
|
|
"type": "date_nanos"
|
|
},
|
|
"CloseTime": {
|
|
"type": "date_nanos"
|
|
},
|
|
"ExecutionDuration": {
|
|
"type": "long"
|
|
},
|
|
"ExecutionStatus": {
|
|
"type": "keyword"
|
|
},
|
|
"TaskQueue": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalChangeVersion": {
|
|
"type": "keyword"
|
|
},
|
|
"BatcherNamespace": {
|
|
"type": "keyword"
|
|
},
|
|
"BatcherUser": {
|
|
"type": "keyword"
|
|
},
|
|
"BinaryChecksums": {
|
|
"type": "keyword"
|
|
},
|
|
"HistoryLength": {
|
|
"type": "long"
|
|
},
|
|
"StateTransitionCount": {
|
|
"type": "long"
|
|
},
|
|
"TemporalScheduledStartTime": {
|
|
"type": "date_nanos"
|
|
},
|
|
"TemporalScheduledById": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalSchedulePaused": {
|
|
"type": "boolean"
|
|
},
|
|
"HistorySizeBytes": {
|
|
"type": "long"
|
|
},
|
|
"BuildIds": {
|
|
"type": "keyword"
|
|
},
|
|
"ParentWorkflowId": {
|
|
"type": "keyword"
|
|
},
|
|
"ParentRunId": {
|
|
"type": "keyword"
|
|
},
|
|
"RootWorkflowId": {
|
|
"type": "keyword"
|
|
},
|
|
"RootRunId": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalPauseInfo": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalWorkerDeploymentVersion": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalWorkflowVersioningBehavior": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalWorkerDeployment": {
|
|
"type": "keyword"
|
|
},
|
|
"TemporalReportedProblems": {
|
|
"type": "keyword"
|
|
}
|
|
}
|
|
},
|
|
"aliases": {}
|
|
} |