From 6df4c5e14266fb6400d0d6e2cee3c83638536a74 Mon Sep 17 00:00:00 2001 From: Jonas Kunz Date: Wed, 20 May 2020 11:36:36 +0200 Subject: [PATCH 1/2] Closes #746 - Added extension point for globally adding trace attributes --- .../instrumentation/rules/_shared/tracing.yml | 24 +++++++++++++++++++ .../instrumentation/rules/db/jdbc/tracing.yml | 3 ++- .../rules/http/_shared/http-tracing.yml | 2 ++ .../instrumentation/rules/method-tracing.yml | 12 ++++------ 4 files changed, 33 insertions(+), 8 deletions(-) create mode 100644 inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml new file mode 100644 index 0000000000..25e1e95eb6 --- /dev/null +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml @@ -0,0 +1,24 @@ +inspectit: + instrumentation: + rules: + + # This rule should be included by all other tracing rules. + # It allows to specify data which is added to all spans as attributes, e.g. a business transaction + 'r_tracing_global_attributes': + enabled: true #default setting, but ensures that the rule exists. + + # This rule can be extended to tag the stack-trace if required + 'r_tracing_exception_attributes': + 'tracing': + attributes: + 'java.exception': _thrown + + # This rule adds the fully qualified name of the method as span attribute + 'r_tracing_fqn_attribute': + 'tracing': + attributes: + 'java.fqn': 'method_fqn' + entry: + 'method_fqn': + action: 'a_method_getFQN' + diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml index dd7cc7b1b0..7fd200a021 100644 --- a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml @@ -38,6 +38,8 @@ inspectit: include: 'r_jdbc_detect_entry': true 'r_jdbc_extract_url': true + 'r_tracing_global_attributes': true + 'r_tracing_exception_attributes': true tracing: start-span: true start-span-conditions: @@ -45,7 +47,6 @@ inspectit: attributes: 'db.type': 'db_type_sql' 'db.url': 'jdbc_url' - 'java.exception': _thrown error-status: _thrown entry: 'db_type_sql': diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/http/_shared/http-tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/http/_shared/http-tracing.yml index 8d5dd38314..b4562b2d4f 100644 --- a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/http/_shared/http-tracing.yml +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/http/_shared/http-tracing.yml @@ -31,6 +31,8 @@ inspectit: # This rule is included by all HTTP Client AND Server tracing rules to define which attributes should be added to the span 'r_http_tracing_default_attributes': + include: + 'r_tracing_global_attributes': true tracing: attributes: 'http.status_code': 'http_status' diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml index 76c54410fc..c9e7cde779 100644 --- a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml @@ -7,13 +7,11 @@ inspectit: # # This rule can be either included or scopes can be directly added to it 'r_trace_method': - 'tracing': + include: + 'r_tracing_global_attributes': true + 'r_tracing_exception_attributes': true + 'r_tracing_fqn_attribute': true + tracing: start-span: true error-status: _thrown - attributes: - 'java.exception': _thrown - 'java.fqn': 'method_fqn' - entry: - 'method_fqn': - action: 'a_method_getFQN' From a2d5dfc4f3858cbf74b047ffea4027bdf5d5f336 Mon Sep 17 00:00:00 2001 From: Jonas Kunz Date: Thu, 28 May 2020 16:59:39 +0200 Subject: [PATCH 2/2] Review fixes --- .../default/instrumentation/rules/_shared/tracing.yml | 7 +++++-- .../default/instrumentation/rules/db/jdbc/tracing.yml | 1 - .../default/instrumentation/rules/method-tracing.yml | 2 -- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml index 25e1e95eb6..d5ac98e730 100644 --- a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/_shared/tracing.yml @@ -5,9 +5,12 @@ inspectit: # This rule should be included by all other tracing rules. # It allows to specify data which is added to all spans as attributes, e.g. a business transaction 'r_tracing_global_attributes': - enabled: true #default setting, but ensures that the rule exists. + include: + 'r_tracing_exception_attributes': true + 'r_tracing_fqn_attribute': true - # This rule can be extended to tag the stack-trace if required + # This rule by default only tags the exception name and message (using the toString() method) + # If required, it can be enhanced to include the stack trace. 'r_tracing_exception_attributes': 'tracing': attributes: diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml index 7fd200a021..28f9a56f8c 100644 --- a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/db/jdbc/tracing.yml @@ -39,7 +39,6 @@ inspectit: 'r_jdbc_detect_entry': true 'r_jdbc_extract_url': true 'r_tracing_global_attributes': true - 'r_tracing_exception_attributes': true tracing: start-span: true start-span-conditions: diff --git a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml index c9e7cde779..6de472314f 100644 --- a/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml +++ b/inspectit-ocelot-config/src/main/resources/rocks/inspectit/ocelot/config/default/instrumentation/rules/method-tracing.yml @@ -9,8 +9,6 @@ inspectit: 'r_trace_method': include: 'r_tracing_global_attributes': true - 'r_tracing_exception_attributes': true - 'r_tracing_fqn_attribute': true tracing: start-span: true error-status: _thrown