Skip to content

Commit 3b2ef76

Browse files
author
Vipul Rawat
authored
Add framework version (#387)
* add constant to store the framework version * inject gofr version into metrics, logger, and trace * revert metric scope to appName and version to appVersion * change version to dev
1 parent 400bcb2 commit 3b2ef76

File tree

4 files changed

+18
-7
lines changed

4 files changed

+18
-7
lines changed

pkg/gofr/http/middleware/tracer.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import (
77

88
"go.opentelemetry.io/otel"
99
"go.opentelemetry.io/otel/propagation"
10+
11+
"gofr.dev/pkg/gofr/version"
1012
)
1113

1214
func Tracer(inner http.Handler) http.Handler {
@@ -19,8 +21,7 @@ func Tracer(inner http.Handler) http.Handler {
1921
// its parentID, thus connecting two spans
2022
ctx = otel.GetTextMapPropagator().Extract(ctx, propagation.HeaderCarrier(r.Header))
2123

22-
// TODO - inject version
23-
tr := otel.GetTracerProvider().Tracer("gofr")
24+
tr := otel.GetTracerProvider().Tracer("gofr-" + version.Framework)
2425
ctx, span := tr.Start(ctx, fmt.Sprintf("%s %s", strings.ToUpper(r.Method), r.URL.Path))
2526
defer span.End()
2627

pkg/gofr/logging/logger.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"gofr.dev/pkg/gofr/grpc"
1616
"gofr.dev/pkg/gofr/http/middleware"
1717
"gofr.dev/pkg/gofr/service"
18+
"gofr.dev/pkg/gofr/version"
1819
)
1920

2021
const fileMode = 0644
@@ -45,9 +46,10 @@ type logger struct {
4546
}
4647

4748
type logEntry struct {
48-
Level Level `json:"level"`
49-
Time time.Time `json:"time"`
50-
Message interface{} `json:"message"`
49+
Level Level `json:"level"`
50+
Time time.Time `json:"time"`
51+
Message interface{} `json:"message"`
52+
GofrVersion string `json:"gofrVersion"`
5153
}
5254

5355
func (l *logger) logf(level Level, format string, args ...interface{}) {
@@ -61,8 +63,9 @@ func (l *logger) logf(level Level, format string, args ...interface{}) {
6163
}
6264

6365
entry := logEntry{
64-
Level: level,
65-
Time: time.Now(),
66+
Level: level,
67+
Time: time.Now(),
68+
GofrVersion: version.Framework,
6669
}
6770

6871
switch {

pkg/gofr/metrics/exporters/exporter.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package exporters
22

33
import (
4+
"go.opentelemetry.io/otel/attribute"
45
"go.opentelemetry.io/otel/exporters/prometheus"
56
"go.opentelemetry.io/otel/metric"
67
metricSdk "go.opentelemetry.io/otel/sdk/metric"
78
"go.opentelemetry.io/otel/sdk/resource"
89
semconv "go.opentelemetry.io/otel/semconv/v1.17.0"
10+
11+
"gofr.dev/pkg/gofr/version"
912
)
1013

1114
func Prometheus(appName, appVersion string) metric.Meter {
@@ -19,6 +22,7 @@ func Prometheus(appName, appVersion string) metric.Meter {
1922
metricSdk.WithResource(resource.NewWithAttributes(
2023
semconv.SchemaURL,
2124
semconv.ServiceNameKey.String(appName),
25+
attribute.String("framework_version", version.Framework),
2226
))).Meter(appName, metric.WithInstrumentationVersion(appVersion))
2327

2428
return meter

pkg/gofr/version/version.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package version
2+
3+
const Framework = "dev"

0 commit comments

Comments
 (0)