in pkg/aws/metrics/instruments.go [34:85]
func newInstruments(registerer prometheus.Registerer) (*instruments, error) {
apiCallsTotal := prometheus.NewCounterVec(prometheus.CounterOpts{
Subsystem: metricSubsystemAWS,
Name: metricAPICallsTotal,
Help: "Total number of SDK API calls from the customer's code to AWS services",
}, []string{labelService, labelOperation, labelStatusCode, labelErrorCode})
apiCallDurationSeconds := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Subsystem: metricSubsystemAWS,
Name: metricAPICallDurationSeconds,
Help: "Perceived latency from when your code makes an SDK call, includes retries",
}, []string{labelService, labelOperation})
apiCallRetries := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Subsystem: metricSubsystemAWS,
Name: metricAPICallRetries,
Help: "Number of times the SDK retried requests to AWS services for SDK API calls",
Buckets: []float64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
}, []string{labelService, labelOperation})
apiRequestsTotal := prometheus.NewCounterVec(prometheus.CounterOpts{
Subsystem: metricSubsystemAWS,
Name: metricAPIRequestsTotal,
Help: "Total number of HTTP requests that the SDK made",
}, []string{labelService, labelOperation, labelStatusCode, labelErrorCode})
apiRequestDurationSecond := prometheus.NewHistogramVec(prometheus.HistogramOpts{
Subsystem: metricSubsystemAWS,
Name: metricAPIRequestDurationSeconds,
Help: "Latency of an individual HTTP request to the service endpoint",
}, []string{labelService, labelOperation})
if err := registerer.Register(apiCallsTotal); err != nil {
return nil, err
}
if err := registerer.Register(apiCallDurationSeconds); err != nil {
return nil, err
}
if err := registerer.Register(apiCallRetries); err != nil {
return nil, err
}
if err := registerer.Register(apiRequestsTotal); err != nil {
return nil, err
}
if err := registerer.Register(apiRequestDurationSecond); err != nil {
return nil, err
}
return &instruments{
apiCallsTotal: apiCallsTotal,
apiCallDurationSeconds: apiCallDurationSeconds,
apiCallRetries: apiCallRetries,
apiRequestsTotal: apiRequestsTotal,
apiRequestDurationSecond: apiRequestDurationSecond,
}, nil
}