in telemetry/jetbrains/src/main/kotlin/software/aws/toolkits/telemetry/generator/OTelTelemetryGenerator.kt [59:90]
fun generateTelemetryFromFiles(
inputFiles: List<File>,
defaultDefinitions: List<String> = ResourceLoader.DEFINITIONS_FILES,
outputFolder: File,
) {
val telemetryDefinitions = TelemetryParser.parseFiles(defaultDefinitions, inputFiles)
FileSpec.builder(GENERATED_BASE_SPAN)
.indent(indent)
.generateHeader()
.addType(baseSpan(telemetryDefinitions))
.build()
.writeTo(outputFolder)
val telemetryKt =
FileSpec.builder(PACKAGE_NAME, "Telemetry")
.indent(indent)
.generateHeader()
val telemetryRootBuilder = TypeSpec.objectBuilder("Telemetry")
telemetryDefinitions.metrics.groupBy { it.namespace() }
.toSortedMap()
.forEach { (namespace, metrics) ->
generateMetrics(telemetryRootBuilder, outputFolder, namespace, metrics)
}
telemetryKt
.addType(telemetryRootBuilder.build())
.build()
.writeTo(outputFolder)
}