mirror of
https://github.com/hanzoai/traces.git
synced 2026-10-30 18:20:41 +00:00
* First pass test harness Signed-off-by: Joe Elliott <[email protected]> * limits - passed Signed-off-by: Joe Elliott <[email protected]> * metrics generator - passed Signed-off-by: Joe Elliott <[email protected]> * harness cleanup/fix target info test Signed-off-by: Joe Elliott <[email protected]> * deployments - passed Signed-off-by: Joe Elliott <[email protected]> * receivers - passed Signed-off-by: Joe Elliott <[email protected]> * harness cleanup Signed-off-by: Joe Elliott <[email protected]> * storage - passed Signed-off-by: Joe Elliott <[email protected]> * api - passing Signed-off-by: Joe Elliott <[email protected]> * cleanup and CI Signed-off-by: Joe Elliott <[email protected]> * Additional tests Signed-off-by: Joe Elliott <[email protected]> * it's me and you linter. how many times are you going to do this to me? Signed-off-by: Joe Elliott <[email protected]> * lint and tests Signed-off-by: Joe Elliott <[email protected]> * restored live store partition tests Signed-off-by: Joe Elliott <[email protected]> * massive lint Signed-off-by: Joe Elliott <[email protected]> * cleanup Signed-off-by: Joe Elliott <[email protected]> * lint >.< Signed-off-by: Joe Elliott <[email protected]> * wups Signed-off-by: Joe Elliott <[email protected]> * cleanup and stabilizing Signed-off-by: Joe Elliott <[email protected]> * cleanup Signed-off-by: Joe Elliott <[email protected]> * omg Signed-off-by: Joe Elliott <[email protected]> * added config file. removed empty file. deleted some debug code Signed-off-by: Joe Elliott <[email protected]> * even more fixes Signed-off-by: Joe Elliott <[email protected]> * maybe this works? maybe it was all local networking issues Signed-off-by: Joe Elliott <[email protected]> * review Signed-off-by: Joe Elliott <[email protected]> * backed off huge write timeout. added missing config file Signed-off-by: Joe Elliott <[email protected]> * restore disable parallelism setting. restore beefy write timeout Signed-off-by: Joe Elliott <[email protected]> * apparently another test relied on the http receiver Signed-off-by: Joe Elliott <[email protected]> * livestore avail zone! Signed-off-by: Joe Elliott <[email protected]> * add support for v1 traces and tags endpoints Signed-off-by: Joe Elliott <[email protected]> * review Signed-off-by: Joe Elliott <[email protected]> * changed the location of the changelog entry to avoid conflicts Signed-off-by: Joe Elliott <[email protected]> --------- Signed-off-by: Joe Elliott <[email protected]>
56 lines
1.7 KiB
Go
56 lines
1.7 KiB
Go
package deployments
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/grafana/tempo/integration/util"
|
|
tempoUtil "github.com/grafana/tempo/pkg/util"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestFailureModes(t *testing.T) {
|
|
util.RunIntegrationTests(t, util.TestHarnessConfig{
|
|
Components: util.ComponentsRecentDataQuerying | util.ComponentsBackendQuerying,
|
|
}, func(h *util.TempoHarness) {
|
|
h.WaitTracesWritable(t)
|
|
|
|
info := tempoUtil.NewTraceInfo(time.Now(), "")
|
|
require.NoError(t, h.WriteTraceInfo(info, ""))
|
|
|
|
h.WaitTracesQueryable(t, 1)
|
|
|
|
apiClient := h.APIClientHTTP("")
|
|
util.QueryAndAssertTrace(t, apiClient, info)
|
|
|
|
// stop one live store. data should still be queryable
|
|
liveStoreB := h.Services[util.ServiceLiveStoreZoneB]
|
|
err := liveStoreB.Stop()
|
|
require.NoError(t, err)
|
|
|
|
_, err = apiClient.QueryTraceV2(info.HexID())
|
|
require.NoError(t, err)
|
|
|
|
// stop the second live store. querying should fail
|
|
liveStoreA := h.Services[util.ServiceLiveStoreZoneA]
|
|
err = liveStoreA.Stop()
|
|
require.NoError(t, err)
|
|
_, err = apiClient.QueryTraceV2(info.HexID())
|
|
require.Error(t, err)
|
|
|
|
h.WaitTracesWrittenToBackend(t, 1)
|
|
|
|
// stop the block builder now that the trace is in the backend. ingestion should still work
|
|
blockBuilder := h.Services[util.ServiceBlockBuilder]
|
|
err = blockBuilder.Stop()
|
|
require.NoError(t, err)
|
|
require.NoError(t, h.WriteTraceInfo(tempoUtil.NewTraceInfo(time.Now(), ""), ""))
|
|
|
|
// restart the query frontend to do backend querying only. querying should work again
|
|
h.ForceBackendQuerying(t)
|
|
apiClient = h.APIClientHTTP("")
|
|
_, err = apiClient.SearchTraceQLWithRange("{}", time.Now().Add(-time.Hour).Unix(), time.Now().Unix())
|
|
require.NoError(t, err)
|
|
})
|
|
}
|