diff --git a/hercules.yml b/hercules.yml index d2f568d..5d56272 100644 --- a/hercules.yml +++ b/hercules.yml @@ -5,8 +5,8 @@ debug: false port: 9100 globalLabels: - - cell: ausw1 - - env: dev + - cell: ausw1 # Inject prometheus labels from config + - env: $ENV # Inject prometheus labels from env var packages: - location: hercules-packages/snowflake/performance/1.0.yml diff --git a/pkg/config/config.go b/pkg/config/config.go index a2f3655..11ec849 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -46,7 +46,7 @@ func (c *Config) InstanceLabels() labels.GlobalLabels { globalLabels := labels.GlobalLabels{} globalLabels[HERCULES_NAME_LABEL] = c.Name for k, v := range c.GlobalLabels { - globalLabels[k] = v + globalLabels[k] = labels.InjectLabelFromEnv(v) } return globalLabels } diff --git a/pkg/labels/labels.go b/pkg/labels/labels.go index c9dac7f..0fd7054 100644 --- a/pkg/labels/labels.go +++ b/pkg/labels/labels.go @@ -1,9 +1,19 @@ package labels -import "maps" +import ( + "maps" + "os" +) type GlobalLabels map[string]string +func InjectLabelFromEnv(labelVal string) string { + if string(labelVal[0]) == "$" { + return os.Getenv(string(labelVal[1:])) + } + return labelVal +} + func (l GlobalLabels) LabelNames() []string { var labelNames []string for k := range l {