DSM Queue tab CloudWatch metrics empty: eventSourceARN used as queue identifier instead of short name
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 76/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Ruhig
- Tech-Stack
- aws, python
- Bereich
- cloud, observability-sre
Rechercherichtung
Beginne in datadog_lambda/tracing.py bei _dsm_set_checkpoint() und vergleiche anschließend die Behandlung von Queue-Namen in ddtrace/internal/datastreams/botocore.py, insbesondere get_queue_name() und die Aufrufer der SQS-Checkpoints. Erledigt ist die Aufgabe, wenn Lambda-DSM-Checkpoints das von der CloudWatch-Integration erwartete Format für Queue-Identifier verwenden, sodass Abfragen im Queue-Tab mit den SQS-Metrik-Tags übereinstimmen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
The DSM (Data Streams Monitoring) Queue tab shows empty CloudWatch metric graphs for SQS queues consumed by Lambda functions. The root cause is a mismatch between how datadog-lambda-python identifies queues in DSM checkpoints vs how the AWS CloudWatch integration tags SQS metrics.
Root Cause
In datadog_lambda/tracing.py, _dsm_set_checkpoint() passes the full eventSourceARN to set_consume_checkpoint():
# tracing.py line ~262
source_arn = first_record.get("eventSourceARN", "")
# ...
_dsm_set_checkpoint(context_json, event_type, source_arn) # full ARN
This results in a DSM checkpoint with:
topic:arn:aws:sqs:eu-west-2:123456789012:my-queue.fifo
The DSM Queue tab then uses this full ARN value to construct CloudWatch metric queries:
sum:aws.sqs.number_of_messages_received{queuename:arn:aws:sqs:eu-west-2:123456789012:my-queue.fifo}
But the AWS CloudWatch integration tags SQS metrics with just the short queue name (from the CloudWatch QueueName dimension):
queuename:my-queue.fifo
Result: the query returns no data, and all Queue tab graphs are empty.
Comparison with botocore SDK path
The botocore instrumentation in dd-trace-py correctly extracts the short name:
# ddtrace/internal/datastreams/botocore.py
def get_queue_name(params):
queue_url = params["QueueUrl"]
url = parse.urlparse(queue_url)
return url.path.rsplit("/", 1)[-1] # returns "my-queue.fifo"
Both handle_sqs_sns_produce() and handle_sqs_receive() use this short name as the DSM topic: tag. When SQS messages are consumed by a long-running process polling with sqs.receive_message(), the botocore instrumentation handles the DSM checkpoint and the Queue tab works correctly. The bug is specific to Lambda functions triggered by SQS event source mappings, where datadog-lambda-python handles the checkpoint instead.
Expected Behavior
_dsm_set_checkpoint() should extract the short queue name from the ARN before passing it to set_consume_checkpoint(), e.g.:
queue_name = source_arn.rsplit(":", 1)[-1] # "my-queue.fifo"
set_consume_checkpoint(event_type, queue_name, carrier_get, manual_checkpoint=False)
This would align the Lambda consumption path with the botocore SDK path, and the DSM Queue tab CloudWatch queries would match the actual queuename tag values.
Workaround
Users can manually change the metric filter from queuename to dd_resource_key (which contains the full ARN) to see data. But this must be done for each graph individually and doesn't persist.
Environment
datadog-lambdav8.123.0dd-trace-pyv4.6.0- Lambda Extension v92-next
- Python 3.14
- SQS FIFO queue consumed via Lambda event source mapping
- AWS region: eu-west-2
- Vorherrschende Sprache
- Python
- Sterne
- 102
- Forks
- 52
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus DataDog/datadog-lambda-python
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
DataDog/datadog-lambda-python#758 · 1 Reaktion ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
DataDog/datadog-lambda-python#688 ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
DataDog/datadog-lambda-python#682 · 1 Kommentar ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
DataDog/datadog-lambda-python#666 · 1 Reaktion ·
-
DataDog/datadog-lambda-python#633 · 2 Kommentare · 1 zugewiesene Person ·
Alle Issues in DataDog/datadog-lambda-python
Ähnliche Issues
-
bug confirmed issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
open-webui/open-webui#30750 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 Kommentar ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
-
good first issue
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100