From 22538bf0580c3d6ae2ff4a929e50e17802f93e27 Mon Sep 17 00:00:00 2001 From: Diyaldine Maoulida <43171051+Diyal976@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:22:31 +0000 Subject: [PATCH 1/6] IT-245 - Align with elasticsearch-py 8.14.0 --- msa_sdk/elk.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/msa_sdk/elk.py b/msa_sdk/elk.py index 82fac7bd..69ff5126 100644 --- a/msa_sdk/elk.py +++ b/msa_sdk/elk.py @@ -8,7 +8,7 @@ from threading import Timer from elasticsearch import Elasticsearch -from elasticsearch import RequestsHttpConnection +from elastic_transport import RequestsHttpNode from elasticsearch import helpers as eshelpers from elasticsearch.serializer import JSONSerializer @@ -134,7 +134,7 @@ def __get_es_client(self): http_auth=self.auth_details, use_ssl=False, verify_certs=False, - connection_class=RequestsHttpConnection, + connection_class=RequestsHttpNode, serializer=self.serializer) def test_es_source(self): """ @@ -223,4 +223,4 @@ def emit(self, record): if len(self._buffer) >= self.buffer_size: self.flush() else: - self.__schedule_flush() \ No newline at end of file + self.__schedule_flush() From 2bfd9d051fabd4214dcd5876580447280fd9615e Mon Sep 17 00:00:00 2001 From: Diyaldine Maoulida <43171051+Diyal976@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:28:19 +0000 Subject: [PATCH 2/6] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index bcb36647..9222bdf5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ requests -elasticsearch==7.14.2 +elasticsearch==8.14.0 From d375de547cb6c0c63f6990b535182ce4ca1870d0 Mon Sep 17 00:00:00 2001 From: Diyaldine Maoulida <43171051+Diyal976@users.noreply.github.com> Date: Sun, 8 Dec 2024 10:15:48 +0000 Subject: [PATCH 3/6] Update elk.py - remove elasticsearch JSONSerializer JSONSerializer is no longer required from version 8.14.0. The ES library handles serialization and deserialization internally --- msa_sdk/elk.py | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/msa_sdk/elk.py b/msa_sdk/elk.py index 69ff5126..db1e7a2b 100644 --- a/msa_sdk/elk.py +++ b/msa_sdk/elk.py @@ -10,31 +10,8 @@ from elasticsearch import Elasticsearch from elastic_transport import RequestsHttpNode from elasticsearch import helpers as eshelpers -from elasticsearch.serializer import JSONSerializer - # Have a look at https://github.com/cmanaha/python-elasticsearch-logger -class EsSerializer(JSONSerializer): - """ - JSON serializer inherited from the elastic search JSON serializer. - - Allows to serialize logs for a elasticsearch use. - Manage the record.exc_info containing an exception type. - """ - - def default(self, data): - """ - Override the elasticsearch default method. - - Allows to transform unknown types into strings. - - :params data: The data to serialize before sending it to elastic search - """ - try: - return super(EsSerializer, self).default(data) - except TypeError: - return str(data) - class EsHandler(logging.Handler): """Elastic search handler.""" @@ -116,7 +93,6 @@ def __init__(self, }) self.raise_on_indexing_exceptions = raise_on_indexing_exceptions self.default_timestamp_field_name = default_timestamp_field_name - self.serializer = EsSerializer() self._client = None self._buffer = [] self._buffer_lock = Lock() @@ -134,8 +110,7 @@ def __get_es_client(self): http_auth=self.auth_details, use_ssl=False, verify_certs=False, - connection_class=RequestsHttpNode, - serializer=self.serializer) + connection_class=RequestsHttpNode) def test_es_source(self): """ Returns True if the handler can ping the Elasticsearch servers. From eebc314cd80cc318d84d625c263672eae877b35b Mon Sep 17 00:00:00 2001 From: Diyaldine Maoulida <43171051+Diyal976@users.noreply.github.com> Date: Sun, 8 Dec 2024 10:56:44 +0000 Subject: [PATCH 4/6] Update elk.py RequestsHttpNode and RequestsHttpConnection are deprecated in Elasticsearch Python 8.x and above --- msa_sdk/elk.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/msa_sdk/elk.py b/msa_sdk/elk.py index db1e7a2b..8e4c03aa 100644 --- a/msa_sdk/elk.py +++ b/msa_sdk/elk.py @@ -6,9 +6,7 @@ from enum import Enum from threading import Lock from threading import Timer - from elasticsearch import Elasticsearch -from elastic_transport import RequestsHttpNode from elasticsearch import helpers as eshelpers # Have a look at https://github.com/cmanaha/python-elasticsearch-logger @@ -110,7 +108,7 @@ def __get_es_client(self): http_auth=self.auth_details, use_ssl=False, verify_certs=False, - connection_class=RequestsHttpNode) + serializer=self.serializer) def test_es_source(self): """ Returns True if the handler can ping the Elasticsearch servers. From 2dae323944dd4993005a1603577e59979e5ff913 Mon Sep 17 00:00:00 2001 From: Diyaldine Maoulida <43171051+Diyal976@users.noreply.github.com> Date: Mon, 9 Dec 2024 09:59:46 +0000 Subject: [PATCH 5/6] Update elasticsearch to v8.16.0 (latest) --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9222bdf5..c051de62 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ requests -elasticsearch==8.14.0 +elasticsearch==8.16.0 From 985707b3a23b1536b5b045d6e1ed253e68332f00 Mon Sep 17 00:00:00 2001 From: Diyaldine Maoulida <43171051+Diyal976@users.noreply.github.com> Date: Mon, 9 Dec 2024 11:46:09 +0000 Subject: [PATCH 6/6] Update elk.py - syntax format --- msa_sdk/elk.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/msa_sdk/elk.py b/msa_sdk/elk.py index 8e4c03aa..02e4035f 100644 --- a/msa_sdk/elk.py +++ b/msa_sdk/elk.py @@ -6,9 +6,11 @@ from enum import Enum from threading import Lock from threading import Timer + from elasticsearch import Elasticsearch from elasticsearch import helpers as eshelpers + # Have a look at https://github.com/cmanaha/python-elasticsearch-logger class EsHandler(logging.Handler): """Elastic search handler."""