Source File
monitored_resources.go
Belonging Package
contrib.go.opencensus.io/exporter/stackdriver/monitoredresource/gcp
package gcp
import (
)
type Interface interface {
type GKEContainer struct {
func ( *GKEContainer) () ( string, map[string]string) {
= map[string]string{
"project_id": .ProjectID,
"cluster_name": .ClusterName,
"container_name": .ContainerName,
}
var string
if .LoggingMonitoringV2Enabled {
= "k8s_container"
["pod_name"] = .PodID
["namespace_name"] = .NamespaceID
["location"] = .Zone
} else {
= "gke_container"
["pod_id"] = .PodID
["namespace_id"] = .NamespaceID
["zone"] = .Zone
["instance_id"] = .InstanceID
}
return ,
}
type GCEInstance struct {
func ( *GCEInstance) () ( string, map[string]string) {
= map[string]string{
"project_id": .ProjectID,
"instance_id": .InstanceID,
"zone": .Zone,
}
return "gce_instance",
}
func () Interface {
return func() Interface {
detectOnce.Do(func() {
autoDetected = detectResourceType(retrieveGCPMetadata())
})
return autoDetected
}()
}
func ( *gcpMetadata) *GCEInstance {
:= GCEInstance{
ProjectID: .projectID,
InstanceID: .instanceID,
Zone: .zone,
}
return &
}
func ( *gcpMetadata) *GKEContainer {
:= GKEContainer{
ProjectID: .projectID,
InstanceID: .instanceID,
Zone: .zone,
ContainerName: .containerName,
ClusterName: .clusterName,
NamespaceID: .namespaceID,
PodID: .podID,
LoggingMonitoringV2Enabled: .monitoringV2,
}
return &
}
var detectOnce sync.Once
func ( *gcpMetadata) Interface {
if os.Getenv("KUBERNETES_SERVICE_HOST") != "" &&
!= nil && .instanceID != "" {
return createGKEContainerMonitoredResource()
} else if != nil && .instanceID != "" {
return createGCEInstanceMonitoredResource()
}
return nil
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |