diff --git a/discovery/marathon/marathon.go b/discovery/marathon/marathon.go index d1f2b2f6c..2c1101722 100644 --- a/discovery/marathon/marathon.go +++ b/discovery/marathon/marathon.go @@ -20,6 +20,7 @@ import ( "math/rand" "net" "net/http" + "strconv" "strings" "time" @@ -43,6 +44,9 @@ const ( appLabel model.LabelName = metaLabelPrefix + "app" // imageLabel is the label that is used for the docker image running the service. imageLabel model.LabelName = metaLabelPrefix + "image" + // portIndexLabel is the integer port index when multiple ports are defined; + // e.g. PORT1 would have a value of '1' + portIndexLabel model.LabelName = metaLabelPrefix + "port_index" // taskLabel contains the mesos task name of the app instance. taskLabel model.LabelName = metaLabelPrefix + "task" @@ -323,6 +327,7 @@ func targetsForApp(app *App) []model.LabelSet { target := model.LabelSet{ model.AddressLabel: model.LabelValue(targetAddress), taskLabel: model.LabelValue(t.ID), + portIndexLabel: model.LabelValue(strconv.Itoa(i)), } if i < len(app.PortDefinitions) { for ln, lv := range app.PortDefinitions[i].Labels {