Hi,
We have setup Snowbridge to send HTTP requests to ServerSide GTM and we are seeing issues for a very low proportion of traffic but this remains fairly constant.
level=info msg="TargetResults:521,MsgFiltered:493,MsgSent:27,MsgFailed:1,OversizedTargetResults:0,OversizedMsgSent:0,OversizedMsgFailed:0,InvalidTargetResults:0,InvalidMsgSent:0,InvalidMsgFailed:0,MaxProcLatency:5005,MaxMsgLatency:5115,MaxFilterLatency:19,MaxTransformLatency:1,SumTransformLatency:12,SumProcLatency:5492,SumMsgLatency:9831,MinReqLatency:0,MaxReqLatency:5005,SumReqLatency:5478" name=Observer
level=warning msg="<mark>Retrying</mark> <mark>func</mark> (<mark>attempts</mark>: <mark>5</mark>): target.Write: Error sending http requests: 1 error occurred:\n\t* Post \"https://example.domain.com/com.snowplowanalytics.snowplow/enriched\": EOF\n\n"
I tried using the failure_target of stdout
to inspect the logs for the failing events to see if there are any commonalities but I can’t find any logs output. The log level is set to debug and I can see logs for the non-failed events appearing.
I have since tried another approach of outputting failed events to SQS queue as it’s likely we would need to diagnose or reprocess these. When Snowbridge starts it does so successfully. However, I still see errors in the logs but nothing in SQS.
config.hcl
source {
use "kinesis" {
stream_name = "${env("SB_ENV")}-snowplow-analytics-enriched-good"
region = "${env("AWS_REGION")}"
app_name = "${env("SB_APPNAME")}"
}
}
transform {
use "spGtmssPreview" {}
}
transform {
use "spEnrichedToJson" {}
}
target {
use "http" {
url = "https://example.domain.com/com.snowplowanalytics.snowplow/enriched"
request_timeout_in_seconds = 10
content_type = "application/json"
dynamic_headers = true
}
}
failure_target {
use "sqs" {
# SQS queue name
queue_name = "${env("SB_ENV")}-snowbridge-failevent"
# AWS region of SQS queue
region = "${env("AWS_REGION")}"
}
}
log_level = "${env("LOG_LEVEL")}"
Do you have any thoughts on what the issue could be?
Thanks,
Rob