...

Package monitoring

import "k8s.io/kubernetes/test/e2e/instrumentation/monitoring"
Overview
Index

Overview ▾

Constants

const (

    // MonitoringScope is the scope for Stackdriver Metadata API
    MonitoringScope = "https://www.googleapis.com/auth/monitoring"
)

Variables

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

func CleanupAdapter(adapterDeploymentFile string)

CleanupAdapter deletes Custom Metrics - Stackdriver adapter deployments.

func CleanupDescriptors

func CleanupDescriptors(service *gcm.Service, projectID string)

CleanupDescriptors deletes descriptors for metrics: CustomMetricName and UnusedMetricName. TODO: Cleanup time series as well

func CreateAdapter

func CreateAdapter(adapterDeploymentFile string) error

CreateAdapter creates Custom Metrics - Stackdriver adapter adapterDeploymentFile should be a filename for adapter deployment located in StagingDeploymentLocation

func CreateDescriptors

func CreateDescriptors(service *gcm.Service, projectID string) error

CreateDescriptors creates descriptors for metrics: CustomMetricName and UnusedMetricName.

func PrometheusExporterDeployment

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

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

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

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.

type CustomMetricContainerSpec

CustomMetricContainerSpec allows to specify a config for StackdriverExporterDeployment with multiple containers exporting different metrics.

type CustomMetricContainerSpec struct {
    Name        string
    MetricName  string
    MetricValue int64
}

type Metadata

Metadata has the information fetched from Stackdriver metadata API.

type Metadata struct {
    Results []map[string]interface{}
}

type Resource

Resource contains the resource type and labels from Stackdriver metadata API.

type Resource struct {
    // contains filtered or unexported fields
}