diff --git a/elasticapm/handlers/logging.py b/elasticapm/handlers/logging.py index 4fbea3ff9..68672981f 100644 --- a/elasticapm/handlers/logging.py +++ b/elasticapm/handlers/logging.py @@ -36,6 +36,7 @@ import traceback import warnings +from elasticapm import get_client from elasticapm.base import Client from elasticapm.traces import execution_context from elasticapm.utils import compat, wrapt @@ -160,7 +161,7 @@ def _emit(self, record, **kwargs): exception=exception, level=record.levelno, logger_name=record.name, - **kwargs + **kwargs, ) @@ -227,14 +228,18 @@ def _add_attributes_to_log_record(record): span_id = span.id if span else None record.elasticapm_span_id = span_id - service_name = transaction.tracer.config.service_name if transaction else None + client = get_client() + service_name = client.config.service_name if client else None record.elasticapm_service_name = service_name + event_dataset = f"{client.config.service_name}.log" if client else None + record.elasticapm_event_dataset = event_dataset record.elasticapm_labels = { "transaction.id": transaction_id, "trace.id": trace_id, "span.id": span_id, "service.name": service_name, + "event.dataset": event_dataset, } return record @@ -274,6 +279,7 @@ def format(self, record): record.elasticapm_trace_id = None record.elasticapm_span_id = None record.elasticapm_service_name = None + record.elasticapm_event_dataset = None return super(Formatter, self).format(record=record) def formatTime(self, record, datefmt=None): @@ -282,4 +288,5 @@ def formatTime(self, record, datefmt=None): record.elasticapm_trace_id = None record.elasticapm_span_id = None record.elasticapm_service_name = None + record.elasticapm_event_dataset = None return super(Formatter, self).formatTime(record=record, datefmt=datefmt) diff --git a/elasticapm/handlers/structlog.py b/elasticapm/handlers/structlog.py index a7d0e3985..46893db79 100644 --- a/elasticapm/handlers/structlog.py +++ b/elasticapm/handlers/structlog.py @@ -28,6 +28,7 @@ from __future__ import absolute_import +from elasticapm import get_client from elasticapm.traces import execution_context @@ -53,7 +54,10 @@ def structlog_processor(logger, method_name, event_dict): transaction = execution_context.get_transaction() if transaction: event_dict["transaction.id"] = transaction.id - event_dict["service.name"] = transaction.tracer.config.service_name + client = get_client() + if client: + event_dict["service.name"] = client.config.service_name + event_dict["event.dataset"] = f"{client.config.service_name}.log" if transaction and transaction.trace_parent: event_dict["trace.id"] = transaction.trace_parent.trace_id span = execution_context.get_span()