Skip to content

Commit

Permalink
Merge pull request #569 from sapcc/add-override-quota-metrics
Browse files Browse the repository at this point in the history
expose project_resources.override_quota_from_config in data metrics
  • Loading branch information
majewsky authored Sep 25, 2024
2 parents 2bb185b + 0ffed9c commit 7539525
Showing 1 changed file with 21 additions and 13 deletions.
34 changes: 21 additions & 13 deletions internal/collector/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@ func (d *DataMetricsReporter) ServeHTTP(w http.ResponseWriter, r *http.Request)
printDataMetrics(bw, metricsBySeries, "limes_domain_quota", `Assigned quota of a Limes resource for an OpenStack domain.`)
printDataMetrics(bw, metricsBySeries, "limes_project_backendquota", `Actual quota of a Limes resource for an OpenStack project.`)
printDataMetrics(bw, metricsBySeries, "limes_project_committed_per_az", `Sum of all active commitments of a Limes resource for an OpenStack project, grouped by availability zone and state.`)
printDataMetrics(bw, metricsBySeries, "limes_project_override_quota_from_config", `Quota override for a Limes resource for an OpenStack project, if any. (Value comes from cluster configuration.)`)
printDataMetrics(bw, metricsBySeries, "limes_project_physical_usage", `Actual (physical) usage of a Limes resource for an OpenStack project.`)
printDataMetrics(bw, metricsBySeries, "limes_project_quota", `Assigned quota of a Limes resource for an OpenStack project.`)
printDataMetrics(bw, metricsBySeries, "limes_project_rate_usage", `Usage of a Limes rate for an OpenStack project. These are counters that never reset.`)
Expand Down Expand Up @@ -471,7 +472,9 @@ var projectMetricsQuery = sqlext.SimplifyWhitespace(`
FROM project_az_resources
GROUP BY resource_id
)
SELECT d.name, d.uuid, p.name, p.uuid, ps.type, pr.name, pr.quota, pr.backend_quota, pas.usage, pas.physical_usage, pas.has_physical_usage
SELECT d.name, d.uuid, p.name, p.uuid, ps.type, pr.name,
pr.quota, pr.backend_quota, pr.override_quota_from_config,
pas.usage, pas.physical_usage, pas.has_physical_usage
FROM domains d
JOIN projects p ON p.domain_id = d.id
JOIN project_services ps ON ps.project_id = p.id
Expand Down Expand Up @@ -635,20 +638,21 @@ func (d *DataMetricsReporter) collectMetricsBySeries() (map[string][]dataMetric,
// fetch values for project level (quota/usage)
err = sqlext.ForeachRow(d.DB, projectMetricsQuery, nil, func(rows *sql.Rows) error {
var (
domainName string
domainUUID string
projectName string
projectUUID string
dbServiceType db.ServiceType
dbResourceName liquid.ResourceName
quota *uint64
backendQuota *int64
usage uint64
physicalUsage uint64
hasPhysicalUsage bool
domainName string
domainUUID string
projectName string
projectUUID string
dbServiceType db.ServiceType
dbResourceName liquid.ResourceName
quota *uint64
backendQuota *int64
overrideQuotaFromConfig *uint64
usage uint64
physicalUsage uint64
hasPhysicalUsage bool
)
err := rows.Scan(&domainName, &domainUUID, &projectName, &projectUUID, &dbServiceType, &dbResourceName,
&quota, &backendQuota, &usage, &physicalUsage, &hasPhysicalUsage)
&quota, &backendQuota, &overrideQuotaFromConfig, &usage, &physicalUsage, &hasPhysicalUsage)
if err != nil {
return err
}
Expand All @@ -672,6 +676,10 @@ func (d *DataMetricsReporter) collectMetricsBySeries() (map[string][]dataMetric,
result["limes_project_backendquota"] = append(result["limes_project_backendquota"], metric)
}
}
if overrideQuotaFromConfig != nil {
metric := dataMetric{Labels: labels, Value: float64(*backendQuota)}
result["limes_project_override_quota_from_config"] = append(result["limes_project_override_quota_from_config"], metric)
}
if d.ReportZeroes || usage != 0 {
metric := dataMetric{Labels: labels, Value: float64(usage)}
result["limes_project_usage"] = append(result["limes_project_usage"], metric)
Expand Down

0 comments on commit 7539525

Please sign in to comment.