Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

generator/tree.go: Add support for subsequent address family in combi… #782

Merged
merged 4 commits into from
Nov 24, 2023
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions generator/tree.go
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,10 @@ func generateConfigModule(cfg *ModuleConfig, node *Node, nameToNode map[string]*
return // Ignored metric.
}

// Afi (Address family)
prevType := ""
// Safi (Subsequent address family, e.g. Multicast/Unicast)
prev2Type := ""
for count, i := range n.Indexes {
index := &config.Index{Labelname: i}
indexNode, ok := nameToNode[i]
Expand All @@ -363,11 +366,14 @@ func generateConfigModule(cfg *ModuleConfig, node *Node, nameToNode map[string]*
if subtype, ok := combinedTypes[index.Type]; ok {
if prevType == subtype {
metric.Indexes = metric.Indexes[:len(metric.Indexes)-1]
if prev2Type == subtype {
metric.Indexes = metric.Indexes[:len(metric.Indexes)-2]
} else {
level.Warn(logger).Log("msg", "Can't handle index type on node, missing preceding", "node", n.Label, "type", index.Type, "missing", subtype)
return
}
}
prev2Type = prevType
prevType = indexNode.TextualConvention
metric.Indexes = append(metric.Indexes, index)
}
Expand Down