diff --git a/audit/api/api_common.go b/audit/api/api_common.go index 9eeb79a..e11022f 100644 --- a/audit/api/api_common.go +++ b/audit/api/api_common.go @@ -2,6 +2,7 @@ package api import ( "context" + "dev.azure.com/schwarzit/schwarzit.stackit-public/audit-go.git/telemetry" "errors" "fmt" "strings" @@ -190,6 +191,21 @@ func send( applicationAttributes["cloudEvents:tracestate"] = *cloudEvent.TraceState } + // Telemetry + applicationAttributes["cloudEvents:sdklanguage"] = "go" + auditGoVersion := telemetry.AuditGoVersion + if auditGoVersion != "" { + applicationAttributes["cloudEvents:sdkversion"] = auditGoVersion + } + auditGoGrpcVersion := telemetry.AuditGoGrpcVersion + if auditGoGrpcVersion != "" { + applicationAttributes["cloudEvents:sdkgrpcversion"] = auditGoGrpcVersion + } + auditGoHttpVersion := telemetry.AuditGoHttpVersion + if auditGoHttpVersion != "" { + applicationAttributes["cloudEvents:sdkhttpversion"] = auditGoHttpVersion + } + return (*messagingApi).Send( ctx, topic, diff --git a/telemetry/telemetry.go b/telemetry/telemetry.go new file mode 100644 index 0000000..921f42f --- /dev/null +++ b/telemetry/telemetry.go @@ -0,0 +1,24 @@ +package telemetry + +import ( + "runtime/debug" +) + +var AuditGoVersion = GetLibVersion("dev.azure.com/schwarzit/schwarzit.stackit-public/audit-go.git") +var AuditGoGrpcVersion = GetLibVersion("dev.azure.com/schwarzit/schwarzit.stackit-public/audit-go-grpc.git") +var AuditGoHttpVersion = GetLibVersion("dev.azure.com/schwarzit/schwarzit.stackit-public/audit-go-http.git") + +func GetLibVersion(libName string) string { + undefined := "" + + bi, ok := debug.ReadBuildInfo() + if !ok { + return undefined + } + for _, dep := range bi.Deps { + if dep.Path == libName { + return dep.Version + } + } + return undefined +}