func (mc *metricCatalog) AddLoadedMetricType(lp *loadedPlugin, mt core.Metric) error { if err := validateMetricNamespace(mt.Namespace()); err != nil { log.WithFields(log.Fields{ "_module": "control", "_file": "metrics.go,", "_block": "add-loaded-metric-type", "error": fmt.Errorf("Metric namespace %s is invalid", mt.Namespace()), }).Error("error adding loaded metric type") return err } if lp.ConfigPolicy == nil { err := errors.New("Config policy is nil") log.WithFields(log.Fields{ "_module": "control", "_file": "metrics.go,", "_block": "add-loaded-metric-type", "error": err, }).Error("error adding loaded metric type") return err } newMt := metricType{ Plugin: lp, namespace: mt.Namespace(), version: mt.Version(), lastAdvertisedTime: mt.LastAdvertisedTime(), tags: mt.Tags(), policy: lp.ConfigPolicy.Get(mt.Namespace().Strings()), description: mt.Description(), unit: mt.Unit(), } mc.Add(&newMt) return nil }
func addStandardAndWorkflowTags(m core.Metric, allTags map[string]map[string]string) core.Metric { hostname := hostnameReader.Hostname() tags := m.Tags() if tags == nil { tags = map[string]string{} } // apply tags from workflow for ns, nsTags := range allTags { if strings.HasPrefix(m.Namespace().String(), ns) { for k, v := range nsTags { tags[k] = v } } } // apply standard tag tags[core.STD_TAG_PLUGIN_RUNNING_ON] = hostname metric := plugin.MetricType{ Namespace_: m.Namespace(), Version_: m.Version(), LastAdvertisedTime_: m.LastAdvertisedTime(), Config_: m.Config(), Data_: m.Data(), Tags_: tags, Description_: m.Description(), Unit_: m.Unit(), Timestamp_: m.Timestamp(), } return metric }
func addStandardAndWorkflowTags(m core.Metric, allTags map[string]map[string]string) core.Metric { hostname, err := hostnameReader.Hostname() if err != nil { log.WithFields(log.Fields{ "_module": "control", "_file": "metrics.go,", "_block": "addStandardAndWorkflowTags", "error": err.Error(), }).Error("Unable to determine hostname") } tags := m.Tags() if tags == nil { tags = map[string]string{} } // apply tags from workflow for ns, nsTags := range allTags { if strings.HasPrefix(m.Namespace().String(), ns) { for k, v := range nsTags { tags[k] = v } } } // apply standard tag tags[core.STD_TAG_PLUGIN_RUNNING_ON] = hostname metric := plugin.MetricType{ Namespace_: m.Namespace(), Version_: m.Version(), LastAdvertisedTime_: m.LastAdvertisedTime(), Config_: m.Config(), Data_: m.Data(), Tags_: tags, Description_: m.Description(), Unit_: m.Unit(), Timestamp_: m.Timestamp(), } return metric }