diff options
Diffstat (limited to 'vendor/go.opencensus.io/trace/config.go')
-rw-r--r-- | vendor/go.opencensus.io/trace/config.go | 48 |
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 | |||
15 | package trace | ||
16 | |||
17 | import ( | ||
18 | "sync" | ||
19 | |||
20 | "go.opencensus.io/trace/internal" | ||
21 | ) | ||
22 | |||
23 | // Config represents the global tracing configuration. | ||
24 | type 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 | |||
32 | var 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. | ||
37 | func 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 | } | ||