roam/daily/2022-03-22.org
2022-04-23 00:39:06 -04:00

216 lines
8.7 KiB
Org Mode

:PROPERTIES:
:ID: f4acd678-6415-44ee-8ef3-113ba1234e43
:END:
#+title: 2022-03-22
* Debugging campaign tag automations
https://jira.aweber.io/browse/CCPANEL-12031
Looking into why the campaign engine / ruleset changes for [[id:d06d3ab4-c2d0-47c3-aae1-4395567fc3d2][Tag Normalization]] aren't having the intended effect in staging.
Looking at logs from the =campaign-tag-consumer=, it's loading the ruleset, and
triggering only on the exact-match tag, not all normalized tags.
#+begin_example
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"INFO","asctime":"2022-03-22T16:23:22.966801+0000","processName":"campaign-tag-consumer-1","message":"Received tag.v1 for subscriber dc827a46-4941-4988-8ffd-127cdb992def in account 26b49bc2-207e-4a33-b267-5b9e64f2702e","module":"campaign","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"WARNING","asctime":"2022-03-22T16:23:22.968646+0000","processName":"campaign-tag-consumer-1","message":"Lock of dc827a46-4941-4988-8ffd-127cdb992def failed","module":"consumer","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"WARNING","asctime":"2022-03-22T16:23:22.969219+0000","processName":"campaign-tag-consumer-1","message":"ProcessingException processing delivery 6825: subscriber-locked: dc827a46-4941-4988-8ffd-127cdb992def","module":"consumer","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"INFO","asctime":"2022-03-22T16:23:27.975047+0000","processName":"campaign-tag-consumer-1","message":"Received tag.v1 for subscriber dc827a46-4941-4988-8ffd-127cdb992def in account 26b49bc2-207e-4a33-b267-5b9e64f2702e","module":"campaign","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"INFO","asctime":"2022-03-22T16:23:28.219805+0000","processName":"campaign-tag-consumer-1","message":"Found 2 rulesets","module":"campaign","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"INFO","asctime":"2022-03-22T16:23:28.420992+0000","processName":"campaign-tag-consumer-1","message":"Processed action 396cd5d3-d410-4ae2-a991-b93a0b816600 (ruleset.email.action.compose_v1) in ruleset 01955ad5-cbca-455c-934f-d69a71a5578f for list 9f1db623-fbc3-4112-a2f3-ab563e37e131 from account 26b49bc2-207e-4a33-b267-5b9e64f2702e, subscriber dc827a46-4941-4988-8ffd-127cdb992def scope","module":"consumer","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
campaign-tag-consumer-78c84676f8-27hbr campaign-tag-consumer {"name":"rulesengine.campaign","levelname":"INFO","asctime":"2022-03-22T16:23:28.608207+0000","processName":"campaign-tag-consumer-1","message":"Subscriber dc827a46-4941-4988-8ffd-127cdb992def completed campaign ruleset 01955ad5-cbca-455c-934f-d69a71a5578f","module":"campaign","correlation_id":"75307660-bcd4-492b-ae98-cd5a1293ab28","exc_info":null}
#+end_example
The subscriber was created and tagged with the normalized version of the tag. It
is expected that it should trigger both the campaign using the normalized tag
/and/ the campaign using the non-normalized tag.
#+begin_src http :pretty :exports both :cache yes
GET http://tagging.aweberstage.com/entity/dc827a46-4941-4988-8ffd-127cdb992def
#+end_src
#+RESULTS[b55ea1d22803f0ef37c5fbadbfd8fb656624f40e]:
#+begin_example
{
"id": "dc827a46-4941-4988-8ffd-127cdb992def",
"entity_type": "subscriber",
"owner": "26b49bc2-207e-4a33-b267-5b9e64f2702e",
"parent": "9f1db623-fbc3-4112-a2f3-ab563e37e131",
"version": 1,
"created_at": "2022-03-22T16:23:19+0000",
"modified_at": "2022-03-22T16:23:19+0000",
"labels": [
"scott miller"
]
}
#+end_example
These are the rulesets for the normalized and non-normalized campaign triggers:
#+CAPTION: Campaign triggering on a normalized tag
#+begin_src http :pretty :exports both :cache yes
GET https://rule.aweberstage.com/01955ad5-cbca-455c-934f-d69a71a5578f
#+end_src
#+RESULTS[685774a46bbaf38b945afcc0952a390d1bc53ed3]:
#+begin_example
{
"id": "01955ad5-cbca-455c-934f-d69a71a5578f",
"version": 2,
"owner": "26b49bc2-207e-4a33-b267-5b9e64f2702e",
"parent": "9f1db623-fbc3-4112-a2f3-ab563e37e131",
"state": "active",
"system": false,
"iterator": null,
"events": [
{
"id": "b3b69bd4-0c7b-4253-ab65-e6fcbb726f07",
"type": "tag.v1",
"title": null,
"filter": {
"type": "all",
"criteria": [
{
"expect": true,
"kwargs": {
"key": "label",
"values": [
"scott miller"
]
},
"function": "rulesengine.filter.event_value_in",
"operator": "=="
},
{
"expect": true,
"kwargs": {
"list": "<event:list>",
"labels": [
"scott miller"
],
"account": "<event:account>",
"recipient": "<event:recipient>"
},
"function": "ruleset.tag.filter.any_tags_v1",
"operator": "=="
}
]
},
"parents": [],
"metadata": "tag.v1",
"recurring": false
}
],
"actions": [
{
"id": "396cd5d3-d410-4ae2-a991-b93a0b816600",
"title": null,
"parents": [
"b3b69bd4-0c7b-4253-ab65-e6fcbb726f07"
],
"metadata": "send-message",
"recurring": false,
"definition": {
"kwargs": {
"list": "<event:list>",
"account": "<event:account>",
"message": "394c27bf-5853-4b45-9ff1-a0637848f4b6",
"meapi_id": "6238dd85f227ef3f2d5ec3a5",
"recipient": "<event:recipient>"
},
"function": "ruleset.email.action.compose_v1"
}
}
]
}
#+end_example
#+CAPTION: Campaign triggering on a non-normalized tag
#+begin_src http :pretty :exports both :cache yes
GET https://rule.aweberstage.com/5ceb8b7d-9597-4927-917c-db7a3343860c
#+end_src
#+RESULTS[781befe5ea2d0073780b212d511eeffcc3d0a18d]:
#+begin_example
{
"id": "5ceb8b7d-9597-4927-917c-db7a3343860c",
"version": 2,
"owner": "26b49bc2-207e-4a33-b267-5b9e64f2702e",
"parent": "9f1db623-fbc3-4112-a2f3-ab563e37e131",
"state": "active",
"system": false,
"iterator": null,
"events": [
{
"id": "6ef2cd40-3ab0-4744-8f11-23b8d59ac810",
"type": "tag.v1",
"title": null,
"filter": {
"type": "all",
"criteria": [
{
"expect": true,
"kwargs": {
"key": "label",
"values": [
"scott miller"
]
},
"function": "rulesengine.filter.event_value_in",
"operator": "=="
},
{
"expect": true,
"kwargs": {
"list": "<event:list>",
"labels": [
"scott miller"
],
"account": "<event:account>",
"recipient": "<event:recipient>"
},
"function": "ruleset.tag.filter.any_tags_v1",
"operator": "=="
}
]
},
"parents": [],
"metadata": "tag.v1",
"recurring": false
}
],
"actions": [
{
"id": "0dd0fbbd-b275-4db6-b43d-81c89e75d2de",
"title": null,
"parents": [
"6ef2cd40-3ab0-4744-8f11-23b8d59ac810"
],
"metadata": "send-message",
"recurring": false,
"definition": {
"kwargs": {
"list": "<event:list>",
"account": "<event:account>",
"message": "a346d692-78b7-41f0-9063-e371f5e7f8d4",
"meapi_id": "6238dd12f227ef3f27843f63",
"recipient": "<event:recipient>"
},
"function": "ruleset.email.action.compose_v1"
}
}
]
}
#+end_example
In both cases, there is a generalized filter applied /before/ checking the tags
on the subscriber which is performing an exact match on the value in the tag
event. This is to ensure the campaign is only triggered when the subscriber is
/being tagged/ with one of the chosen tags. This check will have to be made
tag-aware such that it normalizes the values before comparing them if and only
if the event being compared is a =tag.v1= event.
Updated =rulesengine= in
https://gitlab.aweber.io/CC/Libraries/rulesengine/-/merge_requests/117.