Skip to content
This repository was archived by the owner on Dec 1, 2018. It is now read-only.

Commit 495ed5a

Browse files
committed
Add an option to read Host ID from node annotation if ExternalID is not available
1 parent f2199dc commit 495ed5a

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

events/sinks/factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func (this *SinkFactory) BuildAll(uris flags.Uris) []core.EventSink {
5959
for _, uri := range uris {
6060
sink, err := this.Build(uri)
6161
if err != nil {
62-
glog.Errorf("Failed to create %s sink: %v", uri, err)
62+
glog.Errorf("Failed to create %v sink: %v", uri, err)
6363
continue
6464
}
6565
result = append(result, sink)

metrics/sinks/factory.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func (this *SinkFactory) BuildAll(uris flags.Uris, historicalUri string, disable
8787
for _, uri := range uris {
8888
sink, err := this.Build(uri)
8989
if err != nil {
90-
glog.Errorf("Failed to create %s sink: %v", uri, err)
90+
glog.Errorf("Failed to create %v sink: %v", uri, err)
9191
continue
9292
}
9393
if uri.Key == "metric" {

metrics/sources/summary/summary.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -409,9 +409,10 @@ func (this *summaryMetricsSource) getSystemContainerName(c *stats.ContainerStats
409409

410410
// TODO: The summaryProvider duplicates a lot of code from kubeletProvider, and should be refactored.
411411
type summaryProvider struct {
412-
nodeLister v1listers.NodeLister
413-
reflector *cache.Reflector
414-
kubeletClient *kubelet.KubeletClient
412+
nodeLister v1listers.NodeLister
413+
reflector *cache.Reflector
414+
kubeletClient *kubelet.KubeletClient
415+
hostIDAnnotation string
415416
}
416417

417418
func (this *summaryProvider) GetMetricsSources() []MetricsSource {
@@ -442,10 +443,14 @@ func (this *summaryProvider) getNodeInfo(node *kube_api.Node) (NodeInfo, error)
442443
if hostname == "" {
443444
hostname = node.Name
444445
}
446+
hostID := node.Spec.ExternalID
447+
if hostID == "" && this.hostIDAnnotation != "" {
448+
hostID = node.Annotations[this.hostIDAnnotation]
449+
}
445450
info := NodeInfo{
446451
NodeName: node.Name,
447452
HostName: hostname,
448-
HostID: node.Spec.ExternalID,
453+
HostID: hostID,
449454
Host: kubelet.Host{
450455
IP: ip,
451456
Port: this.kubeletClient.GetPort(),
@@ -456,6 +461,12 @@ func (this *summaryProvider) getNodeInfo(node *kube_api.Node) (NodeInfo, error)
456461
}
457462

458463
func NewSummaryProvider(uri *url.URL) (MetricsSourceProvider, error) {
464+
opts := uri.Query()
465+
466+
hostIDAnnotation := ""
467+
if len(opts["host_id_annotation"]) > 0 {
468+
hostIDAnnotation = opts["host_id_annotation"][0]
469+
}
459470
// create clients
460471
kubeConfig, kubeletConfig, err := kubelet.GetKubeConfigs(uri)
461472
if err != nil {
@@ -470,8 +481,9 @@ func NewSummaryProvider(uri *url.URL) (MetricsSourceProvider, error) {
470481
nodeLister, reflector, _ := util.GetNodeLister(kubeClient)
471482

472483
return &summaryProvider{
473-
nodeLister: nodeLister,
474-
reflector: reflector,
475-
kubeletClient: kubeletClient,
484+
nodeLister: nodeLister,
485+
reflector: reflector,
486+
kubeletClient: kubeletClient,
487+
hostIDAnnotation: hostIDAnnotation,
476488
}, nil
477489
}

0 commit comments

Comments
 (0)