나는 statsd server
에 메트릭스를 보내기 위해 thisstatsd package
을 사용합니다. 클라이언트를 초기화하기 위해서, 나는 초기화를하는 내 메인에 metrics.Setup()
을 호출한다. 이 패키지는 다음과 같습니다모의 테스트 패키지에 포함 된 모의 테스트 클라이언트
패키지 metrics.Client.Inc("some.counter", 1, 1.0)
: 다른 패키지는이 작업을 수행하여이 글로벌 클라이언트하지만 통계를 보낼에이 순간부터
package metrics
import (
"fmt"
"github.com/cactus/go-statsd-client/statsd"
)
// Client can be used to send stats to
var Client StatsdAccess
// Setup initialises metrics gathering
func Setup() {
if Client == nil {
prefix := fmt.Sprintf("app.%s", logging.GetHost())
std, err := statsd.NewBufferedClient(fmt.Sprintf("localhost:1234", prefix, 0, 0)
if err != nil {
logrus.Errorf("unable to dial the statsd host: %q", err)
return
}
Client = std
}
}
// StatsdAccess is used as interface to statsd functions
type StatsdAccess interface {
Inc(stat string, value int64, rate float32) error
Gauge(stat string, value int64, rate float32) error
Timing(stat string, delta int64, rate float32) error
}
. 이 잘 작동하지만 지금은 내 테스트 파일에 문제가 있습니다. 패키지가 실제로 metrics package
을 사용하여 메트릭을 보낼 때 오류가 발생합니다. 메트릭 패키지가 초기화되지 않았기 때문에 이것은 명백합니다. 제 질문 - 생각합니다 : statsd client
을 테스트 파일에 어떻게 조롱 할 수 있습니까?