Repository: owncloud/ocis
Pull request #2952 (2022-01-12 09:30:14)

Tracing config fix
## Description
We've fixed the default tracing provider which was no longer configured after [owncloud/ocis#2818](https://github.com/owncloud/ocis/pull/2818).

## Related Issue
<!--- This project only accepts pull requests related to open issues -->
<!--- If suggesting a new feature or change, please discuss it in an issue first -->
<!--- If fixing a bug, there should be an issue describing it with steps to reproduce -->
<!--- Please link to the issue here: -->
- Continuously deployed examples will work again

## Motivation and Context
<!--- Why is this change required? What problem does it solve? -->

## How Has This Been Tested?
<!--- Please describe in detail how you tested your changes. -->
<!--- Include details of your testing environment, and the tests you ran to -->
<!--- see how your change affects other areas of the code, etc. -->

## Screenshots (if appropriate):

## Types of changes
<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Technical debt
- [ ] Tests only (no source changes)

## Checklist:
<!-- Tick the checkboxes when done. -->
<!-- Raise documentation ticket in owncloud.github.io/ -->
- [ ] Code changes
- [ ] Unit tests added
- [ ] Acceptance tests added
- [ ] Documentation ticket raised: <link> 


sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL)

[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/0-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list) [0.0% Coverage](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list)  
[![89.2%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/20plus-16px.png '89.2%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list) [89.2% Duplication](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list)


ownclouders: :boom: Acceptance test [<strong>Web-Tests-ocis-smoke-ocis-storage-2</strong>](https://drone.owncloud.com/owncloud/ocis/8691/33/1) failed. Further test are cancelled...
<!-- id: pr-2952 -->

ownclouders: :boom: Acceptance test [<strong>localApiTests-apiAccountsHashDifficulty-ocis</strong>](https://drone.owncloud.com/owncloud/ocis/8691/19/1) failed. Further test are cancelled...
<!-- id: pr-2952 -->

ownclouders: :boom: Acceptance test [<strong>Core-API-Tests-ocis-storage-5</strong>](https://drone.owncloud.com/owncloud/ocis/8691/26/1) failed. Further test are cancelled...
<!-- id: pr-2952 -->

sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL)

[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/0-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list) [0.0% Coverage](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list)  
[![89.2%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/20plus-16px.png '89.2%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list) [89.2% Duplication](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list)


saw-jan: @wkloucek you can cherry-pick from this PR https://github.com/owncloud/ocis/pull/2951 and try if that works for running parallel deploy tests with pre-built ocis server

sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL)

[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/0-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list) [0.0% Coverage](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list)  
[![88.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/20plus-16px.png '88.9%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list) [88.9% Duplication](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL)

[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/0-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list) [0.0% Coverage](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list)  
[![88.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/20plus-16px.png '88.9%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list) [88.9% Duplication](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list)


sonarcloud[bot]: SonarCloud Quality Gate failed.&nbsp; &nbsp; ![Quality Gate failed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/failed-16px.png 'Quality Gate failed')

[![Bug](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/bug-16px.png 'Bug')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG) [0 Bugs](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=BUG)  
[![Vulnerability](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/vulnerability-16px.png 'Vulnerability')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY) [0 Vulnerabilities](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=VULNERABILITY)  
[![Security Hotspot](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/security_hotspot-16px.png 'Security Hotspot')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT) [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=owncloud_ocis&pullRequest=2952&resolved=false&types=SECURITY_HOTSPOT)  
[![Code Smell](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/code_smell-16px.png 'Code Smell')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [![A](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/RatingBadge/A-16px.png 'A')](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL) [0 Code Smells](https://sonarcloud.io/project/issues?id=owncloud_ocis&pullRequest=2952&resolved=false&types=CODE_SMELL)

[![0.0%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/CoverageChart/0-16px.png '0.0%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list) [0.0% Coverage](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_coverage&view=list)  
[![88.9%](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/Duplications/20plus-16px.png '88.9%')](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list) [88.9% Duplication](https://sonarcloud.io/component_measures?id=owncloud_ocis&pullRequest=2952&metric=new_duplicated_lines_density&view=list)



Patch:
diff --git a/accounts/pkg/config/config.go b/accounts/pkg/config/config.go
index e2107361615..305fa5e219a 100644
--- a/accounts/pkg/config/config.go
+++ b/accounts/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 	GRPC GRPC `ocisConfig:"grpc"`
diff --git a/accounts/pkg/config/parser/parse.go b/accounts/pkg/config/parser/parse.go
index dee2dc13b75..fb801aed28c 100644
--- a/accounts/pkg/config/parser/parse.go
+++ b/accounts/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/changelog/unreleased/fix-tracing-config.md b/changelog/unreleased/fix-tracing-config.md
new file mode 100644
index 00000000000..62b15cf6ab6
--- /dev/null
+++ b/changelog/unreleased/fix-tracing-config.md
@@ -0,0 +1,6 @@
+Bugfix: Fix the default tracing provider
+
+We've fixed the default tracing provider which was no longer configured after [owncloud/ocis#2818](https://github.com/owncloud/ocis/pull/2818).
+
+https://github.com/owncloud/ocis/pull/2952
+https://github.com/owncloud/ocis/pull/2818
diff --git a/deployments/examples/oc10_ocis_parallel/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/oc10_ocis_parallel/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/oc10_ocis_parallel/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/oc10_ocis_parallel/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/deployments/examples/ocis_hello/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/ocis_hello/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/ocis_hello/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/ocis_hello/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/deployments/examples/ocis_keycloak/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/ocis_keycloak/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/ocis_keycloak/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/ocis_keycloak/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/deployments/examples/ocis_ldap/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/ocis_ldap/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/ocis_ldap/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/ocis_ldap/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/deployments/examples/ocis_s3/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/ocis_s3/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/ocis_s3/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/ocis_s3/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/deployments/examples/ocis_traefik/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/ocis_traefik/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/ocis_traefik/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/ocis_traefik/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/deployments/examples/ocis_wopi/monitoring_tracing/docker-compose-additions.yml b/deployments/examples/ocis_wopi/monitoring_tracing/docker-compose-additions.yml
index a077eda65d3..8abdf4e8386 100644
--- a/deployments/examples/ocis_wopi/monitoring_tracing/docker-compose-additions.yml
+++ b/deployments/examples/ocis_wopi/monitoring_tracing/docker-compose-additions.yml
@@ -6,6 +6,7 @@ services:
     environment:
       # tracing
       OCIS_TRACING_ENABLED: "true"
+      OCIS_TRACING_TYPE: "jaeger"
       OCIS_TRACING_ENDPOINT: jaeger-agent:6831
       # metrics
       APP_PROVIDER_DEBUG_ADDR: 0.0.0.0:9165
diff --git a/glauth/pkg/config/config.go b/glauth/pkg/config/config.go
index 3d687319cdb..7de14cf6875 100644
--- a/glauth/pkg/config/config.go
+++ b/glauth/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	Ldap  Ldap  `ocisConfig:"ldap"`
 	Ldaps Ldaps `ocisConfig:"ldaps"`
diff --git a/glauth/pkg/config/defaultconfig.go b/glauth/pkg/config/defaultconfig.go
index becff0bb9d8..503321d8eec 100644
--- a/glauth/pkg/config/defaultconfig.go
+++ b/glauth/pkg/config/defaultconfig.go
@@ -11,12 +11,6 @@ func DefaultConfig() *Config {
 		Debug: Debug{
 			Addr: "127.0.0.1:9129",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		Service: Service{
 			Name: "glauth",
 		},
diff --git a/glauth/pkg/config/parser/parse.go b/glauth/pkg/config/parser/parse.go
index b2a18b2a90a..de91a182325 100644
--- a/glauth/pkg/config/parser/parse.go
+++ b/glauth/pkg/config/parser/parse.go
@@ -24,9 +24,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/graph-explorer/pkg/config/config.go b/graph-explorer/pkg/config/config.go
index d84c239fde2..2d70fd664a6 100644
--- a/graph-explorer/pkg/config/config.go
+++ b/graph-explorer/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/graph-explorer/pkg/config/defaultconfig.go b/graph-explorer/pkg/config/defaultconfig.go
index 7ea49081939..454cb239a6f 100644
--- a/graph-explorer/pkg/config/defaultconfig.go
+++ b/graph-explorer/pkg/config/defaultconfig.go
@@ -16,12 +16,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "graph-explorer",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		GraphExplorer: GraphExplorer{
 			ClientID:     "ocis-explorer.js",
 			Issuer:       "https://localhost:9200",
diff --git a/graph-explorer/pkg/config/parser/parse.go b/graph-explorer/pkg/config/parser/parse.go
index be113e45980..c9127c292f6 100644
--- a/graph-explorer/pkg/config/parser/parse.go
+++ b/graph-explorer/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/graph/pkg/config/config.go b/graph/pkg/config/config.go
index 523bcfdb045..d094cf54f92 100644
--- a/graph/pkg/config/config.go
+++ b/graph/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/graph/pkg/config/defaultconfig.go b/graph/pkg/config/defaultconfig.go
index 5879b9487af..3bb022786e2 100644
--- a/graph/pkg/config/defaultconfig.go
+++ b/graph/pkg/config/defaultconfig.go
@@ -14,12 +14,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "graph",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		Reva: Reva{
 			Address: "127.0.0.1:9142",
 		},
diff --git a/graph/pkg/config/parser/parse.go b/graph/pkg/config/parser/parse.go
index 8856821543f..367089f8523 100644
--- a/graph/pkg/config/parser/parse.go
+++ b/graph/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/idp/pkg/config/config.go b/idp/pkg/config/config.go
index 7c16b9b1bf1..4e5e4b0d136 100644
--- a/idp/pkg/config/config.go
+++ b/idp/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/idp/pkg/config/defaultconfig.go b/idp/pkg/config/defaultconfig.go
index 21e59a33910..823291596b4 100644
--- a/idp/pkg/config/defaultconfig.go
+++ b/idp/pkg/config/defaultconfig.go
@@ -22,12 +22,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "idp",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		Asset: Asset{},
 		IDP: Settings{
 			Iss:                               "https://localhost:9200",
diff --git a/idp/pkg/config/parser/parse.go b/idp/pkg/config/parser/parse.go
index de98f42d689..d5561337e53 100644
--- a/idp/pkg/config/parser/parse.go
+++ b/idp/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/ocis-pkg/config/parser/parse.go b/ocis-pkg/config/parser/parse.go
index a0870d17c72..ba75a411c0d 100644
--- a/ocis-pkg/config/parser/parse.go
+++ b/ocis-pkg/config/parser/parse.go
@@ -23,7 +23,7 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &shared.Log{}
 	}
 
diff --git a/ocis-pkg/tracing/tracing.go b/ocis-pkg/tracing/tracing.go
index f12664b9dd4..7d76e635248 100644
--- a/ocis-pkg/tracing/tracing.go
+++ b/ocis-pkg/tracing/tracing.go
@@ -21,7 +21,7 @@ var Propagator = propagation.NewCompositeTextMapPropagator(
 // GetTraceProvider returns a configured open-telemetry trace provider.
 func GetTraceProvider(agentEndpoint, collectorEndpoint, serviceName, traceType string) (*sdktrace.TracerProvider, error) {
 	switch t := traceType; t {
-	case "jaeger":
+	case "", "jaeger":
 		var (
 			exp *jaeger.Exporter
 			err error
@@ -66,7 +66,7 @@ func GetTraceProvider(agentEndpoint, collectorEndpoint, serviceName, traceType s
 	case "zipkin":
 		fallthrough
 	default:
-		return nil, fmt.Errorf("invalid trace configuration")
+		return nil, fmt.Errorf("unknown trace type %s", traceType)
 	}
 }
 
diff --git a/ocs/pkg/config/config.go b/ocs/pkg/config/config.go
index bfad75d8604..2c9693adcad 100644
--- a/ocs/pkg/config/config.go
+++ b/ocs/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/ocs/pkg/config/defaultconfig.go b/ocs/pkg/config/defaultconfig.go
index 59cbfb8f1f1..0ed8378ba44 100644
--- a/ocs/pkg/config/defaultconfig.go
+++ b/ocs/pkg/config/defaultconfig.go
@@ -22,12 +22,7 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "ocs",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
+
 		TokenManager: TokenManager{
 			JWTSecret: "Pive-Fumkiu4",
 		},
diff --git a/ocs/pkg/config/parser/parse.go b/ocs/pkg/config/parser/parse.go
index 9a50e535b30..96f4205dfcd 100644
--- a/ocs/pkg/config/parser/parse.go
+++ b/ocs/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/proxy/pkg/config/config.go b/proxy/pkg/config/config.go
index c525421e808..277b7dff2d2 100644
--- a/proxy/pkg/config/config.go
+++ b/proxy/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/proxy/pkg/config/defaultconfig.go b/proxy/pkg/config/defaultconfig.go
index 136cf28b980..12bcbe806d6 100644
--- a/proxy/pkg/config/defaultconfig.go
+++ b/proxy/pkg/config/defaultconfig.go
@@ -23,12 +23,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "proxy",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		OIDC: OIDC{
 			Issuer:   "https://localhost:9200",
 			Insecure: true,
diff --git a/proxy/pkg/config/parser/parse.go b/proxy/pkg/config/parser/parse.go
index 65921b31cff..55105cfcbc7 100644
--- a/proxy/pkg/config/parser/parse.go
+++ b/proxy/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/settings/pkg/config/config.go b/settings/pkg/config/config.go
index fce3b34d5f5..8e9e5f1efff 100644
--- a/settings/pkg/config/config.go
+++ b/settings/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 	GRPC GRPC `ocisConfig:"grpc"`
diff --git a/settings/pkg/config/defaultconfig.go b/settings/pkg/config/defaultconfig.go
index a667c0c2511..7f72e50a300 100644
--- a/settings/pkg/config/defaultconfig.go
+++ b/settings/pkg/config/defaultconfig.go
@@ -33,12 +33,6 @@ func DefaultConfig() *Config {
 			Addr:      "127.0.0.1:9191",
 			Namespace: "com.owncloud.api",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		DataPath: path.Join(defaults.BaseDataPath(), "settings"),
 		Asset: Asset{
 			Path: "",
diff --git a/settings/pkg/config/parser/parse.go b/settings/pkg/config/parser/parse.go
index 551d44108c3..f1c7c94362c 100644
--- a/settings/pkg/config/parser/parse.go
+++ b/settings/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/storage/pkg/command/gateway.go b/storage/pkg/command/gateway.go
index 0de42d2b918..b3a3cf48283 100644
--- a/storage/pkg/command/gateway.go
+++ b/storage/pkg/command/gateway.go
@@ -423,7 +423,7 @@ func ParseConfig(c *cli.Context, cfg *config.Config, storageExtension string) er
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &shared.Log{}
 	}
 
diff --git a/store/pkg/config/config.go b/store/pkg/config/config.go
index 46855d55da4..585fd7424aa 100644
--- a/store/pkg/config/config.go
+++ b/store/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	GRPC GRPC `ocisConfig:"grpc"`
 
diff --git a/store/pkg/config/defaultconfig.go b/store/pkg/config/defaultconfig.go
index 66e44044d37..c2d42f43017 100644
--- a/store/pkg/config/defaultconfig.go
+++ b/store/pkg/config/defaultconfig.go
@@ -21,12 +21,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "store",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		Datapath: path.Join(defaults.BaseDataPath(), "store"),
 	}
 }
diff --git a/store/pkg/config/parser/parse.go b/store/pkg/config/parser/parse.go
index f3789eecbf4..a0f532c9e14 100644
--- a/store/pkg/config/parser/parse.go
+++ b/store/pkg/config/parser/parse.go
@@ -24,9 +24,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/thumbnails/pkg/config/config.go b/thumbnails/pkg/config/config.go
index 8ab2d5bfd21..527f94a50e7 100644
--- a/thumbnails/pkg/config/config.go
+++ b/thumbnails/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	GRPC GRPC `ocisConfig:"grpc"`
 
diff --git a/thumbnails/pkg/config/defaultconfig.go b/thumbnails/pkg/config/defaultconfig.go
index ac2da94d295..8f59db53e3d 100644
--- a/thumbnails/pkg/config/defaultconfig.go
+++ b/thumbnails/pkg/config/defaultconfig.go
@@ -21,12 +21,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "thumbnails",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		Thumbnail: Thumbnail{
 			Resolutions: []string{"16x16", "32x32", "64x64", "128x128", "1920x1080", "3840x2160", "7680x4320"},
 			FileSystemStorage: FileSystemStorage{
diff --git a/thumbnails/pkg/config/parser/parse.go b/thumbnails/pkg/config/parser/parse.go
index 3591aea8a53..5fa62fb15e7 100644
--- a/thumbnails/pkg/config/parser/parse.go
+++ b/thumbnails/pkg/config/parser/parse.go
@@ -24,9 +24,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/web/pkg/config/config.go b/web/pkg/config/config.go
index 13f67adfef0..d403136e18d 100644
--- a/web/pkg/config/config.go
+++ b/web/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/web/pkg/config/defaultconfig.go b/web/pkg/config/defaultconfig.go
index 42f22beda3d..018cac2d0a6 100644
--- a/web/pkg/config/defaultconfig.go
+++ b/web/pkg/config/defaultconfig.go
@@ -17,12 +17,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "web",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		Asset: Asset{
 			Path: "",
 		},
diff --git a/web/pkg/config/parser/parse.go b/web/pkg/config/parser/parse.go
index 71870c8ce69..2151f613e44 100644
--- a/web/pkg/config/parser/parse.go
+++ b/web/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {
diff --git a/webdav/pkg/config/config.go b/webdav/pkg/config/config.go
index 7c48724c22a..04fb193e568 100644
--- a/webdav/pkg/config/config.go
+++ b/webdav/pkg/config/config.go
@@ -12,9 +12,9 @@ type Config struct {
 
 	Service Service
 
-	Tracing Tracing `ocisConfig:"tracing"`
-	Log     *Log    `ocisConfig:"log"`
-	Debug   Debug   `ocisConfig:"debug"`
+	Tracing *Tracing `ocisConfig:"tracing"`
+	Log     *Log     `ocisConfig:"log"`
+	Debug   Debug    `ocisConfig:"debug"`
 
 	HTTP HTTP `ocisConfig:"http"`
 
diff --git a/webdav/pkg/config/defaultconfig.go b/webdav/pkg/config/defaultconfig.go
index dcd3c04f9ef..3bf74acd258 100644
--- a/webdav/pkg/config/defaultconfig.go
+++ b/webdav/pkg/config/defaultconfig.go
@@ -22,12 +22,6 @@ func DefaultConfig() *Config {
 		Service: Service{
 			Name: "webdav",
 		},
-		Tracing: Tracing{
-			Enabled:   false,
-			Type:      "jaeger",
-			Endpoint:  "",
-			Collector: "",
-		},
 		OcisPublicURL:   "https://127.0.0.1:9200",
 		WebdavNamespace: "/users/{{.Id.OpaqueId}}",
 		RevaGateway:     "127.0.0.1:9142",
diff --git a/webdav/pkg/config/parser/parse.go b/webdav/pkg/config/parser/parse.go
index 66341b0992b..33c893db4a3 100644
--- a/webdav/pkg/config/parser/parse.go
+++ b/webdav/pkg/config/parser/parse.go
@@ -25,9 +25,20 @@ func ParseConfig(cfg *config.Config) error {
 			Color:  cfg.Commons.Log.Color,
 			File:   cfg.Commons.Log.File,
 		}
-	} else if cfg.Log == nil && cfg.Commons == nil {
+	} else if cfg.Log == nil {
 		cfg.Log = &config.Log{}
 	}
+	// provide with defaults for shared tracing, since we need a valid destination address for BindEnv.
+	if cfg.Tracing == nil && cfg.Commons != nil && cfg.Commons.Tracing != nil {
+		cfg.Tracing = &config.Tracing{
+			Enabled:   cfg.Commons.Tracing.Enabled,
+			Type:      cfg.Commons.Tracing.Type,
+			Endpoint:  cfg.Commons.Tracing.Endpoint,
+			Collector: cfg.Commons.Tracing.Collector,
+		}
+	} else if cfg.Tracing == nil {
+		cfg.Tracing = &config.Tracing{}
+	}
 
 	// load all env variables relevant to the config in the current context.
 	if err := envdecode.Decode(cfg); err != nil {


Test patch:
diff --git a/proxy/pkg/proxy/proxy_integration_test.go b/proxy/pkg/proxy/proxy_integration_test.go
index 0137b4413e7..1491933ad40 100644
--- a/proxy/pkg/proxy/proxy_integration_test.go
+++ b/proxy/pkg/proxy/proxy_integration_test.go
@@ -216,7 +216,7 @@ func testConfig(policy []config.Policy) *config.Config {
 		Log:            &config.Log{},
 		Debug:          config.Debug{},
 		HTTP:           config.HTTP{},
-		Tracing:        config.Tracing{},
+		Tracing:        &config.Tracing{},
 		Policies:       policy,
 		OIDC:           config.OIDC{},
 		PolicySelector: nil,