MCPcopy
hub / github.com/grafana/tempo / TestReadMetrics

Function TestReadMetrics

integration/operations/operational_metrics_test.go:71–186  ·  integration/operations/operational_metrics_test.go::TestReadMetrics
(t *testing.T)

Source from the content-addressed store, hash-verified

69}
70
71func TestReadMetrics(t *testing.T) {
72 util.RunIntegrationTests(t, util.TestHarnessConfig{}, func(h *util.TempoHarness) {
73 h.WaitTracesWritable(t)
74
75 info := tempoUtil.NewTraceInfo(time.Now(), "")
76 require.NoError(t, h.WriteTraceInfo(info, ""))
77
78 h.WaitTracesQueryable(t, 1)
79
80 // http
81 apiClient := h.APIClientHTTP("")
82
83 _, err := apiClient.MetricsQueryInstant("{} | rate()", time.Now().Add(-time.Hour).Unix(), time.Now().Unix(), 0)
84 require.NoError(t, err)
85 _, err = apiClient.MetricsQueryRange("{} | rate()", time.Now().Add(-time.Hour).Unix(), time.Now().Unix(), "1m", 0)
86 require.NoError(t, err)
87 id, err := info.TraceID()
88 require.NoError(t, err)
89 _, err = apiClient.QueryTraceV2(tempoUtil.TraceIDToHexString(id))
90 require.NoError(t, err)
91 _, err = apiClient.SearchTagValuesV2("span.foo", "")
92 require.NoError(t, err)
93 _, err = apiClient.SearchTagsV2()
94 require.NoError(t, err)
95 _, err = apiClient.SearchTraceQL("{}")
96 require.NoError(t, err)
97
98 // grpc
99 grpcClient, ctx, err := h.APIClientGRPC("")
100 require.NoError(t, err)
101 instantClient, err := grpcClient.MetricsQueryInstant(ctx, &tempopb.QueryInstantRequest{
102 Query: "{} | rate()",
103 Start: uint64(time.Now().Add(-time.Hour).Local().UnixNano()),
104 End: uint64(time.Now().Local().UnixNano()),
105 })
106 require.NoError(t, err)
107 err = drainStreamingClient(instantClient)
108 require.NoError(t, err)
109
110 rangeClient, err := grpcClient.MetricsQueryRange(ctx, &tempopb.QueryRangeRequest{
111 Query: "{} | rate()",
112 Start: uint64(time.Now().Add(-time.Hour).Local().UnixNano()),
113 End: uint64(time.Now().Local().UnixNano()),
114 Step: uint64(time.Minute.Nanoseconds()),
115 Exemplars: 0,
116 })
117 require.NoError(t, err)
118 err = drainStreamingClient(rangeClient)
119 require.NoError(t, err)
120
121 searchTagValuesClient, err := grpcClient.SearchTagValuesV2(ctx, &tempopb.SearchTagValuesRequest{
122 TagName: "span.foo",
123 Query: "",
124 })
125 require.NoError(t, err)
126 err = drainStreamingClient(searchTagValuesClient)
127 require.NoError(t, err)
128

Callers

nothing calls this directly

Calls 15

TraceIDMethod · 0.95
drainStreamingClientFunction · 0.85
assertMetricEqualsFunction · 0.85
assertMetricGreaterFunction · 0.85
assertMetricCountEqualsFunction · 0.85
WaitTracesWritableMethod · 0.80
WriteTraceInfoMethod · 0.80
WaitTracesQueryableMethod · 0.80
APIClientHTTPMethod · 0.80
QueryTraceV2Method · 0.80
APIClientGRPCMethod · 0.80
NowMethod · 0.65

Tested by

no test coverage detected