Benoit Perigaud
08/15/2024, 11:14 AM{
"type": "event",
"match": {
"prefect.resource.id": "prefect.flow-run.*"
},
"match_related": {
"prefect.resource.name": [
"*-extract"
],
"prefect.resource.role": "flow"
},
"after": [],
"expect": [
"prefect.flow-run.Crashed",
"prefect.flow-run.Failed"
],
"for_each": [
"prefect.resource.id"
],
"posture": "Reactive",
"threshold": 1,
"within": 0
}
Marvin
08/15/2024, 11:14 AM"within": 0
field. Typically, within
should be set to a positive value representing the time window within which the events must occur.
Here’s the relevant schema from the Prefect documentation:
https://docs.prefect.io/latest/concepts/automations/
2. There is a related issue on GitHub where a trigger with the within
field fails. The error might not be directly applicable but indicates potential issues with the use of the within
field.
https://github.com/PrefectHQ/prefect/issues/14309
Try adjusting the within
value to a positive integer representing an appropriate duration in seconds. If the issue persists, examine whether the events you expect ("prefect.flow-run.Crashed"
and "prefect.flow-run.Failed"
) are indeed occurring and match the resource criteria specified.
For further reference, you can look into specific configurations and their proper usage:
https://docs.prefect.io/latest/guides/state-change-hooks/
Make sure the other fields, such as match
and match_related
, are correctly specifying the required resources.Benoit Perigaud
08/15/2024, 11:18 AM{
"type": "event",
"match": {
"prefect.resource.id": "prefect.flow-run.*"
},
"match_related": {
"prefect.resource.id": [
"prefect.flow.96b40478-de20-4388-8961-9bb9b0189dd3",
"prefect.flow.0b735bb9-2fb5-483b-8115-ff2ec3eaa913"
],
"prefect.resource.role": "flow"
},
"after": [],
"expect": [
"prefect.flow-run.Crashed",
"prefect.flow-run.Failed",
"prefect.flow-run.TimedOut"
],
"for_each": [
"prefect.resource.id"
],
"posture": "Reactive",
"threshold": 1,
"within": 0
}
even with within
being 0. But the problem with the one just above is that I need to list all the flows 1 by 1 and I don’t want to do that. I want to check all the flows that have a name finishing with -extract
Marvin
08/15/2024, 11:19 AMwithin
field being 0
is acceptable.
To ensure your automation trigger works without specifying each flow individually and instead matches flow names ending with -extract
, you should adjust your match_related
criteria correctly. Based on the documentation, it seems your approach should work, but perhaps there's a syntax issue with wildcards.
Let's refine your configuration by ensuring the correct usage of wildcards:
json
{
"type": "event",
"match": {
"prefect.resource.id": "prefect.flow-run.*"
},
"match_related": {
"prefect.resource.name": ["*-extract"],
"prefect.resource.role": "flow"
},
"after": [],
"expect": [
"prefect.flow-run.Crashed",
"prefect.flow-run.Failed"
],
"for_each": [
"prefect.resource.id"
],
"posture": "Reactive",
"threshold": 1,
"within": 0
}
Ensure that:
1. The wildcard *-extract
correctly matches the required flow names.
2. The `prefect.resource.role`: flow
is appropriately set.
If the primary issue persists, review the documentation for any caveats related to wildcard matching in match_related
properties. For more detailed guidance, consult the Prefect Automations Documentation and verify your flow names and roles are suitable.
Would you like me to explore more details on wildcard usage within Prefect automations?