aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/go.opencensus.io/trace/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/go.opencensus.io/trace/config.go')
-rw-r--r--vendor/go.opencensus.io/trace/config.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/go.opencensus.io/trace/config.go b/vendor/go.opencensus.io/trace/config.go
new file mode 100644
index 0000000..0816892
--- /dev/null
+++ b/vendor/go.opencensus.io/trace/config.go
@@ -0,0 +1,48 @@
1// Copyright 2018, OpenCensus Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package trace
16
17import (
18 "sync"
19
20 "go.opencensus.io/trace/internal"
21)
22
23// Config represents the global tracing configuration.
24type Config struct {
25 // DefaultSampler is the default sampler used when creating new spans.
26 DefaultSampler Sampler
27
28 // IDGenerator is for internal use only.
29 IDGenerator internal.IDGenerator
30}
31
32var configWriteMu sync.Mutex
33
34// ApplyConfig applies changes to the global tracing configuration.
35//
36// Fields not provided in the given config are going to be preserved.
37func ApplyConfig(cfg Config) {
38 configWriteMu.Lock()
39 defer configWriteMu.Unlock()
40 c := *config.Load().(*Config)
41 if cfg.DefaultSampler != nil {
42 c.DefaultSampler = cfg.DefaultSampler
43 }
44 if cfg.IDGenerator != nil {
45 c.IDGenerator = cfg.IDGenerator
46 }
47 config.Store(&c)
48}