Skip to content

Commit 237d631

Browse files
dougbyrnebeniwohli
authored andcommitted
Elasticsearch Instrumentation: Safer json serialization (#403)
* Handle datetime objects in elasticsearch queries * Use compat.text_type instead of str for python version compatibility
1 parent 3b8419b commit 237d631

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

elasticapm/instrumentation/packages/elasticsearch.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
import elasticapm
3737
from elasticapm.instrumentation.packages.base import AbstractInstrumentedModule
38+
from elasticapm.utils import compat
3839

3940
logger = logging.getLogger(__name__)
4041

@@ -74,7 +75,7 @@ def call(self, module, method, wrapped, instance, args, kwargs):
7475
# we assume utf8, which is the default
7576
query.append("q=" + params["q"].decode("utf-8", errors="replace"))
7677
if isinstance(body, dict) and "query" in body:
77-
query.append(json.dumps(body["query"]))
78+
query.append(json.dumps(body["query"], default=compat.text_type))
7879
context["db"]["statement"] = "\n\n".join(query)
7980
elif api_method == "Elasticsearch.update":
8081
if isinstance(body, dict) and "script" in body:

0 commit comments

Comments
 (0)