const ( // MonitoringScope is the scope for Stackdriver Metadata API MonitoringScope = "https://www.googleapis.com/auth/monitoring" )
var ( // CustomMetricName is the metrics name used in test cases. CustomMetricName = "foo" // UnusedMetricName is the unused metrics name used in test cases. UnusedMetricName = "unused" // CustomMetricValue is the value for CustomMetricName. CustomMetricValue = int64(448) // UnusedMetricValue is the value for UnusedMetricName. UnusedMetricValue = int64(446) // StackdriverExporter is exporter name. StackdriverExporter = "stackdriver-exporter" // HPAPermissions is a ClusterRoleBinding that grants unauthenticated user permissions granted for // HPA for testing purposes, i.e. it should grant permission to read custom metrics. HPAPermissions = &rbacv1.ClusterRoleBinding{ ObjectMeta: metav1.ObjectMeta{ Name: "custom-metrics-reader", }, RoleRef: rbacv1.RoleRef{ APIGroup: "rbac.authorization.k8s.io", Kind: "ClusterRole", Name: "system:controller:horizontal-pod-autoscaler", }, Subjects: []rbacv1.Subject{ { APIGroup: "rbac.authorization.k8s.io", Kind: "Group", Name: "system:unauthenticated", }, }, } // StagingDeploymentsLocation is the location where the adapter deployment files are stored. StagingDeploymentsLocation = "https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/staging/" // AdapterForOldResourceModel is file name for the old resource model. AdapterForOldResourceModel = "adapter_old_resource_model.yaml" // AdapterForNewResourceModel is file name for the new resource model. AdapterForNewResourceModel = "adapter_new_resource_model.yaml" // AdapterDefault is the default model. AdapterDefault = AdapterForOldResourceModel // ClusterAdminBinding is the cluster rolebinding name for test cases. ClusterAdminBinding = "e2e-test-cluster-admin-binding" )
func CleanupAdapter(adapterDeploymentFile string)
CleanupAdapter deletes Custom Metrics - Stackdriver adapter deployments.
func CleanupDescriptors(service *gcm.Service, projectID string)
CleanupDescriptors deletes descriptors for metrics: CustomMetricName and UnusedMetricName. TODO: Cleanup time series as well
func CreateAdapter(adapterDeploymentFile string) error
CreateAdapter creates Custom Metrics - Stackdriver adapter adapterDeploymentFile should be a filename for adapter deployment located in StagingDeploymentLocation
func CreateDescriptors(service *gcm.Service, projectID string) error
CreateDescriptors creates descriptors for metrics: CustomMetricName and UnusedMetricName.
func PrometheusExporterDeployment(name, namespace string, replicas int32, metricValue int64) *appsv1.Deployment
PrometheusExporterDeployment is a Deployment of simple application with two containers one exposing a metric in prometheus format and second a prometheus-to-sd container that scrapes the metric and pushes it to stackdriver.
func SimpleStackdriverExporterDeployment(name, namespace string, replicas int32, metricValue int64) *appsv1.Deployment
SimpleStackdriverExporterDeployment is a Deployment of simple application that exports a metric of fixed value to Stackdriver in a loop.
func StackdriverExporterDeployment(name, namespace string, replicas int32, containers []CustomMetricContainerSpec) *appsv1.Deployment
StackdriverExporterDeployment is a Deployment of an application that can expose an arbitrary amount of metrics of fixed value to Stackdriver in a loop. Each metric is exposed by a different container in one pod. The metric names and values are configured via the containers parameter.
func StackdriverExporterPod(podName, namespace, podLabel, metricName string, metricValue int64) *v1.Pod
StackdriverExporterPod is a Pod of simple application that exports a metric of fixed value to Stackdriver in a loop.
CustomMetricContainerSpec allows to specify a config for StackdriverExporterDeployment with multiple containers exporting different metrics.
type CustomMetricContainerSpec struct { Name string MetricName string MetricValue int64 }
Metadata has the information fetched from Stackdriver metadata API.
type Metadata struct { Results []map[string]interface{} }
Resource contains the resource type and labels from Stackdriver metadata API.
type Resource struct {
// contains filtered or unexported fields
}