github.com/anuvu/tyk@v2.9.0-beta9-dl-apic+incompatible/trace/openzipkin/config.go (about)

     1  package openzipkin
     2  
     3  import "encoding/json"
     4  
     5  type Config struct {
     6  	Reporter Reporter `json:"reporter"`
     7  	Sampler  Sampler  `json:"sampler"`
     8  }
     9  
    10  type Reporter struct {
    11  	URL        string `json:"url"`
    12  	BatchSize  int    `json:"batch_size"`
    13  	MaxBacklog int    `json:"max_backlog"`
    14  }
    15  
    16  type Sampler struct {
    17  	Name string  `json:"name"`
    18  	Rate float64 `json:"rate"`
    19  	Salt int64   `json:"salt"`
    20  	Mod  uint64  `json:"mod"`
    21  }
    22  
    23  func Load(opts map[string]interface{}) (*Config, error) {
    24  	b, err := json.Marshal(opts)
    25  	if err != nil {
    26  		return nil, err
    27  	}
    28  	var c Config
    29  	err = json.Unmarshal(b, &c)
    30  	return &c, nil
    31  }