Skip to content

Commit 0b18ca3

Browse files
committed
fix: address comments
1 parent 145f7c9 commit 0b18ca3

3 files changed

Lines changed: 47 additions & 3 deletions

File tree

cmd/exporter/exporter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ func providerFlags(fs *flag.FlagSet, cfg *config.Config) {
7979
fs.Var(&cfg.Providers.GCP.Services, "gcp.services", "GCP service(s).")
8080
flag.StringVar(&cfg.Providers.AWS.Region, "aws.region", "", "AWS region")
8181
flag.StringVar(&cfg.Providers.AWS.RoleARN, "aws.roleARN", "", "Optional AWS role ARN to assume for cross-account access.")
82-
fs.StringVar(&cfg.Providers.AWS.BedrockFamilyFilter, "aws.bedrock.families", "anthropic|amazon", "Regex matched against the Bedrock model family label. Only matching families are emitted.")
82+
fs.StringVar(&cfg.Providers.AWS.BedrockFamilyFilter, "aws.bedrock.families", ".*", "Regex matched against the Bedrock model family label. Only matching families are emitted.")
8383
// TODO - PUT PROJECT-ID UNDER GCP
8484
flag.StringVar(&cfg.ProjectID, "project-id", "", "Project ID to target.")
8585
flag.StringVar(&cfg.Providers.Azure.SubscriptionId, "azure.subscription-id", "", "Azure subscription ID to pull data from.")

pkg/aws/bedrock/bedrock.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ type bedrockProductInfo struct {
7272
} `json:"terms"`
7373
}
7474

75-
const defaultFamilyFilter = "anthropic|amazon"
75+
const defaultFamilyFilter = ".*"
7676

7777
type Config struct {
7878
Regions []ec2types.Region

pkg/aws/bedrock/bedrock_test.go

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ func TestCollect_LabelsBatchPriceTier(t *testing.T) {
189189
assert.Equal(t, "Claude3Sonnet", m.Labels["model_id"])
190190
}
191191

192-
func TestCollect_SkipsNonAnthropicAmazonFamilies(t *testing.T) {
192+
func TestCollect_FamilyFilterRegexFiltersOtherFamilies(t *testing.T) {
193193
ctrl := gomock.NewController(t)
194194
defer ctrl.Finish()
195195

@@ -206,6 +206,7 @@ func TestCollect_SkipsNonAnthropicAmazonFamilies(t *testing.T) {
206206
collector, err := New(t.Context(), &Config{
207207
Regions: []ec2types.Region{{RegionName: aws.String("us-east-1")}},
208208
PricingClient: pricingClient,
209+
FamilyFilter: "anthropic|amazon",
209210
Logger: testLogger(),
210211
AccountID: "123456789012",
211212
})
@@ -220,6 +221,49 @@ func TestCollect_SkipsNonAnthropicAmazonFamilies(t *testing.T) {
220221
assert.Equal(t, "Claude3Sonnet", m.Labels["model_id"])
221222
}
222223

224+
func TestCollect_FamilyFilterDefaultEmitsAllFamilies(t *testing.T) {
225+
ctrl := gomock.NewController(t)
226+
defer ctrl.Finish()
227+
228+
pricingClient := mockclient.NewMockClient(ctrl)
229+
pricingClient.EXPECT().
230+
ListBedrockPrices(gomock.Any(), "us-east-1").
231+
Return([]string{
232+
inputPriceJSON("us-east-1", "USE1", "Claude3Sonnet", "Anthropic", "0.00300"),
233+
inputPriceJSON("us-east-1", "USE1", "Llama4-Scout-17B", "Meta", "0.00017"),
234+
inputPriceJSON("us-east-1", "USE1", "NovaPro", "", "0.00080"),
235+
}, nil).
236+
Times(1)
237+
238+
collector, err := New(t.Context(), &Config{
239+
Regions: []ec2types.Region{{RegionName: aws.String("us-east-1")}},
240+
PricingClient: pricingClient,
241+
Logger: testLogger(),
242+
AccountID: "123456789012",
243+
})
244+
require.NoError(t, err)
245+
246+
results, err := collectMetricResults(t, collector)
247+
require.NoError(t, err)
248+
require.Len(t, results, 3)
249+
}
250+
251+
func TestNew_ReturnsErrorForInvalidFamilyFilterRegex(t *testing.T) {
252+
ctrl := gomock.NewController(t)
253+
defer ctrl.Finish()
254+
255+
pricingClient := mockclient.NewMockClient(ctrl)
256+
257+
_, err := New(t.Context(), &Config{
258+
Regions: []ec2types.Region{{RegionName: aws.String("us-east-1")}},
259+
PricingClient: pricingClient,
260+
FamilyFilter: "[invalid",
261+
Logger: testLogger(),
262+
})
263+
require.Error(t, err)
264+
assert.Contains(t, err.Error(), "invalid bedrock family filter")
265+
}
266+
223267
func TestCollect_SkipsNonTextTokenSKUs(t *testing.T) {
224268
ctrl := gomock.NewController(t)
225269
defer ctrl.Finish()

0 commit comments

Comments
 (0)