func createAgentContentForMetrics()

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
}