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

Function TestDrain_Train_MultipleClusters

pkg/drain/drain_test.go:88–119  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

86}
87
88func TestDrain_Train_MultipleClusters(t *testing.T) {
89 t.Parallel()
90
91 drain := New("test-tenant", DefaultConfig())
92
93 // Train with different patterns
94 spanNames := []string{
95 "GET /api/users/123",
96 "GET /api/users/456",
97 "POST /api/posts/789",
98 "POST /api/posts/101",
99 "PUT /api/comments/202",
100 "DELETE /api/comments/303",
101 }
102
103 for _, spanName := range spanNames {
104 cluster := drain.Train(spanName)
105 require.NotNil(t, cluster)
106 }
107
108 allClusters := drain.Clusters()
109 // Should have multiple distinct clusters (at least 2-3 different patterns)
110 require.GreaterOrEqual(t, len(allClusters), 2, "should have multiple clusters")
111
112 // Verify clusters have different patterns
113 patterns := make(map[string]bool)
114 for _, cluster := range allClusters {
115 pattern := cluster.String()
116 patterns[pattern] = true
117 }
118 require.GreaterOrEqual(t, len(patterns), 2, "should have multiple distinct patterns")
119}
120
121func TestDrain_Train_MinTokensEnforcement(t *testing.T) {
122 t.Parallel()

Callers

nothing calls this directly

Calls 5

DefaultConfigFunction · 0.85
TrainMethod · 0.80
ClustersMethod · 0.80
NewFunction · 0.70
StringMethod · 0.45

Tested by

no test coverage detected