Skip to content

Commit

Permalink
Add flag to disable tracing (#2191)
Browse files Browse the repository at this point in the history
  • Loading branch information
periklis authored Jun 8, 2020
1 parent 61fc175 commit 6e55277
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 11 deletions.
24 changes: 13 additions & 11 deletions cmd/loki/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,19 +58,21 @@ func main() {
os.Exit(1)
}

// Setting the environment variable JAEGER_AGENT_HOST enables tracing
trace, err := tracing.NewFromEnv(fmt.Sprintf("loki-%s", config.Target))
if err != nil {
level.Error(util.Logger).Log("msg", "error in initializing tracing. tracing will not be enabled", "err", err)
}
defer func() {
if trace != nil {
if err := trace.Close(); err != nil {
level.Error(util.Logger).Log("msg", "error closing tracing", "err", err)
}
if config.Tracing.Enabled {
// Setting the environment variable JAEGER_AGENT_HOST enables tracing
trace, err := tracing.NewFromEnv(fmt.Sprintf("loki-%s", config.Target))
if err != nil {
level.Error(util.Logger).Log("msg", "error in initializing tracing. tracing will not be enabled", "err", err)
}
defer func() {
if trace != nil {
if err := trace.Close(); err != nil {
level.Error(util.Logger).Log("msg", "error closing tracing", "err", err)
}
}

}()
}()
}

// Start Loki
t, err := loki.New(config)
Expand Down
14 changes: 14 additions & 0 deletions docs/configuration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,10 @@ Configuration examples can be found in the [Configuration Examples](examples.md)
* [table_manager_config](#table_manager_config)
* [provision_config](#provision_config)
* [auto_scaling_config](#auto_scaling_config)
* [tracing_config](#tracing_config)
* [Runtime Configuration file](#runtime-configuration-file)


## Configuration File Reference

To specify which configuration file to load, pass the `-config.file` flag at the
Expand Down Expand Up @@ -97,6 +99,9 @@ Supported contents and default values of `loki.yaml`:

# Configuration for "runtime config" module, responsible for reloading runtime configuration file.
[runtime_config: <runtime_config>]

#Configuration for tracing
[tracing: <tracing_config>]
```
## server_config
Expand Down Expand Up @@ -1044,6 +1049,15 @@ The `auto_scaling_config` block configures autoscaling for DynamoDB.
[target: <float> | default = 80]
```

## tracing_config

The `tracing_config` block configures tracing for Jaeger. Currently limited to disable auto-configuration per [environment variables](https://www.jaegertracing.io/docs/1.16/client-features/) only.

```yaml
# Whether or not tracing should be enabled.
[enabled: <boolean>: default = true]
```

## Runtime Configuration file

Loki has a concept of "runtime config" file, which is simply a file that is reloaded while Loki is running. It is used by some Loki components to allow operator to change some aspects of Loki configuration without restarting it. File is specified by using `-runtime-config.file=<filename>` flag and reload period (which defaults to 10 seconds) can be changed by `-runtime-config.reload-period=<duration>` flag. Previously this mechanism was only used by limits overrides, and flags were called `-limits.per-user-override-config=<filename>` and `-limits.per-user-override-period=10s` respectively. These are still used, if `-runtime-config.file=<filename>` is not specified.
Expand Down
3 changes: 3 additions & 0 deletions pkg/loki/loki.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (
"github.com/grafana/loki/pkg/querier"
"github.com/grafana/loki/pkg/querier/queryrange"
"github.com/grafana/loki/pkg/storage"
"github.com/grafana/loki/pkg/tracing"
serverutil "github.com/grafana/loki/pkg/util/server"
"github.com/grafana/loki/pkg/util/validation"
)
Expand All @@ -57,6 +58,7 @@ type Config struct {
QueryRange queryrange.Config `yaml:"query_range,omitempty"`
RuntimeConfig runtimeconfig.ManagerConfig `yaml:"runtime_config,omitempty"`
MemberlistKV memberlist.KVConfig `yaml:"memberlist"`
Tracing tracing.Config `yaml:"tracing"`
}

// RegisterFlags registers flag.
Expand All @@ -81,6 +83,7 @@ func (c *Config) RegisterFlags(f *flag.FlagSet) {
c.Worker.RegisterFlags(f)
c.QueryRange.RegisterFlags(f)
c.RuntimeConfig.RegisterFlags(f)
c.Tracing.RegisterFlags(f)
}

// Validate the config and returns an error if the validation
Expand Down
13 changes: 13 additions & 0 deletions pkg/tracing/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package tracing

import (
"flag"
)

type Config struct {
Enabled bool `yaml:"enabled"`
}

func (cfg *Config) RegisterFlags(f *flag.FlagSet) {
f.BoolVar(&cfg.Enabled, "tracing.enabled", true, "Set to false to disable tracing.")
}

0 comments on commit 6e55277

Please sign in to comment.