Skip to content

Commit 2ea519c

Browse files
authored
Node: Don't hang on post to Loki (#4267)
1 parent 7a12636 commit 2ea519c

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

node/pkg/telemetry/loki.go

+21-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/grafana/loki/pkg/logproto"
2424
lokiflag "github.com/grafana/loki/pkg/util/flagext"
2525
"github.com/prometheus/client_golang/prometheus"
26+
"github.com/prometheus/client_golang/prometheus/promauto"
2627
"github.com/prometheus/common/config"
2728
"github.com/prometheus/common/model"
2829
)
@@ -39,6 +40,20 @@ type ExternalLoggerLoki struct {
3940
localLogger *zap.Logger
4041
}
4142

43+
var (
44+
lokiMessagesSent = promauto.NewCounter(
45+
prometheus.CounterOpts{
46+
Name: "wormhole_loki_messages_sent",
47+
Help: "Total number of log messages posted to Loki",
48+
})
49+
50+
lokiMessagesDropped = promauto.NewCounter(
51+
prometheus.CounterOpts{
52+
Name: "wormhole_loki_messages_dropped",
53+
Help: "Total number of log messages dropped while posting to Loki",
54+
})
55+
)
56+
4257
func (logger *ExternalLoggerLoki) log(time time.Time, message json.RawMessage, level zapcore.Level) {
4358
lokiLabels := logger.labels[level]
4459

@@ -56,7 +71,12 @@ func (logger *ExternalLoggerLoki) log(time time.Time, message json.RawMessage, l
5671
Labels: lokiLabels,
5772
}
5873

59-
logger.c.Chan() <- entry
74+
select {
75+
case logger.c.Chan() <- entry:
76+
lokiMessagesSent.Inc()
77+
default:
78+
lokiMessagesDropped.Inc()
79+
}
6080

6181
// A fatal error exits, which can cause us to lose messages. Flush everything.
6282
if level == zapcore.FatalLevel {

0 commit comments

Comments
 (0)