func appendDogStatsDSinks()

in agent/envoy_bootstrap/envoy_bootstrap.go [1167:1206]


func appendDogStatsDSinks(b *boot.Bootstrap) error {
	var packedCfg *anypb.Any
	var err error
	if udsPath := env.Get("STATSD_SOCKET_PATH"); udsPath != "" {
		packedCfg, err = anypb.New(&metrics.DogStatsdSink{
			DogStatsdSpecifier: &metrics.DogStatsdSink_Address{
				Address: buildSocketPipe(udsPath),
			},
		})
		if err != nil {
			return err
		}
	} else {
		addr := env.Or("STATSD_ADDRESS", "127.0.0.1")
		port, err := env.OrInt("STATSD_PORT", 8125)
		if err != nil {
			return err
		}
		packedCfg, err = anypb.New(&metrics.DogStatsdSink{
			DogStatsdSpecifier: &metrics.DogStatsdSink_Address{
				Address: buildUdpSocketAddr(addr, port),
			},
		})
		if err != nil {
			return err
		}
	}

	bt := &boot.Bootstrap{
		StatsSinks: []*metrics.StatsSink{
			&metrics.StatsSink{
				Name: "envoy.stat_sinks.dog_statsd",
				ConfigType: &metrics.StatsSink_TypedConfig{
					TypedConfig: packedCfg,
				},
			},
		},
	}
	return mergeBootstrap(b, bt)
}