Skip to content

Commit

Permalink
Merge pull request #114 from appuio/query/appcat-vshn-postgres
Browse files Browse the repository at this point in the history
Add billing query for VSHN PostgreSQL standalone
  • Loading branch information
glrf authored Jan 31, 2023
2 parents 5829fc3 + 861930a commit 028a367
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 1 deletion.
9 changes: 9 additions & 0 deletions pkg/db/seeds.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ var appuioCloudLoadbalancerQuery string
//go:embed seeds/appuio_cloud_persistent_storage.promql
var appuioCloudPersistentStorageQuery string

//go:embed seeds/appcat_postgresql_vshn_standalone.promql
var appcatPostgresqlVSHNStandalone string

// DefaultQueries consists of default starter queries.
var DefaultQueries = []Query{
{
Expand Down Expand Up @@ -57,6 +60,12 @@ var DefaultQueries = []Query{
Query: appuioCloudPersistentStorageQuery,
Unit: "GiB",
},
{
Name: "appcat_postgresql_vshn_standalone",
Description: "Number of VSHN managed standalone postgres instances",
Query: appcatPostgresqlVSHNStandalone,
Unit: "Instances",
},
}

// Seed seeds the database with "starter" data.
Expand Down
64 changes: 64 additions & 0 deletions pkg/db/seeds/appcat_postgresql_vshn_standalone.promql
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Sum values over one hour and get mean
sum_over_time(
# Udpate label product: $product:$provider:$tenant_id:$claim_namespace:$architecture
label_join(
# Add label category: $provider:$claim_namespace
label_join(
# Add label architecture: standalone-$SLA, where $SLA is the content of label appcat.vshn.io/sla
label_replace(
# Add label provider: vshn
label_replace(
# Add label product: postgres
label_replace(
# Default appcat.vshn.io/sla to besteffort if it is not set
label_replace(
# Copy label appcat.vshn.io/namespace to label claim_namespace
label_replace(
# Copy label appuio.io/organization to label tenant_id
label_replace(
# Fetch all namespaces with label appcat.vshn.io/servicename="postgresql-standalone"
kube_namespace_labels{label_appuio_io_organization=~".+", label_appcat_vshn_io_servicename="postgresql-standalone"},
"tenant_id",
"$1",
"label_appuio_io_organization",
"(.*)"
),
"claim_namespace",
"$1",
"label_appcat_vshn_io_claim_namespace",
"(.*)"
),
"label_appcat_vshn_io_sla",
"besteffort",
"label_appcat_vshn_io_sla",
"^$"
),
"product",
"postgres",
"",
""
),
"provider",
"vshn",
"",
""
),
"architecture",
"standalone-$1",
"label_appcat_vshn_io_sla",
"(.*)"
),
"category",
":",
"provider",
"claim_namespace"
),
"product",
":",
"product",
"provider",
"tenant_id",
"claim_namespace",
"architecture"
)[59m:1m]
)/60
2 changes: 1 addition & 1 deletion pkg/db/seeds_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func (s *SeedsTestSuite) TestSeedDefaultQueries() {
_, err := d.Exec("DELETE FROM queries")
require.NoError(t, err)

expQueryNum := 5
expQueryNum := 6

count := "SELECT COUNT(*) FROM queries"
requireQueryEqual(t, d, 0, count)
Expand Down

0 comments on commit 028a367

Please sign in to comment.