Skip to content

Commit 8c431e4

Browse files
committed
feat!: renamed prom metric, and added disk size prom metric
1 parent 0683eeb commit 8c431e4

File tree

5 files changed

+55
-3
lines changed

5 files changed

+55
-3
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ JAEGER_VERSION=1.54.0
33

44
.PHONY: run-plugin
55
run-plugin:
6-
go run . -database.url=$(DBSTRING) -log-level=debug
6+
go run ./cmd/jaeger-postgresql -database.url=$(DBSTRING) -log-level=debug
77

88
.PHONY: run-jaeger
99
run-jaeger:

cmd/jaeger-postgresql/main.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
"github.com/jaegertracing/jaeger/plugin/storage/grpc/shared"
1414
"github.com/jaegertracing/jaeger/storage/dependencystore"
1515
"github.com/jaegertracing/jaeger/storage/spanstore"
16+
"github.com/prometheus/client_golang/prometheus"
17+
"github.com/prometheus/client_golang/prometheus/promauto"
1618
"github.com/prometheus/client_golang/prometheus/promhttp"
1719
"github.com/robbert229/fxslog"
1820
"github.com/robbert229/jaeger-postgresql/internal/logger"
@@ -211,6 +213,14 @@ var (
211213
adminHttpHostPortFlag = flag.String("admin.http.host-port", ":12346", "The host:port (e.g. 127.0.0.1:12346 or :12346) for the admin server, including health check, /metrics, etc.")
212214
)
213215

216+
var (
217+
spansTableDiskSizeGuage = promauto.NewGauge(prometheus.GaugeOpts{
218+
Namespace: "jaeger_postgresql",
219+
Name: "spans_table_bytes",
220+
Help: "The size of the spans table in bytes",
221+
})
222+
)
223+
214224
func main() {
215225
flag.Parse()
216226

@@ -231,6 +241,32 @@ func main() {
231241
fx.Invoke(func(srv *grpc.Server, handler *shared.GRPCHandler) error {
232242
return handler.Register(srv)
233243
}),
244+
fx.Invoke(func(conn *pgxpool.Pool, logger *slog.Logger, lc fx.Lifecycle) {
245+
ctx, cancelFn := context.WithCancel(context.Background())
246+
lc.Append(fx.StopHook(cancelFn))
247+
248+
go func() {
249+
q := sql.New(conn)
250+
ticker := time.NewTicker(time.Second * 5)
251+
defer ticker.Stop()
252+
253+
for {
254+
select {
255+
case <-ctx.Done():
256+
return
257+
case <-ticker.C:
258+
byteCount, err := q.GetSpansDiskSize(ctx)
259+
if err != nil {
260+
logger.Error("failed to query for disk size", "err", err)
261+
continue
262+
}
263+
264+
spansTableDiskSizeGuage.Set(float64(byteCount))
265+
266+
}
267+
}
268+
}()
269+
}),
234270
fx.Invoke(func(mux *http.ServeMux, conn *pgxpool.Pool) {
235271
mux.Handle("/metrics", promhttp.Handler())
236272
mux.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

internal/sql/query.sql

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,8 @@ RETURNING spans.hack_id;
122122
-- name: CleanSpans :execrows
123123

124124
DELETE FROM spans
125-
WHERE spans.start_time < sqlc.arg(prune_before)::TIMESTAMP;
125+
WHERE spans.start_time < sqlc.arg(prune_before)::TIMESTAMP;
126+
127+
-- name: GetSpansDiskSize :one
128+
129+
SELECT pg_total_relation_size('spans');

internal/sql/query.sql.go

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/store/instrumentation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import (
1212
)
1313

1414
const (
15-
promNamespace = "jaeger"
15+
promNamespace = "jaeger_postgresql"
1616
)
1717

1818
// reader

0 commit comments

Comments
 (0)