/
cfg.go
64 lines (52 loc) · 2.15 KB
/
cfg.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package proxy // import "github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy"
import (
"go.opentelemetry.io/collector/config/confignet"
"go.opentelemetry.io/collector/config/configtls"
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/common/localhostgate"
)
// Config is the configuration for the local TCP proxy server.
type Config struct {
// endpoint is the TCP address and port on which this receiver listens for
// calls from the X-Ray SDK and relays them to the AWS X-Ray backend to
// get sampling rules and report sampling statistics.
confignet.TCPAddrConfig `mapstructure:",squash"`
// ProxyAddress defines the proxy address that the local TCP server
// forwards HTTP requests to AWS X-Ray backend through.
ProxyAddress string `mapstructure:"proxy_address"`
// TLSSetting struct exposes TLS client configuration when forwarding
// calls to the AWS X-Ray backend.
TLSSetting configtls.ClientConfig `mapstructure:"tls,omitempty"`
// Region is the AWS region the local TCP server forwards requests to.
Region string `mapstructure:"region"`
// RoleARN is the IAM role used by the local TCP server when
// communicating with the AWS X-Ray service.
RoleARN string `mapstructure:"role_arn"`
// AWSEndpoint is the X-Ray service endpoint which the local
// TCP server forwards requests to.
AWSEndpoint string `mapstructure:"aws_endpoint"`
// LocalMode determines whether the EC2 instance metadata endpoint
// will be called or not. Set to `true` to skip EC2 instance
// metadata check.
LocalMode bool `mapstructure:"local_mode"`
// ServiceName determines which service the requests are sent to.
// will be default to `xray`. This is mandatory for SigV4
ServiceName string `mapstructure:"service_name"`
}
func DefaultConfig() *Config {
return &Config{
TCPAddrConfig: confignet.TCPAddrConfig{
Endpoint: localhostgate.EndpointForPort(2000),
},
ProxyAddress: "",
TLSSetting: configtls.ClientConfig{
Insecure: false,
ServerName: "",
},
Region: "",
RoleARN: "",
AWSEndpoint: "",
ServiceName: "xray",
}
}