Skip to content

Commit b56a04d

Browse files
committed
Add more checks for values
1 parent 4f6a352 commit b56a04d

File tree

2 files changed

+34
-11
lines changed

2 files changed

+34
-11
lines changed

Diff for: model/model.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ const (
422422

423423
Logs MetricType = "logs" // log timeseries type.
424424

425-
KubernetesResource MetricType = "kubernetes_resource" // kubernetes resource timeseries type.
425+
//KubernetesResource MetricType = "kubernetes_resource" // kubernetes resource timeseries type.
426426
)
427427

428428
type GetLogMetricRequest struct {

Diff for: tools/get_attribute_values.go

+33-10
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
type GetAttributeValuesHandlerArgs struct {
14-
Type model.MetricType `json:"type" jsonschema:"required,description=The type of telemetry data to get the attribute keys and values for. Either 'logs' or 'trace' or 'metric' or 'kubernetes_resource'"`
14+
Type model.MetricType `json:"type" jsonschema:"required,description=The type of telemetry data to get the attribute keys and values for. Either 'logs' or 'trace' or 'metric'."`
1515
TimeConfig utils.TimeConfig `json:"time_config" jsonschema:"required,description=The time period to use while getting the possible values of log attributes. e.g. if you want to get values for the last 5 minutes you would set time_period=5 and time_window=Minutes. You can also set an absoulute time range by setting start_time and end_time"`
1616
Attribute string `json:"attribute" jsonschema:"required,description=The attribute key to get the possible values for. Possible values for attribute should be obtained from get_attribute_keys tool call for the same type"`
1717
MetricName string `json:"metricName" jsonschema:"description=REQUIRED IF THE TYPE IS 'metric'. The name of the metric to get the possible attribute keys and values."`
@@ -24,13 +24,23 @@ func GetAttributeValuesHandler(ctx context.Context, arguments GetAttributeValues
2424
if err != nil {
2525
return nil, fmt.Errorf("error calculating time range: %v", err)
2626
}
27+
28+
err = CheckAttributes(ctx, arguments.Type, arguments.Filters, arguments.ExcludeFilters, []string{}, nil)
29+
if err != nil {
30+
return nil, err
31+
}
32+
2733
request := model.GetAttributeValuesRequest{
2834
Type: arguments.Type,
2935
Attribute: arguments.Attribute,
3036
}
3137

3238
switch arguments.Type {
3339
case model.Logs:
40+
err = CheckAttributes(ctx, arguments.Type, arguments.Filters, arguments.ExcludeFilters, []string{}, nil)
41+
if err != nil {
42+
return nil, err
43+
}
3444
modelRequest := model.LogSummaryRequest{
3545
StartTime: startTime,
3646
EndTime: endTime,
@@ -40,6 +50,10 @@ func GetAttributeValuesHandler(ctx context.Context, arguments GetAttributeValues
4050
request.Logs = &modelRequest
4151
break
4252
case model.Trace:
53+
err = CheckAttributes(ctx, arguments.Type, arguments.Filters, arguments.ExcludeFilters, []string{}, nil)
54+
if err != nil {
55+
return nil, err
56+
}
4357
modelRequest := model.TracesSummaryRequest{
4458
StartTime: startTime,
4559
EndTime: endTime,
@@ -49,6 +63,14 @@ func GetAttributeValuesHandler(ctx context.Context, arguments GetAttributeValues
4963
request.Trace = &modelRequest
5064
break
5165
case model.Metric:
66+
err = CheckAttributes(ctx, arguments.Type, arguments.Filters, arguments.ExcludeFilters, []string{}, &model.GetMetricAttributesRequest{
67+
StartTime: startTime,
68+
EndTime: endTime,
69+
MetricName: arguments.MetricName,
70+
})
71+
if err != nil {
72+
return nil, err
73+
}
5274
modelRequest := model.GetMetricAttributesRequest{
5375
StartTime: startTime,
5476
EndTime: endTime,
@@ -57,15 +79,16 @@ func GetAttributeValuesHandler(ctx context.Context, arguments GetAttributeValues
5779
}
5880
request.Metric = &modelRequest
5981
break
60-
case model.KubernetesResource:
61-
modelRequest := model.GetKubernetesResourceRequest{
62-
StartTime: startTime,
63-
EndTime: endTime,
64-
Filters: arguments.Filters,
65-
ExcludeFilters: arguments.Filters,
66-
}
67-
request.Kubernetes = &modelRequest
68-
break
82+
//case model.KubernetesResource:
83+
//
84+
// modelRequest := model.GetKubernetesResourceRequest{
85+
// StartTime: startTime,
86+
// EndTime: endTime,
87+
// Filters: arguments.Filters,
88+
// ExcludeFilters: arguments.Filters,
89+
// }
90+
// request.Kubernetes = &modelRequest
91+
// break
6992
default:
7093
return nil, fmt.Errorf("invalid type: %v", arguments.Type)
7194
}

0 commit comments

Comments
 (0)