diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d00bfc3e..7d7884def 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -101,7 +101,7 @@ jobs: run: sudo yarn global add serverless@^2.72.2 --prefix /usr/local - name: Install Crossbuild Deps run: | - sudo apt-get update + sudo apt-get update --allow-releaseinfo-change --fix-missing sudo apt install -y qemu-user-static binfmt-support - name: Install dependencies diff --git a/.github/workflows/check-size.yml b/.github/workflows/check-size.yml index 69d578d05..1c247e66d 100644 --- a/.github/workflows/check-size.yml +++ b/.github/workflows/check-size.yml @@ -15,7 +15,9 @@ jobs: python-version: 3.7 - name: Install Crossbuild Deps - run: sudo apt install -y qemu-user-static binfmt-support + run: | + sudo apt-get update --allow-releaseinfo-change --fix-missing + sudo apt install -y qemu-user-static binfmt-support - name: Install dependencies run: | diff --git a/datadog_lambda/tag_object.py b/datadog_lambda/tag_object.py index 7ca8512c3..02dc3ebef 100644 --- a/datadog_lambda/tag_object.py +++ b/datadog_lambda/tag_object.py @@ -3,6 +3,7 @@ # This product includes software developed at Datadog (https://www.datadoghq.com/). # Copyright 2021 Datadog, Inc. +from decimal import Decimal import json import logging @@ -26,7 +27,7 @@ def tag_object(span, key, obj, depth=0): except ValueError: redacted = _redact_val(key, obj[0:5000]) return span.set_tag(key, redacted) - if isinstance(obj, int) or isinstance(obj, float): + if isinstance(obj, int) or isinstance(obj, float) or isinstance(obj, Decimal): return span.set_tag(key, obj) if isinstance(obj, list): for k, v in enumerate(obj): diff --git a/tests/test_tag_object.py b/tests/test_tag_object.py index 0936f0c5c..cdb2941c5 100644 --- a/tests/test_tag_object.py +++ b/tests/test_tag_object.py @@ -1,4 +1,5 @@ import unittest +from decimal import Decimal try: from unittest.mock import MagicMock, patch, call @@ -82,3 +83,14 @@ def test_unicode_tag_object(self): ], True, ) + + def test_decimal_tag_object(self): + payload = {"myValue": Decimal(500.50)} + spanMock = MagicMock() + tag_object(spanMock, "function.request", payload) + spanMock.set_tag.assert_has_calls( + [ + call("function.request.myValue", Decimal(500.50)), + ], + True, + )