mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-18 08:16:39 +00:00
Compare commits
2 Commits
v0.60.5
...
feature/me
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ee8739760d | ||
|
|
63b003f255 |
File diff suppressed because it is too large
Load Diff
@@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/metric"
|
"go.opentelemetry.io/otel/metric"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -14,6 +15,8 @@ type StoreMetrics struct {
|
|||||||
persistenceDurationMicro metric.Int64Histogram
|
persistenceDurationMicro metric.Int64Histogram
|
||||||
persistenceDurationMs metric.Int64Histogram
|
persistenceDurationMs metric.Int64Histogram
|
||||||
transactionDurationMs metric.Int64Histogram
|
transactionDurationMs metric.Int64Histogram
|
||||||
|
queryDurationMs metric.Int64Histogram
|
||||||
|
queryCounter metric.Int64Counter
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,12 +62,29 @@ func NewStoreMetrics(ctx context.Context, meter metric.Meter) (*StoreMetrics, er
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
queryDurationMs, err := meter.Int64Histogram("management.store.query.duration.ms",
|
||||||
|
metric.WithUnit("milliseconds"),
|
||||||
|
metric.WithDescription("Duration of database query operations with operation type and table name"),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
queryCounter, err := meter.Int64Counter("management.store.query.count",
|
||||||
|
metric.WithDescription("Count of database query operations with operation type, table name, and status"),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
return &StoreMetrics{
|
return &StoreMetrics{
|
||||||
globalLockAcquisitionDurationMicro: globalLockAcquisitionDurationMicro,
|
globalLockAcquisitionDurationMicro: globalLockAcquisitionDurationMicro,
|
||||||
globalLockAcquisitionDurationMs: globalLockAcquisitionDurationMs,
|
globalLockAcquisitionDurationMs: globalLockAcquisitionDurationMs,
|
||||||
persistenceDurationMicro: persistenceDurationMicro,
|
persistenceDurationMicro: persistenceDurationMicro,
|
||||||
persistenceDurationMs: persistenceDurationMs,
|
persistenceDurationMs: persistenceDurationMs,
|
||||||
transactionDurationMs: transactionDurationMs,
|
transactionDurationMs: transactionDurationMs,
|
||||||
|
queryDurationMs: queryDurationMs,
|
||||||
|
queryCounter: queryCounter,
|
||||||
ctx: ctx,
|
ctx: ctx,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
@@ -85,3 +105,13 @@ func (metrics *StoreMetrics) CountPersistenceDuration(duration time.Duration) {
|
|||||||
func (metrics *StoreMetrics) CountTransactionDuration(duration time.Duration) {
|
func (metrics *StoreMetrics) CountTransactionDuration(duration time.Duration) {
|
||||||
metrics.transactionDurationMs.Record(metrics.ctx, duration.Milliseconds())
|
metrics.transactionDurationMs.Record(metrics.ctx, duration.Milliseconds())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CountStoreOperation records a store operation with its method name, status, and duration
|
||||||
|
func (metrics *StoreMetrics) CountStoreOperation(method string, duration time.Duration) {
|
||||||
|
attrs := []attribute.KeyValue{
|
||||||
|
attribute.String("method", method),
|
||||||
|
}
|
||||||
|
|
||||||
|
metrics.queryDurationMs.Record(metrics.ctx, duration.Milliseconds(), metric.WithAttributes(attrs...))
|
||||||
|
metrics.queryCounter.Add(metrics.ctx, 1, metric.WithAttributes(attrs...))
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user