mirror of
https://github.com/grafana/grafana.git
synced 2025-07-29 17:02:20 +08:00

* CloudWatch: Backport aws-sdk-go-v2 update from external plugin * Review feedback & cleaning up a couple typos
60 lines
1.8 KiB
Go
60 lines
1.8 KiB
Go
package models
|
|
|
|
import (
|
|
cloudwatchtypes "github.com/aws/aws-sdk-go-v2/service/cloudwatch/types"
|
|
)
|
|
|
|
// QueryRowResponse represents the GetMetricData response for a query row in the query editor.
|
|
type QueryRowResponse struct {
|
|
partialDataSet map[string]*cloudwatchtypes.MetricDataResult
|
|
ErrorCodes map[string]bool
|
|
HasArithmeticError bool
|
|
ArithmeticErrorMessage string
|
|
HasPermissionError bool
|
|
PermissionErrorMessage string
|
|
Metrics []*cloudwatchtypes.MetricDataResult
|
|
StatusCode cloudwatchtypes.StatusCode
|
|
}
|
|
|
|
func NewQueryRowResponse(errors map[string]bool) QueryRowResponse {
|
|
return QueryRowResponse{
|
|
partialDataSet: make(map[string]*cloudwatchtypes.MetricDataResult),
|
|
ErrorCodes: errors,
|
|
HasArithmeticError: false,
|
|
ArithmeticErrorMessage: "",
|
|
Metrics: []*cloudwatchtypes.MetricDataResult{},
|
|
}
|
|
}
|
|
|
|
func (q *QueryRowResponse) AddMetricDataResult(mdr *cloudwatchtypes.MetricDataResult) {
|
|
if mdr.Label == nil {
|
|
return
|
|
}
|
|
|
|
if partialData, ok := q.partialDataSet[*mdr.Label]; ok {
|
|
partialData.Timestamps = append(partialData.Timestamps, mdr.Timestamps...)
|
|
partialData.Values = append(partialData.Values, mdr.Values...)
|
|
q.StatusCode = mdr.StatusCode
|
|
if mdr.StatusCode != cloudwatchtypes.StatusCodePartialData {
|
|
delete(q.partialDataSet, *mdr.Label)
|
|
}
|
|
return
|
|
}
|
|
|
|
q.Metrics = append(q.Metrics, mdr)
|
|
q.StatusCode = mdr.StatusCode
|
|
if mdr.StatusCode == cloudwatchtypes.StatusCodePartialData {
|
|
q.partialDataSet[*mdr.Label] = mdr
|
|
}
|
|
}
|
|
|
|
func (q *QueryRowResponse) AddArithmeticError(message *string) {
|
|
q.HasArithmeticError = true
|
|
q.ArithmeticErrorMessage = *message
|
|
}
|
|
|
|
func (q *QueryRowResponse) AddPermissionError(message *string) {
|
|
q.HasPermissionError = true
|
|
q.PermissionErrorMessage = *message
|
|
}
|