consul/command/operator/usage/instances/usage_instances_oss.go
Kyle Havlovitz 898e59b13c
Add the operator usage instances command and api endpoint (#16205)
This endpoint shows total services, connect service instances and
billable service instances in the local datacenter or globally. Billable
instances = total service instances - connect services - consul server instances.
2023-02-08 12:07:21 -08:00

40 lines
954 B
Go

//go:build !consulent
// +build !consulent
package instances
import (
"github.com/hashicorp/consul/acl"
"github.com/hashicorp/consul/api"
)
const showPartitionNamespace = false
func getBillableInstanceCounts(usage api.ServiceUsage, datacenter string) []serviceCount {
return []serviceCount{
{
datacenter: datacenter,
partition: acl.DefaultPartitionName,
namespace: acl.DefaultNamespaceName,
instanceCount: usage.BillableServiceInstances,
services: usage.Services,
},
}
}
func getConnectInstanceCounts(usage api.ServiceUsage, datacenter string) []serviceCount {
var counts []serviceCount
for serviceType, instanceCount := range usage.ConnectServiceInstances {
counts = append(counts, serviceCount{
datacenter: datacenter,
partition: acl.DefaultPartitionName,
namespace: acl.DefaultNamespaceName,
serviceType: serviceType,
instanceCount: instanceCount,
})
}
return counts
}