in dev/import-beats/agent.go [29:61]
func createAgentContentForMetrics(moduleName, dataStreamName string, streams []packages.Stream) (agentContent, error) {
inputName := moduleName + "/metrics"
vars := extractVarsFromStream(streams, inputName)
var buffer bytes.Buffer
buffer.WriteString(fmt.Sprintf("metricsets: [\"%s\"]\n", dataStreamName))
for _, aVar := range vars {
variableName := aVar.Name
if !aVar.Required {
buffer.WriteString(fmt.Sprintf("{{#if %s}}\n", variableName))
}
if aVar.Multi {
buffer.WriteString(fmt.Sprintf("%s:\n{{#each %s}}\n - {{this}}\n{{/each}}\n", variableName, variableName))
} else {
buffer.WriteString(fmt.Sprintf("%s: {{%s}}\n", variableName, variableName))
}
if !aVar.Required {
buffer.WriteString("{{/if}}\n")
}
}
return agentContent{
streams: []streamContent{
{
targetFileName: "stream.yml.hbs",
body: buffer.Bytes(),
},
},
}, nil
}